Autore Topic: quesito sciocco  (Letto 1249 volte)

Offline robertozr

  • Gamberetto
  • *
  • Post: 22
    • Mostra profilo
quesito sciocco
« il: 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....

g.paolo

  • Visitatore
Re: quesito sciocco
« Risposta #1 il: 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........."

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: quesito sciocco
« Risposta #2 il: 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)

Offline robertozr

  • Gamberetto
  • *
  • Post: 22
    • Mostra profilo
Re: quesito sciocco
« Risposta #3 il: 13 Aprile 2008, 09:24:50 »
buon giorno
tutto ok e grazie per il suggerimento

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: quesito sciocco
« Risposta #4 il: 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.

g.paolo

  • Visitatore
Re: quesito sciocco
« Risposta #5 il: 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 "

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: quesito sciocco
« Risposta #6 il: 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ì.