Newsgroup: it.comp.lang.delphi
Titolo: Insert in mysql

Ciao a tutti!
Ho dei problemi ad effettuare una insert in db mysql, i valori sono 
delle variabili, precisamente i cambi di alcune textbox:
    SQLQuery1.SQL.Text:= 'Insert into entrate 
(tipoconto,importo,data,descrizione,tipopagamento) values 
(conto,importo,data,desc,pagamento)';
dove i values sono appunto delle variabili che contongono il valore 
delle textbox...ci vanno degli apici o altre cose?
Perchè ottengo errore di sintassi!

Perchč ottengo errore di sintassi!
Certo che ottieni errore di sintassi.  Come pretendi che quanto hai
scritto possa funzionare?  Ti do un consiglio: fermati un attimo,
studia qualcosa in piů e poi torna a mettere mano sul codice.
In uno statement insert, quello che scrivi come values sono i valori
che il db accetta e inserisce nei campi appositi della tabella.  Al
motore database tu passi lo statement SQL, quindi se gli mandi ciň che
hai scritto, lui interpreta i values come nomi di campi.  Il db non
puň di certo risolvere i nomi di variabili andandoli a pescare dal tuo
codice.
Per avere un comportamento sensato devi, invece, usare i parametri:
SQLQuery1.SQL.TExt := 'insert into tabella (campo1, campo2, campo3)
values (:parametro1, :parametro2, :parametro3)';
SQLQuery1.ParamByName('parametro1').AsBlaBlaBla := tuo valore;
SQLQuery1.ParamByName('parametro2').AsBlaBlaBla := tuo valore;
SQLQuery1.ParamByName('parametro3').AsBlaBlaBla := tuo valore;
...
Ovviamenye, c'č la strada alternativa di inserire nel codice SQL i
valori letterali delle variabili, ma ti sottoponi a rischi di
interpretazione da parte del motore del database (vedi stringhe
contenenti apici o il formato data specifico) e quindi considerare
tutte le controffensive di un approccio del genere (come usare
QuotedStr() per le stringhe contenenti apici, per esempio).  L'uso dei
parametri mette al riparo da qualsiasi problema.


p.s.: il tuo problema non ha niente a che vedere con Delphi.  Rispetta
il topic, per cortesia, e prima di fare domande del genere consulta
Google.

Andrea Laforgia ha scritto:

Beh io uso lazarus, e per non saper ne leggere ne scrivere mi sembra che 
sia un derivato di delphi, e siccome la sintassi č pressochč uguale e 
delphi ha piů documentazione, ho pensato di chiedere qui!!!

Giacomo ha scritto:

Comunque lo so pure io che cosě non ha senso, infatti chiedo come si 
inserico direttamente nel codice sql i valori letterali delle variabili:
in php vanno preceduti con $, in vb vanno racchiusi tra & e &...in delphi???

delphi ha più documentazione, ho pensato di chiedere qui!!!
Hai chiesto circa un problema che, ripeto, non ha nulla a che vedere
né con Lazarus, né con Delphi.

in php vanno preceduti con $, in vb vanno racchiusi tra & e &...in delphi???
Te l'ho già detto.

 
Eh cosa avrei dovuto scrivere per farmi capire?
E poi riesci a leggere nel pensiero per stabilire che non lo sapevo?
Comunque grazie per la dritta, proverň a fare come hai suggerito nel 
primo post!

E poi riesci a leggere nel pensiero per stabilire che non lo sapevo?
Certo che non lo sapevi, non lo sapevi perché non avresti scritto del
codice Delphi, testato il codice Delphi e verificato che non
funzionava.  Non avresti, cioè, avuto un briciolo di fiducia nel fatto
che avrebbe funzionato...