Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

visual studio vs ado.net

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

visual studio vs ado.net

Postdi jotric » 09/10/06 09:34

Buon giorno a tutti.
E' da un po' che stò cercando di capire se in vb 2005 è possibile connettersi ad un db tipo DBaseIV o comunque divero dai db classici (Access,Oracle,Sql).

Mi spiego:trovo stringhe di connessione di tutti i tipi,ma se volessi creare una connessione da Ide ad un db dbf come faccio?

Dal'Ide,dati->aggiungi origine dati->Database->selezionando come origine dati "Provider di dati .NET Framework per OLE DB" mi si apre un mondo di opzioni per il provider OLE DB...

Ho fatto diversi tentativi,ma nessuno è andato a buon fine...

Qualcuno ha qualche dritta da darmi?
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Sponsor
 

Postdi GAD » 09/10/06 10:26

Cerca sul sito di DBaseIV se hanno già creato un service provider apposito e usa quello. Tutti i gestori di database hanno creato un service provider apposito per i loro db in modo da poter essere interfacciati al volo con .net...es. mysql.net, oracle.net ecc e consente di utilizzre le classi standard come objectdatasource e fare un bind a tutti i nuovi oggetti automatizzati come tabelle, view, form ecc.
Se ancora non esiste puoi usare oledb con questa stringa
http://www.aspitalia.com/servizi/connectionstring-dBase.aspx
o in alternativa creare tu un provider seguendo qualche tutorial in modo da avere tutti i vantaggia dell'usare oggetti standardizzati interfacciabili a tutti gli oggetti già pronti
Quando l'ultimo albero sarà abbattuto,l'ultimo pesce catturato,l'ultimo fiume avvelenato,
soltanto allora gli uomini si accorgeranno chei soldi non possono essere mangiati
GAD
Moderatore
 
Post: 2184
Iscritto il: 22/09/02 14:36
Località: Nebbiosa

Postdi jotric » 09/10/06 15:36

Allora la stringa di connessione che mi hai indicato non è diversa da quelle che ho tentato di usare fin'ora purtroppo : http://www.connectionStrings.com
Ho nel frattempo ho fatto altre prove e sono riuscito a raccimolare ancora qualche info...aprendo lo stesso db da access ottengo lo stesso risultato e lo stesso errore:
"errore non previsto dal driver del database esterno (8458)".

Per quanto riguarda il db è sicuramente un dbaseIV con indici modificati (cdx).Sinceramente per quanto ne so è la Borland la SH che lo commercializzava,ma sul sito non ho trovato supporto di nessun tipo...

Sono un neofita di Visual Basic 2005,figuriamoci di ADO.NET e se poi mi chiedessi di crearmi un provaider...beh...forse è un po' troppa la carne al fuoco...
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi GAD » 09/10/06 15:55

Se e' di borland vai a fare un giretto sul sito borland a cerca di info, mi pare che le ultime release del compilatore borland fossero aggiornate già .net 2.0 quindi un provider per i loro db lo avreanno realizzato quasi certamente
Quando l'ultimo albero sarà abbattuto,l'ultimo pesce catturato,l'ultimo fiume avvelenato,
soltanto allora gli uomini si accorgeranno chei soldi non possono essere mangiati
GAD
Moderatore
 
Post: 2184
Iscritto il: 22/09/02 14:36
Località: Nebbiosa

Postdi tekanet » 10/10/06 09:15

Un'alternativa è di fare un entry odbc e da VS collegarti a quella.. la peggiore delle opzioni, comunque.

tK
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi jotric » 10/10/06 10:29

Grazie per la risposta.Prima di usare Ole Db avevo gia provato con ODBC (mi sembrava più semplice).Purtroppo il tempo che viene impiegato per aprire le tabelle del db mi consente di andare a bere un caffè di fumare una sigaretta e di rimettermi davanti al pc aspettando ancora un paio di minuti...

Cmq adesso mi connetto con Ole Db e il test di connessione mi da un risultato ok.

Creo il comando SQL di selezione:
Dim command As New OleDbCommand("SELECT * FORM [Nome_Tabella], Connessione")

e do il comando di lettura:
Dim reader As OleDbDataReader = command.ExecuteReader()

Ma anche qui il risultato che ottengo è un bel errore:
La proprietà connection non è stata inizializzata...

Suggerimenti?
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi GAD » 10/10/06 10:39

OleDbCommand("SELECT * FORM [Nome_Tabella], Connessione")

credo debba essere
OleDbCommand("SELECT * FORM [Nome_Tabella]", Connessione)

