webForumDet fria alternativet
Logga in / Bli medlem

Problem med min update

Databaser & SQL

4 svar · 421 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Databas = Access.

Får felmeddelandet att jag har ett syntaxfel i min query, och jag antar att det är WHERE delen som är fel. Men hur ska den se ut egentligen?

string updQuery = "UPDATE [project commissioning form] AS pcf " +
                "INNER JOIN [commissioning form] AS cf " +
                "ON cf.form_code = pcf.form_code " +
                "WHERE cf.template_id = \"" + id + "\" " +
                "AND pcf.Project_ID = \"" + GUI.Project_id + "\" " +
                "SET pcf.done = \"" + newDoneValue + "\"";
Medlem sedan juni 200032 967 inlägg
#2

Skriv ut sql-frågan.

Spontant känns det som att SET är felplacerat. Och varför använder du citationstecken runt dina värden?

edit: har du provat att lägga alla villkoren i joinen istället för att använda WHERE?

Medlem sedan juni 20006 031 inlägg
#3

@nders skrev:

Skriv ut sql-frågan.

UPDATE [project commissioning form] AS pcf INNER JOIN [commissioning form] AS cf ON cf.form_code = pcf.form_code WHERE cf.template_id = "DB1654543" AND pcf.Project_ID = "P/54585" SET pcf.done = "False"

@nders skrev:

edit: har du provat att lägga alla villkoren i joinen istället för att använda WHERE?

Provade innan att ha

...
"ON cf.form_code = pcf.form_code " +
"AND cf.template_id = \"" + id + "\" " +
"AND pcf.Project_ID = \"" + GUI.Project_id + "\" " +
"SET pcf.done = \"" + newDoneValue + "\"";

Det gav felmeddelandet "Join expression not supported".
Men det kanske inte var så du menade?

(Övrig info. C#, desktop applikation.)

red/ när jag tog bort WHERE delen så körde den igenom updaten, men på lite för många poster så klart.

Medlem sedan juni 200032 967 inlägg
#4

Pedda skrev:

Men det kanske inte var så du menade?

Jo - det var så jag menade. Jävla Access.

Du har provat att flytta WHERE-delen till efter SET då?

Medlem sedan juni 20006 031 inlägg
#5

@nders skrev:

Jävla Access.

Kan inte göra annat än att hålla med.

Men att flytta WHERE satsen till efter SET gjorde susen. (y)
Tackar och bockar för hjälpen. :)

262 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)