Hai scritto bene! la sintassi corretta è la seconda:
SELECT * FROM NOME_TABELLA WHERE campoA=pippo AND campoB= paperino
tranne per un piccolo particolare... pippo e paperino sono stringhe, quindi ci vanno gli apici:
"SELECT * FROM NOME_TABELLA WHERE campoA='pippo' AND campoB='paperino'"
se pippo e paperino sono variabili allora è così:
"SELECT * FROM NOME_TABELLA WHERE campoA='"&pippo&"' AND campoB='"&paperino&"'"
poi... si, tu puoi compiere alcune azioni a seconda di cosa è contenuto nel recorset.
Un recordset non è propriamente una stringa... piuttosto una "serie di coppie nome-valore"... più o meno eh!
immaginati un recordset come una tabella, la stessa che vedi quando da access apri un database. Che cosa puoi fare in quella tabella? Selezionare dei record, cambiare o eliminare il valore dei campi, aggiungerne di nuovi. La stessa cosa la puoi fare da script con il recordset.
Come tutti gli oggetti ha dei metodi:
rs.Movenext Questo seleziona il prossimo record
rs.Movelast Va all'ultimo record
rs.MoveFirst Va al primo
rs.Delete Cancella il record selezionato
rs.Update Aggiorna il recordset (necessario per rendere effettive le modifiche)
e così via... ce ne sono altri.
Ha anche delle proprietà e in particolar modo sono queste che devi consultare per eseguire questo o quel codice.
rs.EOF
Questo è importantissimo, ti dice se la query ha restiuto dei record o no. Il recordset si trova in EOF (end of file) quando dopo non ci sono più record. Quindi ti puoi trovare in eof dopo tanti movenext oppure subito, se non c'è alcun record.
Quindi tu fai una select:
rs.Open "SELECT * FROM tabella WHERE nome='pippo'"
if rs.EOF then
Response.write("Mi spiace non c'è nessuno che si chiama pippo")
else
Response.write("ci sono "&rs.RecordCount&" persone che si chiamano pippo")
end if
RecordCount è un'altra proprietà utile, ti dice quanti record si trovano nel recordset.
come avrai capito un rs ha molte proprietà e metodi, nella maggiorparte dei casi tante di queste non servono, così hanno pensato bene di permettere allo sviluppatore quali vuole usare e quali no. Questo lo puoi specificare quando fai una select, cioè quando apri un recordset.
rs.Open "SELECT * FROM tabella", cn, 0, 1
Vedi quel ,cn, 0, 1? L'hai già visti si? Ecco, se scrivi 0 oppure 1 oppure 3 cambia il modo di aprire il recordset per cui puoi compiere certe azioni piuttosto che altre.
,0,1 sono rispettivamente CursorType e LockType, il secondo indica la modalita:
,1 sola lettura (puoi solo leggere i valori dai campi, quindi NON puoi usare rs.Update per aggiornare i cambiamenti, se ne hai fatti)
,2 scrittura pessimistica (puoi cambiare i valori dei campi e aggiornarli usando rs.Update. Pessimistica vuol dire che nessun'altro utente può accedere al database finchè l'utente che sta aggiornando i record non ha finito, frazioni di secondo..)
,3 scrittura ottimistica (come quello di prima soltanto che più utenti possono connettersi al db, anche se altri stanno scrivendo)
Il primo, cioè il cursortype, indica invece quali metodi e proprietà dell'oggetto recordset puoi usare:
,0 Forward only (puoi solo spostarti in avanti usando rs.Movenext, esempio non puoi usare rs.RecordCount, rs.MovePrevious, MoveFirst... non puoi usare la paginazione. E' limitato, però richiede meno tempo per l'accesso, per cui è da preferire se devi fare cose semplici come riportare tutti i record uno di seguito all'altro)
,1 Keyset (ci fai tutto... ma è più lento rispetto al primo)
,2 Dynamic (come quello di prima, mi pare che la differenza è che questo è supportato da SQL server mentre da access no...)
,3 Static (è la via di mezzo, puoi andare avanti e indietro nel recordset, puoi usare la paginazione, il recordcount, tranne poche cose)
ma io sinceramente uso sempre Forwardonly e Static...
pià il primo però ^__^
ciaooo!
-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------
Enjoy learning and just keep making