Newsgroup: it.comp.lang.visual-basic
Titolo: [VB] ADO e TrueDBGRID

Sto iniziando a studiare ADO (prima usavo DAO) e ho un problemino!
Voglio collegare una TrueDBGRID 7.0 a SQL server tramite ADO, il codice 
e' il seguente:
Option Explicit
' References ADO 2.5
Public Cn As ADODB.Connection
Sub main()
     Set Cn = New ADODB.Connection
     Cn.Provider = "SQLOLEDB"
     Cn.Properties("Data Source") = "sviluppo\data2000"
     Cn.Properties("Initial Catalog") = "database"
     Cn.Properties("Integrated Security") = "SSPI"
     Cn.ConnectionTimeout = 30
     Cn.Open
     Form1.Show 1
End Sub
nel Form1 c'č soltanto la True DBGRID
Option Explicit
Private Sub Form_Activate()
     Me.TDBGrid1.ReBind    ' forse questo non č indispensabile!
End Sub
Private Sub Form_Load()
     Dim Cmd As New ADODB.Command
     Dim rs As New ADODB.Recordset
     Set Cmd.ActiveConnection = Cn
     Cmd.CommandType = adCmdTable
     Cmd.CommandText = "tabella"
     Set rs = Cmd.Execute()
     Set Me.TDBGrid1.DataSource = Cn
End Sub
Al momento la griglia rimane vuota e NON viene popalata da nessun dato, 
ma non vengono mostrati errori!
Sono sicuro che la connessione funziona in quanto se uso un controllo 
(ovvero se faccio: Set Me.TDBGrid1.DataSource = Adodc1)ADO e lo lego 
ditettamente alla tabella, questa viene popolata dai records!
In sostanza non sono sicuro che sia corretta la riga:
     Set Me.TDBGrid1.DataSource = Cn
Anche se inserisco:
     Set Me.TDBGrid1.DataSource = rs
non ho errori ma non ottengo nulla!
Quindi la domanda č: ho dimenticato qualche cosa?
grazie in anticipo
ciao
marco

 Quindi la domanda è: ho dimenticato qualche cosa?
se tu stessi usando il datagrid di vb6, direi che ti sei dimenticato di
considerare che il cursore del recordset da associare ai dati deve essere
lato client, ma non so se questo si applica alla griglia che usi tu.
Salutoni
Sergio

 non ho errori ma non ottengo nulla!
hai provato
Set Me.TDBGrid1.DataSource = rs.Cn ?


??????

 ??????
azz... e' meglio che vado a dormire.... sono completamente fuori oggi!!!


Forse è meglio...;) ;)
Comunque ti farei volentieri compagnia, oggi ne ho già le p..e piene di
lavorare...:-P
ciaociao

 controlla il cursore e gli indici della tabella nel database
il cursore ???
ciao marco

 il cursore ???
A proposito c'è un altro modo per impostare il recordset (e il cursore)
  rs.Open "tbpantog", Cn, adOpenForwardOnly, , adCmdTable
il terzo parametro è appunto il cursore
in ogni caso non ottengo nulla !!!!
suggerimenti?


mi correggo avevate ragione aproposito del cursore!!!
basta cambiare il TIPO di cursore da adOpenForwardOnly a adOpenStatic
e tutto funziona!
mi manca solo da capire se c'è un modo diverso per impostarlo usando la 
sintassi del Command:
Set Cmd.ActiveConnection = Cn
Cmd.CommandType = adCmdTable
Cmd.CommandText = "tabella"
Set rs = Cmd.Execute()
ciao
marco

 come?
cn.cursorlocation = aduseclient
lo stesso per il recordset
Salutoni
Sergio


Cn.CursorLocation=AdUseClient


 suggerimenti?

>Set rs = Cmd.Execute()
senza la sintassi:
rs.Open "tbpantog", Cn, adOpenForwardOnly, , adCmdTable
In entrambi i casi pero' da tabella non riesco a modificare i valore, in 
sostanza ottengo una tabella readonly ...
...ma settando a  adLockOptimistic il dblock tutto funziona a dovere, 
grazie e ciao
marco

 marco