perche' altrimenti non passi la connessione come parametro ma come stringa del paramestro precedente
Quando l'ultimo albero sarà abbattuto,l'ultimo pesce catturato,l'ultimo fiume avvelenato,
soltanto allora gli uomini si accorgeranno chei soldi non possono essere mangiati
GAD
Moderatore
 
Post: 2184
Iscritto il: 22/09/02 14:36
Località: Nebbiosa

Postdi tekanet » 10/10/06 10:52

Ma l'oggetto connection lo crei ed inizializzi, prima del command?
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi jotric » 10/10/06 12:19

Certo che si:
nelle dichiarazioni:
Private ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Lavoro\AS400\Database\;Extended Properties=dBASE IV;User ID=Admin;Password="

La sub che viene richiamata è:
Private Sub DBFView_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Con As New OleDbConnection(ConnectionString)
Dim command As New OleDbCommand("SELECT * FORM [D_020.DBF]")
Dim Ds As New DataSet
Try
Con.Open()
MsgBox(Con.State.ToString)
Dim reader As OleDbDataReader = command.ExecuteReader()
Catch Err As Exception
MessageBox.Show(Err.ToString())
Finally
Con.Close()
End Try
End Sub

Credo però che il problema risieda da un'altra parte...aprendo il db da access ottengo un errore non documentato (forse l'ho gia scritto...)
Errore non previsto del driver del database esterno (8458)

?->Errore non previsto del driver del database esterno <numero errore>. (3275).
Il driver del database esterno specificato ha restituito un errore. Questo errore può essere causato dall'esecuzione di un'operazione non supportata in questo tipo di database esterno.

Questo mi turba un pò visto che su un altro pc la connessione ad access avviene in modo regolare...Ho ripristinato anche l'installazione di Office 2003 ma non è cambiato niente...
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi jotric » 10/10/06 12:26

Per la verita la dichiarazione di Command la posso fare in tre modi,ottenendo sempre lo stesso risultato:

Dim command As New OleDbCommand("SELECT * FORM [D_020]", Con)
Dim command As New OleDbCommand("SELECT * FORM [D_020], Con")
Dim command As New OleDbCommand("SELECT * FORM [D_020]")

dove Con è la OleDbConnection(ConnectionString)
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi zello » 10/10/06 12:44

SELECT * FORM [Nome_Tabella],

FORM? Non era FROM, una volta?
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi GAD » 10/10/06 12:45

azzo che occhio zello, era sfuggito a tutti!
Quando l'ultimo albero sarà abbattuto,l'ultimo pesce catturato,l'ultimo fiume avvelenato,
soltanto allora gli uomini si accorgeranno chei soldi non possono essere mangiati
GAD
Moderatore
 
Post: 2184
Iscritto il: 22/09/02 14:36
Località: Nebbiosa

Postdi jotric » 10/10/06 12:48

Hai ragione ha forza di tentativi...ho combinato qualche casino nel
Ctrl-C
Ctrl-V

Comunque si e FROM... :undecided:
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi jotric » 10/10/06 12:50

jotric ha scritto:Hai ragione ha forza di tentativi...ho combinato qualche casino nel
Ctrl-C
Ctrl-V

Comunque si e FROM... :undecided:


L'errore cmq io scriva l'istruzione SQL rimane quello...

Errore non previsto del driver del database esterno (8458)
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi tekanet » 10/10/06 13:29

Ho ricercato un pò:

http://groups.google.it/groups/search?h ... _s=Ricerca

Non ho trovato grandi risposte. L'unica cosa sensata che sembra dire questo articolo http://support.microsoft.com/?id=306095 è di controllare di avere l'mdac più recente..
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi jotric » 10/10/06 14:23

Si anch'io avevo trovato solo questo e per tutta risposta la versione più aggiornata che sono riuscito ad installare del MDAC è la 2.7 (la 2.8 e la 2.8sp1 mi dice non siano compatibili...).
Una differenza che esiste fra la macchina in cui lavoro è che sulla seconda manca il driver Client Access di IBM.Pensi possa avere qualche attinenza?
Ho fatto una ricerca per vedere se trovavo un download di questo driver ma con scarsi risultati... :x
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15

Postdi tekanet » 10/10/06 14:33

Questo client è una dll? Se si, potresti prelevarla e registrarla (è un tentativo eh) con regsvr32..
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi jotric » 10/10/06 14:51

Beh dirti se sia una dll o meno è una risposta difficile...Proprio non ne ho idea...
Sinceramente non so che fare...
jotric
Utente Junior
 
Post: 32
Iscritto il: 06/07/06 11:15


Torna a Programmazione


Topic correlati a "visual studio vs ado.net":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti