Newsgroup: it.comp.lang.visual-basic
Titolo: Riformulo la domanda su Ado2.1 & SQL7

salve di nuovo,
riformulo la domanda per chi non mi avesse capito.
Vorrei sapere se esiste un comando da ado2.1 che rstituisca la lista
dei nomi delle tabelle presenti in un database SQLServer7 remoto.
^SpectruS^
  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
 
http://www.newsfeeds.com
       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----

>dei nomi delle tabelle presenti in un database SQLServer7 remoto.
Devi usare il metodo OpenSchema dell'oggetto ADODB.Connection.
Guarda su MSDN, c'e' un esempio che calza perfettamente.
Antonio Donatiello

Devi usare ADOX. Viene distribuito con Ado2.1
Fabio Pagano
^SpectruS^ ha scritto nel messaggio ...


Grazie per l'aiuto, sto convertendo un gestionale da rdo ad ado2.1
prima che combi tutto, secondo voi vale la pena ???
Ho letto qualche cosa in giro su ado è non mi è sembrato molto
confortante ma almeno è in continuo sviluppo mentre rdo è stato
lasciato all'abbandono.





>lasciato all'abbandono.
ADO e' il futuro, RDO il passato. Io sto usando ADO con Sql Server 7.0. E' molto veloce ma ha alcuni problemi. Ad esempio in alcuni casi delle query particolari non ritornano nessun record ma piu' di tutti la gestione degli errori non va perche' quasi sempre a fronte di un errore mi ritorna solo "Erorrs Occured" anziche' l'errore di Sql Server.
Antonio Donatiello

Dim ConnArc As ADODB.Connection
Dim CommQue As ADODB.Command
Dim RstArc As ADODB.Recordset
Dim NodX As Node
Dim NodApp As Node
Private Sub Form_Load()
 
    Set ConnArc = New ADODB.Connection
    Set CommQue = New ADODB.Command
    Set RstArc = New ADODB.Recordset
    With ConnArc
 
        .CursorLocation = adUseServer
        .ConnectionString = "driver={SQL Server};" & _
        "server=Servernt;uid=sa;pwd=;database=MIODB"
        .ConnectionTimeout = 1
        .Open
 
    End With
 
'--- Carico le tabelle nella TreeView
 
    Dim XTabelle As Integer
    Dim XQuery As Integer
    Dim Cont As Integer
 
    Set RstArc = ConnArc.OpenSchema(adSchemaTables)
    Set NodX = TreeViewADO.Nodes.Add(, , "T", "Tabelle", 3)
    Do Until RstArc.EOF
        If RstArc!Table_Type = "TABLE" Then
            Set NodX = TreeViewADO.Nodes.Add("T", tvwChild, "T" &
Cont, RstArc!Table_Name, 2, 1)
            Cont = Cont + 1
        End If
        RstArc.MoveNext
    Loop
End Sub
Private Sub TreeViewADO_NodeClick(ByVal Node As MSComctlLib.Node)
'--- Selezione con un clik le tabelle nella grid
    Set RstArc = New ADODB.Recordset
    If (Node.Key <> "T") And (Mid$(Node.Key, 1, 1) <> "Q") Then
 
        RstArc.CursorLocation = adUseServer
        RstArc.Open "SELECT * FROM " & Node.Text & ";", ConnArc,
adOpenKeyset, adLockOptimistic
        Set NodApp = Node
        Set AdodcADO.Recordset = RstArc.DataSource
    End If
'    RstArc.Close
'    Set RstArc = Nothing
End Sub
Sentite una cosa vedendo questo codice che non fa altro che caricare
tutte le tabelle di un archivio in sql7 in un treewiev dove
selezionandone una vengono sparati i record su una TDBGrid.
In questa TDBGrid io devo avere la possibilità di navigarci e
modificare o aggiundere le informazioni contenute nei campi.
Be, dopo un po' mi ritorna questo errore :
method 'recordset' of object 'IADODC' failed
sbaglio forse a creare sempre un recordset (Set RstArc = New
ADODB.Recordset) ?
^SpectruS^
Grazie di nuovo della vostra disponibilità.


Il metodo migliore è usare ADOX2.1.
Se invece usi il metodo OpenSchema della Connection, pare che il cursore
debba essere lato client, altrimenti non funziona (ho letto di questo bug
sul
testo "Programmare VB", ma non l'ho verificato).
ALOHA!
--
Rogis
* ANTI-SPAM:
Rimuovi "ABC" dall'indirizzo per rispondermi
Remove "ABC" from my address to reply.