Ho una domanda da fare. Avrei questa esigenza: recuperare i nomi delle
tabelle in un database e successivamente anche i nomi dei campi di una
tabella specifica.
Uso queste istruzioni per connettermi al DB
Dim Cnn As New System.Data.OleDb.OleDbConnection(CnnDb)
Cnn.Open()
Dim Cmd As New System.Data.OleDb.OleDbCommand("SELECT * FROM TABELLA", Cnn)
Dim Dr As System.Data.OleDb.OleDbDataReader = Cmd.ExecuteReader
E' possibile tramite DR recuperare il valore di tutti i campi della tabella
senza specificare il nome del campo?
In VB6 facevo cosi:
Dim DB As ADODB.Connection 'Connessione a Database.
Dim RS As ADODB.Recordset 'Insieme di record della tabella.
Dim Testo As String 'Stringa contenente il record selezionato.
Dim Ind As Integer 'Indice dei nomi dei campi della tabella.
' Connessione Database
Set DB = New ADODB.Connection
DB.Provider = "Microsoft.Jet.Oledb.4.0"
DB.Open "Data Source=" & Trim(Archivio)
' Apre l'insieme di record
Set RS = New ADODB.Recordset
Call RS.Open(Trim(IstrSql), DB, adOpenStatic, adLockPessimistic)
If RS.EOF = True Then ' Se l'insieme di record RS e' vuoto indica che la
ricerca e' fallita.
LstZoom.AddItem "Ricerca completata. Non e' stato trovato nessun
elemento."
Exit Sub
End If
LstZoom = ""
Do While RS.EOF = False
riga = ""
For Ind = 0 To RS.Fields.Count - 1
riga = Trim(riga) & " " & Trim(RS.Fields(Ind)) & " "
Next
LstZoom.AddItem riga
RS.MoveNext
Loop
Quindi riepilogando vorrei usare DR per recuperare il nome del campo di una
tabella e il relativo valore.
Grazie per l'attenzione.
Risolto in parte il problema.
Esempio:
Dim Cnn As New System.Data.OleDb.OleDbConnection(CnnDb)
Cnn.Open()
Dim Cmd As New System.Data.OleDb.OleDbCommand("SELECT * FROM TABELLA", Cnn)
Dim Dr As System.Data.OleDb.OleDbDataReader = Cmd.ExecuteReader
For Ind = 0 To DR.FieldCount - 1
MsgBox(DR.GetValue(Ind))
Next