Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: robertozr - 12 Aprile 2008, 17:04:56

Titolo: quesito sciocco
Inserito da: robertozr - 12 Aprile 2008, 17:04:56
un saluto a tutti,ho la necessita' di andare a capo in una istruzione select
altrimenti e' troppo lunga e non gestibile a video,se ben ricordo in vb si
usava _ come si fa in gambas
esempio:
MGlobal.db.Exec("INSERT INTO skriparazioni (dataingr,cdcli,codlinea,id_app,id_marca,id_modello,id_matr,datacq,id_acc,ddt,difetto,garanzia,cdriv,docacq,nrdocacq,datadocacq,nrcassa,datapcons,rmaxeuro,statorip) VALUES ('" & MVariabili.DataIn & "','" & MVariabili.idCdcli & "','" & MVariabili.idApp & "','" & MVariabili.idMarca & "','" & MVariabili.idModel & "','" & MVariabili.idMatric & "','" & MVariabili.DataAcq & "','" & MVariabili.idAcc & "','" & TxtBolla.Text & "','" & TxaDifetti.Text & "','" & MVariabili.garanzia & "','" & MVariabili.idRivend & "','" & TxtDocAcq.Text & "','" & TxtNrDocAcq.Text & "','" & TxtDataDocAcq.Text & "','" & TxtNrCassa.Text & "','" & MVariabili.DtPrCons & "','" & TxtRipMaxEuro.Text & "','" & TxlStatoRip.Text & "')")

chiaramente io c'e' l'ho su una unica riga....
Titolo: Re: quesito sciocco
Inserito da: g.paolo - 12 Aprile 2008, 19:27:32
Ad esempio un comando SELECT assegnato ad una stringa lo puoi separare su più righe in questo modo:

str1 = "SELECT rio_loc.id_loc, rio_loc.localita, comuni.comune, zone.zona "
         "FROM rio_loc, zone, comuni WHERE comuni.id_com = rio_loc.id_com "
         "AND zone.id_zona = comuni.id_zona ORDER BY rio_loc.id_loc "

ed il result si ottiene con

result = connessione.Exec(str1)

nel tuo caso invece sarà:

str1="INSERT INTO........."
Titolo: Re: quesito sciocco
Inserito da: andy60 - 12 Aprile 2008, 22:31:16
la sintassi da usare è questa:

Codice: [Seleziona]
dim sSQL as string
dim res as result

sSQL="prima parte della query....."
sSQL=sSQL & " altra parte della query..."
res=connessione.exec(sSQL)
Titolo: Re: quesito sciocco
Inserito da: robertozr - 13 Aprile 2008, 09:24:50
buon giorno
tutto ok e grazie per il suggerimento
Titolo: Re: quesito sciocco
Inserito da: md9327 - 16 Aprile 2008, 12:24:47
od anche

Codice: [Seleziona]

dim sSQL as string
dim res as result

sSQL = "prima parte della query....."
sSQL &= " altra parte della query..."
res = connessione.exec(sSQL)


In realtà potresti anche scrivere:

Codice: [Seleziona]

...
sSQL = "prima parte della query....." &
       " altra parte della query..." &
       " altra parte della query..." &
       " altra parte della query..."
...


il problema è che oltre un certo numero di concatenazioni nella stessa istruzione, il compilatore si arrabbia, obbligandoti ad usare la prima sintassi.
Titolo: Re: quesito sciocco
Inserito da: g.paolo - 16 Aprile 2008, 12:49:33
@md9327

Non so per quale motivo l'esempio che ho postato funzioni, ma a quanto pare l'impiego del carattere "&" a fine riga non serve affatto!
Con un'assegnazione scritta in questo modo non si ottiene alcun errore e la cosa funziona come dovrebbe:

str1 = "SELECT rio_loc.id_loc, rio_loc.localita, comuni.comune, zone.zona "
"FROM rio_loc, zone, comuni WHERE comuni.id_com = rio_loc.id_com "
"AND zone.id_zona = comuni.id_zona ORDER BY rio_loc.id_loc "
Titolo: Re: quesito sciocco
Inserito da: md9327 - 17 Aprile 2008, 11:03:55
Penso che nelle ultime versioni di Gambas siano stati implementati alcuni particolari...
Per abitudine, e anche non aver problemi a posteriori, uso quel tipo di sintassi, ma sicuramente quella che hai descritto è più veloce, e se pure funziona meglio così.