|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
13-05-2011, 17.03.26 | #1 |
Newbie
Registrato: 13-05-2011
Messaggi: 1
|
Parametrizzare una SQL in VB6
Se scrivo ad esempio Public Function TabArticoli(Optional ByVal p_IDClasse As Long = -1, Optional ByVal p_IDStatis As Long = -1) As String Dim sSQL As String sSQL = "SELECT <ARTIC.ARTICO, ARTIC.DESCR, ARTIC.CLASSE, ARTIC.STATIC> FROM " & ARTIC Select Case True Case (p_IDClasse > -1) sSQL = sSQL & " WHERE Classe = " & p_IDClasse Case (p_IDStatis> -1) sSQL = sSQL & " WHERE Static = " & p_IDStatis End Select TabArticoli = sSQL End Function Come posso fare poi a utilizzare quanto sopra se voglio estrarre una classe o una statistica ? Avevo pensato ad una classe, ma non so come inserire le varie funzioni che mi possono consentire una scelta. |
15-05-2011, 10.41.25 | #2 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Cioè vorresti ottenere una cosa del genere ?
Codice:
With ClasseGenerica .SQL="SELECT ..." .Classe.CondizSQL=" WHERE ..." .Statis.CondizSQL=" WHERE ..." .Classe.Esegui .Statis.Esegui End With Se non li passi, la funzione ritorna la tringa SQL senza clausola WHERE Se specifichi uno dei due di valore maggiore a -1, allora modifichi la stringa di ritorno in modo coerente col valore del parametro passato. |
07-06-2011, 14.00.10 | #3 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
IN GENERALE
Una volta definita la stringa in linguaggio SQL, questa deve essere data in pasto al motore Jet o, in alternativa, ad ODBC. Una volta che il motore ha concluso l'elaborazione, esso predispone un recordset contenente le informazioni elaborate. I recordsets hanno la struttura di un foglio di calcolo, (dal punto di vista del programmatore è nient altro che una structure) suddivisi in righe e colonne e ricalcanti in memoria la stessa sequenza con la quale si sono specificate tabelle e colonne nella stringa SQL. SELECT [DISTINCT[ROW]] restituisce un recordset, ma stringhe contenenti direttive come UPDATE/DELETE/INSERT INTO/CREATE TABLE/ALTER TABLE, ecc vengono eseguite come azione senza dare vita a recordset di ritorno compilato opportunamente. Una volta definita la stringa SQL, se questa da vita ad un' azione compiuta, essa può essere passata direttamente al motore per la sua elaborazione, es: Codice:
Set Motore=OpenDatabase("...") With Motore .SQL="DELETE ..." .Execute End With Codice:
Set Motore=OpenDatabase("...") Motore.Execute "DELETE ..." Codice:
Set Motore=OpenDatabase("...") Set SetRecord=Motore.OpenRecordset("SELECT Colonna1,Colonna2 FROM Tabella ...") With SetRecord .MoveFirst '-> Superfluo poichè il puntatore è già sul primo record While Not .Eof debug.print SetRecord!Colonna1 debug.print SetRecord.Fields(Colonna2)[.Value] .MoveNext Wend End With Ultima modifica di LoryOne : 07-06-2011 alle ore 14.11.15 |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
[XP] SQL Server | bimbomix | Windows 7/Vista/XP/ 2003 | 0 | 04-04-2008 16.01.09 |
Segnalazioni KB (Knowledge Base) Microsoft | giancarlof | Segnalazioni Web | 71 | 12-07-2007 09.04.00 |
Impossibile avviare SQL Server | GiulioCesare | Software applicativo | 0 | 03-01-2005 22.28.52 |
errore SQL URGENTE!!!! | woodrook | Windows 7/Vista/XP/ 2003 | 1 | 29-10-2004 11.50.03 |
Qualcuno conosce l'ASP ? | ERASER X | Programmazione | 15 | 30-09-2004 16.02.26 |