Telefonino.net network
 
| 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 » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 13-05-2011, 18.03.26   #1
cinelli
Newbie
 
Registrato: 13-05-2011
Messaggi: 1
cinelli promette bene
Question Parametrizzare una SQL in VB6

Se si utilizzano diverse qury, ognuna con funzione ben precisa, è possibile usare una sola query che funziona a secondo dei parametri che vengono passati.
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.
cinelli non è collegato   Rispondi citando
Vecchio 15-05-2011, 11.41.25   #2
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Cioè vorresti ottenere una cosa del genere ?

Codice:
With ClasseGenerica
   .SQL="SELECT ..."
   .Classe.CondizSQL=" WHERE ..."
   .Statis.CondizSQL=" WHERE ..."
   .Classe.Esegui
   .Statis.Esegui		
End With
Per il resto non riesco a capire cosa intendi perchè, a parte il select case inutile perchè basta un If ... Then ... [Else]...[End If], entrambi i parametri opzionali sono uguali a -1.
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.
LoryOne non è collegato   Rispondi citando
Vecchio 07-06-2011, 15.00.10   #3
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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
oppure
Codice:
Set Motore=OpenDatabase("...")
Motore.Execute "DELETE ..."
, altrimenti è necessario aprire un recordset e poi scorrerlo con gli apposti metodi predisposti, es:
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 15.11.15
LoryOne non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
[XP] SQL Server bimbomix Windows 7/Vista/XP/ 2003 0 04-04-2008 17.01.09
Segnalazioni KB (Knowledge Base) Microsoft giancarlof Segnalazioni Web 71 12-07-2007 10.04.00
Impossibile avviare SQL Server GiulioCesare Software applicativo 0 03-01-2005 23.28.52
errore SQL URGENTE!!!! woodrook Windows 7/Vista/XP/ 2003 1 29-10-2004 12.50.03
Qualcuno conosce l'ASP ? ERASER X Programmazione 15 30-09-2004 17.02.26

Orario GMT +2. Ora sono le: 10.28.59.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.