PDA

View Full Version : Errore sintassi SQL (booh)


LuPellox85
14-03-2007, 09:17
questo è il codice:


sSql = ""
sSql = sSql & "INSERT INTO pulldown ( pull_down_25_125, pull_down_25_15, pull_down_25_175, pull_down_25_20, pull_down_25_225, pull_down_25_25, pull_down_25_275, pull_down_25_30, pull_down_25_325, pull_down_25_35, pull_down_25_375, pull_down_45_125, pull_down_45_15, pull_down_45_175, pull_down_45_20, pull_down_45_225, pull_down_45_25, pull_down_45_275, pull_down_45_30, pull_down_45_325, pull_down_45_35, pull_down_45_375, pull_down_max_125, pull_down_max_15, pull_down_max_175, pull_down_max_20, pull_down_max_225, pull_down_max_25, pull_down_max_275, pull_down_max_30, pull_down_max_325, pull_down_max_35, pull_down_max_375, ass_regime_amp_s1, ass_regime_wat_s1, ass_regime_amp_s2, ass_regime_wat_s2, ass_regime_amp_s3, ass_regime_wat_s3, ass_regime_amp_s4, ass_regime_wat_s4, ass_sbrin_amp_s1, ass_sbrin_wat_s1, ass_sbrin_amp_s2, ass_sbrin_wat_s2, ass_sbrin_amp_s3, ass_sbrin_amp_s4, ass_sbrin_wat_s4, ass_senz_mot_amp_s1, ass_senz_mot_wat_s1, ass_senz_mot_amp_s2, ass_senz_mot_wat_s2, ass_senz_mot_amp_s3, "
sSql = sSql & "ass_senz_mot_wat_s3, ass_senz_mot_amp_s4, ass_senz_mot_wat_s4, Id ) "
sSql = sSql & "SELECT pulldown.pulldown_25_125, pulldown.pulldown_25_15, pulldown.pulldown_25_175, pulldown.pulldown_25_20, pulldown.pulldown_25_225, pulldown.pulldown_25_25, pulldown.pulldown_25_275, pulldown.pulldown_25_30, pulldown.pulldown_25_325, pulldown.pulldown_25_35, pulldown.pulldown_25_375, pulldown.pulldown_45_125, pulldown.pulldown_45_15, pulldown.pulldown_45_175, pulldown.pulldown_45_20, pulldown.pulldown_45_225, pulldown.pulldown_45_25, pulldown.pulldown_45_275, pulldown.pulldown_45_30, pulldown.pulldown_45_325, pulldown.pulldown_45_375, pulldown.pulldown_max_125, pulldown.pulldown_max_15, pulldown.pulldown_max_175, pulldown.pulldown_max_20, pulldown.pulldown_max_225, pulldown.pulldown_max_25, pulldown.pulldown_max_275, pulldown.pulldown_max_30, pulldown.pulldown_max_325, pulldown.pulldown_max_35, pulldown.pulldown_max_375, "
sSql = sSql & "pulldown.ass_regime_amp_s1, pulldown.ass_regime_wat_s1, pulldown.ass_regime_amp_s2, pulldown.ass_regime_wat_s2, pulldown.ass_regime_amp_s3, pulldown.ass_regime_wat_s3, pulldown.ass_regime_amp_s4, pulldown.ass_regime_wat_s4, pulldown.ass_sbrin_amp_s1, pulldown.ass_sbrin_wat_s1, pulldown.ass_sbrin_amp_s2, pulldown.ass_sbrin_wat_s2, pulldown.ass_sbrin_amp_s3, pulldown.ass_sbrin_wat_s3, pulldown.ass_sbrin_amp_s4, pulldown.ass_sbrin_wat_s4, ass_senz_mot_amp_s1, ass_senz_mot_wat_s1, ass_senz_mot_amp_s2, ass_senz_mot_wat_s2, ass_senz_mot_amp_s3, ass_senz_mot_wat_s3, ass_senz_mot_amp_s4, ass_senz_mot_wat_s4 " & Id & " AS NewID "
sSql = sSql & "FROM pulldown "
sSql = sSql & "WHERE (((pulldown.Id)=" & OldID & "))"


