Newsgroup: it.comp.lang.visual-basic
Titolo: problema con visual basic e sql

Premetto che ho sempre usato access e che da poco ho cominciato ad usare
sql. Ecco il mio problema :
vorrei che i dati contenuti in una tabella sql vengano inseriti in una
combo... ecco il codice (funzionante con access ) collegamento al db tramite
dsn :
Dim strRicerca, idCliente, GoNome As String
    Dim cnnCercaNome As New ADODB.Connection
    Dim strSQLCercaNome As String
    Dim strConCercaNome As String
    Dim rstCercaNome As New ADODB.Recordset
    strConCercaNome = "DSN=pippo"
    cnnCercaNome.Open strConCercaNome, "geppo","password"
    strSQLCercaNome = "SELECT * FROM clienti"
    rstCercaNome.Open strSQLCercaNome, cnnCercaNome, adOpenKeyset,
adLockOptimistic, adCmdText
    Do While Not rstCercaNome.EOF
    List1.AddItem rstCercaNome.Fields(Val(Text6.Text)).Value
    rstCercaNome.MoveNext
    Loop
Se il dsn utilizza il driver di Access funziona benissimo, ma se utilizzo il
driver sql per il collegamento sul db sql nel server  , la connessione
avviene con successo ma il comando loop mi impalla l' applicazione.... se
elimino il ciclo do while e inserisco :
Text5.Text = rstCercaNome.Fields(0).Value ... nella casella di testo
comapare l' ultimo valore del campo 0 della tabella sql....
dove sbaglio ?
Grazie in anticipo a quanti risponderanno.

     rstCercaNome.Fields(Val(Text6.Text)).Value
sostituibile con rstCercaNome("pippo")& ""
il &"" per far rendere almeno una stringa vuota come valore
INOLTRE
a costo di mettere una variabile locale in più
per fugare list di dati inesistenti
dim dummy as string
dummy=trim(cstr(rs(cosavoglio)&""))
if len(dummy)>0 then
    additem dummy
end if
e ...altra furbata.....metterei in itemdata il codice univoco (numerico) del
record...in access è il contatore in sql devi creartelo da te
almeno è veloce recuperare il record completo.....e......
per riempire un listbox non serve quell'apertura!!!
Aprilo readonly  e poi buttalo via.....e poi...che ti serve....SELECT * FROM
CLIENTI
lo sai prima cosa vuoi....
ad esempio
SELECT IDcliente, Ragsoc FROM Clienti
IDcliente in itemdata Ragsoc(o altro) nell'item della listbox....apertura
readonly e poi butta via il recordset!
ossia: recupera i dati solo quando ti servono....recuperarli troppo prima o
tenerli anche quando non servono...buttano via solo risorse!
Saluti
-- 
------------------------------------------------
Sito web: 
http://www.martek.it

"Wodka40" <chi...@me.uff> ha scritto nel messaggio
news:6waAd.7705$Of5....@nntpserver.swip.net...
"Wodka40" <chi...@me.uff> ha scritto nel messaggio
news:6waAd.7705$Of5....@nntpserver.swip.net...
Potresti  essere un pň piů chiaro ? ... Magari qualche esempio di codice...
List1.AddItem rstCercaNome("nome") & ""  ?
Cosě con access funziona ma con sql va in loop l'applicazione....
Sai dirmi altro ?

 Sai dirmi altro ?
Magari potresti anche ringraziarlo per la risposta e i consigli...
termoPilucco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

comapare l' ultimo valore del campo 0 della tabella sql....
Questa non l'ho capita.
--
Ciao!
Luca Menegotto

 Questa non l'ho capita.
*Se* ho capito, l'OP vorrebbe fare una ricerca senza usare la WHERE :-(
-- 
ciao, hal

Mi è bastato aggiungere queste due righe :
    cnnCercaNome.CursorLocation = adUseClient
    cnnCercaNome.ConnectionTimeout = 30
ora funziona benissimo....
il select * from... etc. mi serve per recuperare tutti i campi e inserirli
in una dbgrid.....
grazie a tutti per l' imput.