Newsgroup: it.comp.lang.visual-basic
Titolo: [ADO] Recordset vuoti

Ho un problema che (credo e spero) sia abbastanza semplice da risolvere ma
non ci sono proprio riuscito:
Ho impostato una connessione ADo su un database Access locale. La
connessione funziona e mi restituisce tutto quello che desidero (che bello!)
però se richiedo una stringa SQL come questa:
SELECT Clienti.ID, Clienti.Cognome, Clienti.Nome
FROM Clienti
WHERE Clienti.ID = <Chenesoio>
(al posto di <Chenesoio> mettete un qualsiasi numero intero positivo)
non mi restituisce niente! Perché? Semplice (ve lo dico io) il numero
Clienti.ID non esiste perché l'archivio è vuoto! Una query vuota! Il
problema è che restituendo un Recordset nullo, Visual Basic non riesce ad
aprire il Recordset stesso che rimane chiuso ed ogni riferimento ad esso
fluisce in un errore!
Ora quello che mi inseressa è come risolvere queto problema... avevo provato
a fare in modo di ricostruire il recordset da codice (rs.Fields.Append...) e
poi aggiornare in database ma non funziona. Qualche suggerimento?
Grazie tante, Axel!

 ha scritto nel messaggio
news:8T987.28995$Qf6.2...@news2.tin.it...
CUT
.....non ho capito...
rs.open Connessione,stringaSQL
if rs.bof then
    recordset vuoto
    e fai qualcosa
else
    recordset pieno
    e fai qualcos'altro
end if
....
non va bene cosě?

 wrote in message
8T987.28995$Qf6.2...@news2.tin.it...


 non va bene cosě?
No, evidentemente se la stringa SQL non ritorna alcun risultato, il
recordset non si apre dando un errore non intercettabile!

 chiamante per l'inserimento dei dati...
Ma che lingua è? Arabo? Cmq da quello che ho capito anche tu non mi hai
inteso perfettamente. Il problema non è quello di avere un Recordset vuoto
ma quello di avere un Recordset vuoto e non apribile col metodo Open!!! Non
posso chiamare AddNew perché il Recordset non è aperto e mi da un errore di
run-time "Oggetto chiuso"!!!

 wrote in message
c0k87.46771$Pb6.2...@news1.tin.it...



se il la query restituisce un recordset vuoto
non viene generato un errore, ma viene aperto il recordset con le proprietà
Eof e Bof
impostate a true.
se a te da errore, il problema sta da qualche altra parte (probabilmente
nella stringa sql)
Ciao
Enrico

 > non va bene così?


 wrote in message
9ju1h8$b4s$3...@lacerta.tiscalinet.it...


Scusa se non idento ma questo è il codice:
[CODE]
1 Private Sub Form_Load()
2     Dim SQL As String, rs As New ADODB.Recordset
3
4     SQL = "SELECT Clienti.*, Schede.* FROM Clienti, Schede WHERE
Clienti.ID = Schede.Cliente_ID
5
6     Set rs = dbSource.GetQuery(SQL)
7
8     rs.AddNew  ' o qualsiasi altra proprietà e/o metodo dell'oggetto
ADODB.Recordset
9
10 End Sub
[/CODE]
Utilizzo ADO 2.6. L'oggetto dbSource è una DataClass creata da me e
precedentemente non mi ha dato mai problemi e penso che il problema non sia
lì ma nella stringa SQL: precedentemente mi sono connesso al database Access
2000 e con il metodo GetQuery(sqlstring as string) as adodb.recordset
ottengo una query col recordset già aperto (ho provato altre volte quando
esistevano un Cliente e una Scheda che fossero collegate ed il Recordset
risultava aperto! In questo caso no!

 Ma che lingua č? Arabo?
Ciň che tutti hanno cercato di dirti č che un recordset vuoto non č un
recordset nullo...ma forse in 'arabia' si, chi lo sa?
Posta la porzione di codice incriminato e forse qualcuno puň aiutarti.
nonsonostatoio