e questo è l'errore
http://img221.imageshack.us/img221/3023/erroregm6.jpg

sono un novellino dell'sql, sto guardando un po in giro per internet ma non riesco a trovare questo famigerato errore di sintassi.. boh, per me è scritto tutto bene

rayman2
14-03-2007, 09:28
Ma che ti sei bevuto per generare una query così? Non ci credo che l'hai scritta a mano! Non puoi darci qualche dettaglio in più?
Onestamente con degli attributi così e senza formattazione si fa fatica ad arrivare alla fine della lettura!
Comunque una prima cosa che mi suona decisamente strana è che dopo una query di INSERT fai una SELECT!
In pratica sono due query (incomprensibili) in una.
Ci ho azzeccato?

LuPellox85
14-03-2007, 09:31
Ma che ti sei bevuto per generare una query così? Non ci credo che l'hai scritta a mano! Non puoi darci qualche dettaglio in più?
Onestamente con degli attributi così e senza formattazione si fa fatica ad arrivare alla fine della lettura!
Comunque una prima cosa che mi suona decisamente strana è che dopo una query di INSERT fai una SELECT!
In pratica sono due query (incomprensibili) in una.
Ci ho azzeccato?


praticamente mi clona un record di una tabella, aggiungendo +1 al campo id, l'originale non l'ho fatta io ma devo ricopiarla, l'ho ricopiata paro paro da una che funziona ma mi da quell'errore di sintassi..

in pratica dovrebbe essere insert into "quei campi" select da "gli stessi campi" però id+1 (che è la chiave primaria)

yorkeiser
14-03-2007, 09:49
Se fai una insert a partire da una select, i nomi dei campi che estrai nella select devono devono corrispondere a quelli che inserisci.

Nella insert hai:
[..] ass_senz_mot_wat_s4, Id [...]

Mentre nella select fai:
ass_senz_mot_wat_s4 " & Id & " AS NewID "

a) Nella select ti manca una virgola che separi ass_senz_mot_wat_s4 da Id
b) se fai AS NewID non credo (oddio, dipende dal db che hai sotto) che la insert possa inserire come Id un campo chiamato NerwID

In sostanza, nella select prova con
ass_senz_mot_wat_s4," & Id & " "

LuPellox85
14-03-2007, 09:58
Se fai una insert a partire da una select, i nomi dei campi che estrai nella select devono devono corrispondere a quelli che inserisci.

Nella insert hai:
[..] ass_senz_mot_wat_s4, Id [...]

Mentre nella select fai:
ass_senz_mot_wat_s4 " & Id & " AS NewID "

a) Nella select ti manca una virgola che separi ass_senz_mot_wat_s4 da Id
b) se fai AS NewID non credo (oddio, dipende dal db che hai sotto) che la insert possa inserire come Id un campo chiamato NerwID

In sostanza, nella select prova con
ass_senz_mot_wat_s4," & Id & " "

grazie, ora va meglio, immaginavo fosse una stronzata del genere tipo una virgola dimenticata :doh:

ma c'è un errore nuovo :D

http://img92.imageshack.us/img92/7932/errore2qw3.jpg

e su questo non so davvero dove mettere le mani

DvL^Nemo
14-03-2007, 12:21
Da quello che vedo usi access, quindi la query dovrebbe essere parametrica..
OldID ha un valore suo o e' una variabile ? Nel qual caso deve avere un valore ben definito..

LuPellox85
14-03-2007, 14:30
ho dovuto spezzare la tabella in 2, perchè a quanto pare era l'eccessiva lunghezza delle righe di codice a non far funzionare il programma, ora va, grazie a tutti per l'aiuto :)