![]() |
Datenbank: MS SqlExpress • Version: 9.0 • Zugriff über: ADO
ADOCommand Fehler bei INSERT INTO
Ich habe ein ADOCommand und möchte damit ein INSERT ausfuehren. Wenn ich dies direkt in SQLExpress mache funktioniert es ohne Probleme, wenn ich dies aber nun in meinem Programm machen möchte bekomme ich die Fehlermeldung: Falsche Syntax in der Nähe von '@P1'. so etwas kommt aber in dem Insert gar nicht vor!
Quellcode: das erste insert wird korrekt ausgeführt, die query danach auchn noch, das zweite insert liefert den fehler.
Delphi-Quellcode:
Irgendjemand eine Idee woran es liegen könnte.
function Tdmzeiterfassen.DBEintragerstellen(s_erfassung: String; ZeitAnfang, ZeitEnde, ZeitAnfang2, ZeitEnde2,
Pause: Tdatetime; Art, Art2, s_taetigkeit: STring; gesamtZeitTag: TDateTime): Boolean; var sql: String; i: Integer; begin Result:= false; sql:= 'INSERT INTO '+TabelleZeiten+' (Monat, Jahr, Datum, Anfangszeit, EndeZeit, '+ 'Pause, GesamtZeitArbeit, Arbeitsart, Anfangszeit2, EndeZeit2, Arbeitsart2, '+ 'Taetigkeit) '+ 'VALUES('+copy(s_erfassung, 4,2)+ ','+ copy(s_erfassung,7,4)+','+ QuotedStr(s_erfassung) +','+ QuotedStr(timetostr(ZeitAnfang)) +','+ QuotedStr(timetostr(ZeitEnde)) +','+ QuotedStr(timetostr(Pause)) +','+ QuotedStr(timetostr(GesamtZeitTag)) +','+ QuotedStr(Art) +','+ QuotedStr(timetostr(ZeitAnfang2)) +','+ QuotedStr(timetostr(ZeitEnde2)) +','+ QuotedStr(Art2) +','+ QuotedStr(s_Taetigkeit) +')'; AdoCommand1.CommandType:= cmdText; AdoCommand1.CommandText:= sql; AdoCommand1.Execute; AdoQuery1.sql.clear; AdoQuery1.sql.add('SELECT id from zeiterfassungSB where Datum = '+QuotedStr(s_erfassung)+' order by id desc'); AdoQuery1.open; if AdoQuery1.recordcount > 0 then begin AdoQuery1.first; ID_Datensatz:= AdoQuery1.fieldbyname('id').AsInteger; end; AdoQuery1.close; //Hier die anderen beiden Tabelle füllen mit der erhaltenen id_Datensatz for i:= 0 to length(frmErfassenAendern.aKunde_Projekt)-1 do begin sql:= 'INSERT INTO '+TabelleKundeProjekt+' (lfdNrTag, id_zeiterfassung, Berechnen, '+ 'Anfang, Ende, Kunde, Projekt, Taetigkeit) ' + 'VALUES('+inttostr(i+1)+','+ inttostr(id_Datensatz)+','+ booltostr(frmErfassenAendern.aKunde_Projekt[i].Berechnen)+','+ frmErfassenAendern.aKunde_Projekt[i].Anfang+','+ frmErfassenAendern.aKunde_Projekt[i].Ende+','+ frmErfassenAendern.aKunde_Projekt[i].Kunde+','+ frmErfassenAendern.aKunde_Projekt[i].Projekt+','+ frmErfassenAendern.aKunde_Projekt[i].Taetigkeit+')'; AdoCommand1.CommandType:= cmdText; AdoCommand1.CommandText:= sql; AdoCommand1.Execute; end; Result:= true; end; |
Re: ADOCommand Fehler bei INSERT INTO
Bei welchem der beiden Inserts?
Lass dir mal den erzeugten String anzeigen oder verwende besser (SQL-)Parameter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 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