![]() |
Datenbank: paradox • Version: 7 • Zugriff über: ?
insert into befehl (invalid field name)
hallo
also es handelt sich bei meinem fehler um einen laufzeitfehler der folgendermaßen entsteht. ich habe ein variable netto vom typ integer. diese berechnet sich aus diversen edit feldern und wir dann inttostr(netto) in ein neues edit feld übergeben. nun möchte ich diese variable netto mit folgendem befehl bei klick auf den dbnavigator in die tabelle rechnung übertragen: Query_rechnung.Active := false; Query_rechnung.SQL.Clear; Query_rechnung.SQL.Add('INSERT INTO rechnung (summe) VALUES (netto)'); Query_rechnung.active := true; rechnung ist meine tabelle, summe die spalte wohin der wert jedes mal übertragen werden soll und netto eben die variable woher ich meinen wert für die tablle bekommen soll. beim klick auf den dbnavigator kommt aber nun der laufzeitfehl [...]'invalid field name.netto' Ich bitte um Hilfe. lg,julian |
AW: insert into befehl (invalid field name)
Benutze SQL-Parameter:
Delphi-Quellcode:
Query_rechnung.Close;
Query_rechnung.SQL.Text := 'INSERT INTO rechnung (summe) VALUES (:netto)'; Query_rechnung.ParamByName('netto').Value := netto; Query_rechnung.ExecSQL; |
AW: insert into befehl (invalid field name)
Moin Julian,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Das ganze müsste so aussehen:
Delphi-Quellcode:
Das Datenbanksystem kennt ja Deine Variable Netto nicht, und geht davon aus dass es sich um einen Spaltennamen handelt (den es ja wohl nicht gibt).
Query_rechnung.SQL.Add('INSERT INTO rechnung (summe) VALUES ('+IntToStr(netto)+')');
Du möchtest aber nur den Wert der Variablen in die Spalte Summe schreiben. [EDIT sagt] Detlefs Lösung ist aber besser [/EDIT sagt] |
AW: insert into befehl (invalid field name)
Noch nicht einmal um einen Spaltennamen (der heißt ja "summe"), sondern um einen Wert, und da kann netto überhaupt nicht passen.
|
AW: insert into befehl (invalid field name)
hallo Julian,
aus deiner beschreibung geht hervor, dass es sich um Rechnungen handelt. unabhängig von deinem Problem ist für ein Datenfeld netto integer der falsche Datentyp. Ich weiss zwar nicht mehr was paradox da auf Lager hat, aber ein Kommawert (currency) mit _3_ Nachkommastellen solltest du da schon nehmen. |
AW: insert into befehl (invalid field name)
hallo christian
ich habe es so geschrieben: Zitat:
@khh: man darf nur ganze werte eingeben ;) |
AW: insert into befehl (invalid field name)
Schau Dir die Posts #2 und #3 noch einmal genau an.
|
AW: insert into befehl (invalid field name)
Zitat:
|
AW: insert into befehl (invalid field name)
Verwende besser Parameter. Sonst halt IntToStr()
|
AW: insert into befehl (invalid field name)
hey leute
ich danke euch sehr für eure lösungsvorschläge. mit dem vorschlag von deddyH hat es auch vorerst funktioniert. Da mein programm aber schon viel komplexer ist entstand dadurch leider ein komplett neuer fehler welcher aber, wenn man das programm nicht vorgliegen hat, zu schwer ausfindig zu machen ist, daher habe ich das ganze nun so umgestaltet dass ich einen eigenen button "berechnen" gemacht habe und dann erst der navigator aktiviert wird. so funktioniert nun das ganze, zwar nicht so elegant, aber es funktioniert. lg,julian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz