|
| 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 » | |
![]() |
#1 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
query SQL in VB6
Mi spiego meglio, fatta una qualsiasi query usando SQL, come posso mostrare il risultato in una casella di testo? grazie |
![]() |
![]() |
![]() |
#2 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
Dopo che il motore SQL ha elaborato il risultato, quest' ultimo è memorizzato in un recordset.
Un recordset è come un foglio di Excel,una tabella di ACCESS, una tabella di Word, una griglia in pratica. Così come accedi alle celle specificando riga e colonna, così accedi ai record distinti attraverso delle proprietà del recordset. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
che sarebbe quello della tabella che ho interrogato.
se dovessi usare il comando GROUP (che evita i doppi, unendo diversi record) vedo solo un record? |
![]() |
![]() |
![]() |
#4 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
Ti riferisci a GROUP BY ... HAVING del linguaggio SQL ?
Guarda, ti spiego da cosa deriva la parola Recordset. Record(Riga) Set(righe), ossia gruppo di righe. |
![]() |
![]() |
![]() |
#5 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
Quota:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
grazie anche se sono al punto di prima.
una volta fatta la query sul mio database (access), con do until eof .... elenco i records filtrati? |
![]() |
![]() |
![]() |
#7 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
Furbastro (Y)
Tu hai scoperto il modo più veloce per creare una query sintatticamente corretta ed interpretabile dal motore JET/ODBC. Avendo creato le relazioni tra tabella, la query si forma da sola. Muy bien, ma devi capire che SQL è un po come il linguaggio parlato. Detto questo, devi far riferimento al motore, poi eseguira la query ed agire sul recordset. do until eof, ecc, ecc. Si, il senso è quello, ma è l'EOF del recordset. non ti dico altro, ora è tempo che procedi da solo. You're on the right way. Good luck. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
mi è piaciuto il "furbastro".
le query semplici, riesco a gestirle e visualizzarle scorrendo il database record per record. mi manda in crisi il GROUP. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
noto con rammarico che non riesco ad ottenere alcun aiuto.
se mi sono rivolto al forum è perchè evidenti miei limiti non mi hanno consentito di proseguire nonostante gli inviti a proseguire da solo. un grazie sincero comunque. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
mi permetto di insistere.
Ho risolto parzialmente il problema scrivendo qualche riga di codice in + come sege: Filtro$ = "SELECT * FROM BOLLE WHERE NUMEROFATTURA <> NULL ORDER by NUMEROFATTURA,NUMEROBOLLA" FrmMENU.DB_BOLLE.RecordSource = Filtro$ FrmMENU.DB_BOLLE.Refresh TreeView1.Nodes.Clear skey = GetNextKey() 'iIndex = TreeView1.SelectedItem.Index Dim INCREMENTO As Integer INCREMENTO = 1 With DB_BOLLE.Recordset .MoveLast .MoveFirst INCREMENTO = .RecordCount If .RecordCount > 0 Then M_Fattura1 = .NUMEROFATTURA M_Fattura2 = .NUMEROFATTURA Set Node = TreeView1.Nodes.Add(, , "Node " & DB_BOLLE.Recordset("ID").Value, DB_BOLLE.Recordset("NUMEROFATTURA").Value & " - " & DB_BOLLE.Recordset("NOMECLIENTE").Value) Do Until .EOF M_Fattura1 = .NUMEROFATTURA If M_Fattura1 = M_Fattura2 Then Set Node1 = TreeView1.Nodes.Add(Node, tvwChild, "Node1 " & DB_BOLLE.Recordset("ID").Value, DB_BOLLE.Recordset("NUMEROBOLLA").Value & " - " & DB_BOLLE.Recordset("NOME_PRODOTTO").Value) Else Set Node = TreeView1.Nodes.Add(, , "Node " & DB_BOLLE.Recordset("ID").Value, DB_BOLLE.Recordset("NUMEROFATTURA").Value & " - " & DB_BOLLE.Recordset("NOMECLIENTE").Value) Set Node1 = TreeView1.Nodes.Add(Node, tvwChild, "Node1 " & DB_BOLLE.Recordset("ID").Value, DB_BOLLE.Recordset("NUMEROBOLLA").Value & " - " & DB_BOLLE.Recordset("NOME_PRODOTTO").Value) End If M_Fattura2 = M_Fattura1 TreeView1.Refresh INCREMENTO = INCREMENTO - 1 Label10.Caption = "Mancano ancora " & INCREMENTO & " records" Label10.Refresh If INCREMENTO = 0 Then Exit Do .MoveNext Loop End If End With Label10.Caption = "Finito!" MousePointer = 0 il treeview viene popolato dalla query, ma ho il seguente problema: quando la variabile INCREMENTO è = 0, ossia ho finito il popolamento, anzichè vedere "finito" nel label10, il pc mi si ferma per almento 5 minuti. cosa sta succedendo? |
![]() |
![]() |
![]() |
#11 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
"Mancano ancora " & INCREMENTO & " records"
Quanto vale INCREMENTO quando si blocca per 5 min ? |
![]() |
![]() |
![]() |
#12 |
Senior Member
Registrato: 20-08-2002
Loc.: groppello d'adda
Messaggi: 414
![]() |
la variabile INCREMENTO l'ho messa per vedere il pc che lavora e dare la sensazione che sta succedendo qualche cosa.
quando lo vedo a 0, ossia ' alla fine del recordset, dovrebbe uscire dal ciclo do until .eof e mostrarmi la label con "finito!|". invece questa appare dopo diversi minuti. potrebbe essere un problema legato al treview? questa routine la uso in diversi altri casi (ma non con il controllo treeview) e funziona alla grande. |
![]() |
![]() |
![]() |
#13 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
http://www.devx.com/vb/Article/9707
Questo articolo dovrebbe esserti uitle a comprendere come gestire il treeview. |
![]() |
![]() |
![]() |
#14 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
Il treeview è il controllo VB più difficile da gestire in quanto è quello che consuma più memoria rispetto a tutti gli altri. Non bisognerebbe mai abusarne.
|
![]() |
![]() |
![]() |
#15 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.503
![]() ![]() ![]() |
Quota:
il numero di record presenti nel recordset lo conosci. L'incremento pure. Aggiungeresti un controllo, è vero, ma faresti a meno di una variabile inutile e daresti un tocco di profesisonalità al tuo software. Ho notato anche che aggiungi refresh alla caption ed al controllo treeview. E' inutile utilizzarla a meno che l'eleborazione sia così pesante da non consentire il refresh dei componenti. Basta aggiungere un DoEvents affinchè il S.O. possa finire di elaborare i processi in sospeso. |
|
![]() |
![]() |
![]() |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
![]() |
||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Segnalazioni KB (Knowledge Base) Microsoft | giancarlof | Segnalazioni Web | 71 | 12-07-2007 10.04.00 |
Problema query a campi incrociati | ken87 | Office suite | 0 | 09-11-2006 19.46.40 |
Impossibile avviare SQL Server | GiulioCesare | Software applicativo | 0 | 03-01-2005 23.28.52 |
Query SQL e Oracle | Alhazred | Programmazione | 21 | 24-11-2004 15.08.06 |
Query in SQL | simoner | Programmazione | 2 | 02-10-2003 15.01.50 |