![]() |
Datenbank: access • Zugriff über: ado
ADO Insert Into
Hallo,
ich habe ein kleines Problem. Ich möchte mit ADO etwas in eine Datenbank schreiben und habe dazu folgenden Code. Aber er sagt immer zu viele Parameter...
Delphi-Quellcode:
Woran liegt das? Was klappt nicht?
Form1.ADOQuery1.Active:=false;
Form1.ADOQuery1.Sql.Clear; Form1.ADOQuery1.Sql.Add('INSERT INTO datenbank (Name, Name2, Name3, Name4, Name5, Name6, Name7, Name8) Values '+ QuotedStr(Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text, Edit5.Text, Memo1.Text, Memo2.Text, Memo3.Text)); Form1.ADOQuery1.Active:=true; |
Re: ADO Insert Into
Stand da vorher eine andere Abfrage drin?
|
Re: ADO Insert Into
Nein. Wieso? Habe die gerade eben erst geschrieben.
|
Re: ADO Insert Into
Es fehlt eine Klammer nach values
|
Re: ADO Insert Into
Hallo,
nicht nur die Namen, auch die Werte müssen in runden Klammern angegeben werden. Die Werte müssen einzeln mit QuotedStr() behandelt werden, wenn es sich um CHAR-Typen handelt. Memo-Texte lassen sich in der Regel nicht auf diese Weise einfügen. Freundliche Grüße |
Re: ADO Insert Into
In deinem Quelltext mußt du jedes einzelne Eingabefeld in QuotedStr packen und händisch mit einem Komma trennen. Viel Aufwand und fehlerträchtig.
Benutze in deinem Fall lieber Parameter:
Delphi-Quellcode:
Da du hier einen DML-Befehl verwendest, darfst du nicht Active bzw Open verwenden, sondern mußt nit ExecSQL das Statement ausführen.
Form1.ADOQuery1.Sql.Add('INSERT INTO datenbank (Name, Name2, Name3, Name4, Name5, Name6, Name7, Name8) Values :P_1, :P_2, :P3, :P_4, :P_5, :P_6, :P_7, :P_8)');
AdoQuery1.Prepared := True; AdoQuery1.Parameters.FindParam('P_1').Value := Edit1.Text; ... AdoQuery1.Parameters.FindParam('P_8').Value := Memo3.Text; AdoQuery1.ExecSQL; Grüße Mikhal |
Re: ADO Insert Into
Hallo Michael, leider hast du seinen Fehler der fehlenden Klanner per CP mitkopiert
|
Re: ADO Insert Into
:oops: Stimmt
Korrekterweise:
Delphi-Quellcode:
Form1.ADOQuery1.Sql.Add('INSERT INTO datenbank (Name, Name2, Name3, Name4, Name5, Name6, Name7, Name8) Values (:P_1, :P_2, :P_3, :P_4, :P_5, :P_6, :P_7, :P_8)');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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-2025 by Thomas Breitkreuz