Entwickler-Ecke
Datenbanken - UPDATE SET - "Parameter hat keinen Standardwert"
FinnO - Do 15.03.12 15:45
Titel: UPDATE SET - "Parameter hat keinen Standardwert"
Moin,
wie regelmäßig verzweifle ich mal wieder. Ich versuche eine Abfrage durchzuführen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| fQuery.SQL.Add('UPDATE article SET'); fQuery.SQL.Add(format('"barcode" = "%s", "name" = "%s", "notes" = "%s", "img_ID" = "%d",',[fBarcode, fName, fNotes, fImgID])); fQuery.SQL.Add(format('"group_ID" = "%d" , "category_ID" = "%d", "chain_ID" = "%d", ',[fGroupID, fCategoryID, fChainID])); fQuery.SQL.Add(format('"amount" = "%n" , "unit" = "%s"',[fAmount,fUnit])); fQuery.SQL.Add('WHERE "ID" = ' + QuotedStr(IntToStr(fID))); |
Das Formatieren klappt auch. Ich erhalte folgenden SQL-String:
SQL-Anweisung
1: 2: 3:
| UPDATE article SET "barcode" = "4009412813", "name" = "Frische Milch...", "notes" ="1.5 % Fett, pasteurisiert" , "img_ID" = "0", "group_ID" = "0", "category_ID"="1", "chain_ID"="1","amount"="1,00" , "unit"="Liter" WHERE "ID"="3" |
Nun Beschwert sich irgendeine Überprüfungseinheit :"Der Parameter barcode hat keinen Standardwert"
Ich kann aber nirgends erkennen, wo ich versuche einen Standardwert zu schreiben o.Ä.
Um Lösungsvorschläge wird gebeten.
LG
bummi - Do 15.03.12 16:23
gegen was für eine Datenbank fährst Du denn, die "" um Feldbezeichner und Werte kommen mir seltsam vor.
Funktioniert der beiliegende SQL in der Datenbankoberfläche?
FinnO - Do 15.03.12 16:27
Moin Bummi
habe die Anführungszeichen mal überarbeitet. Wenn ich direkt folgenden SQL-String execute:
SQL-Anweisung
1: 2: 3:
| UPDATE article SET barcode = "12371273" , articlename="test" WHERE ID = 3 |
Funktioniert das blendend.
Ändert nur nichts an der Fehlermeldung, wenn ich es wie oben angegeben durchführe.
EDIT: Gnade mir Gott - das Feld heißt "articlename" und nicht "name" - Ich verrecke. Danke Trotzdem. Funktionierender code:
Delphi-Quelltext
1: 2: 3: 4: 5:
| fQuery.SQL.Add('UPDATE article SET'); fQuery.SQL.Add(format('barcode = "%s", articlename = "%s", notes = "%s", img_ID = %d,',[fBarcode, fName, fNotes, fImgID])); fQuery.SQL.Add(format('group_ID = %d , category_ID = %d, chain_ID = %d, ',[fGroupID, fCategoryID, fChainID])); fQuery.SQL.Add(format('amount = "%n" , unit = "%s"',[fAmount,fUnit])); fQuery.SQL.Add('WHERE ID = ' +IntToStr(fID)); |
Martok - Do 15.03.12 17:45
Die falschen Quotes sinds immer noch ;)
Für Strings sind die einfachen '' zuständig - dann auch noch die String-Werte durch QuotedStr jagen.
FinnO - Do 15.03.12 18:44
Stört aber glücklicherweise meine Datenbank nicht :)
bummi - Do 15.03.12 18:49
Access ??
FinnO - Do 15.03.12 19:04
Jo !!
vagtler - Fr 16.03.12 08:22
Ach so, ich dachte hier war die Rede von einer Datenbank. :mrgreen:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!