![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: InterBase - TDataSet
InsertSQL
Hallo Leute,
will mit folgender Procedure einen Datensatz in die Datenbank hinzufügen. Irgendwie tut sich nur beim Ausführen der Procedure nichts. Erhalte auch keine Fehlermeldung seitens Delphi. Könnt ihr mir da weiterhelfen? Gruß, -fapsons---
Delphi-Quellcode:
procedure Add_New_Terminal(typ, Bez, Beschr :String);
begin with D_DataModule.DataSet do begin InsertSQL.Clear; InsertSQL.Text := 'INSERT INTO terminal (TYP, BEZEICHNUNG, BESCHREIBUNG) VALUES (''' + typ + ''',''' + Bez + ''',''' + Beschr + ''')'; Open; Insert; Close; end; end; |
Re: InsertSQL
Delphi-Quellcode:
[s]InsertSQL.Clear;[/s]
InsertSQL.Text := 'INSERT INTO terminal (TYP, BEZEICHNUNG, BESCHREIBUNG) VALUES (''' + typ + ''',''' + Bez + ''',''' + Beschr + ''')'; Open; Insert; Post; Close; |
Re: InsertSQL
Super, vielen Dank!
Das einzige, was jetzt noch nicht funzt ist, wenn ich einen Datensatz lösche und dann wieder einen neuen hinzufügen will, sagt er mir, dass keine Primary-ID vergeben werden konnte. Eine Ahnung, woran es liegen kann? Wenn ich das Programm dazwischen neustarte, gibt es keine Probleme. Sieht irgendwie so aus, als würde ich die Datenbankverbindung nicht korrekt beenden. Aber führe immer die Close-Anweisung aus. Gibt es noch eine andere? |
Re: InsertSQL
Wie heißt den der Primärschlüssel? Wie vergibst du ihn (Generator? Trigger?)
|
Re: InsertSQL
Mit diesem Trigger:
SQL-Code:
AS
BEGIN IF (NEW.TMID IS NULL) THEN NEW.TMID = GEN_ID(GEN_TERMINAL_ID,1); END |
Re: InsertSQL
Wie sind den die Transkationseinstellungen?
|
Re: InsertSQL
Meinst du die Eigenschaften von TTransaction?
|
Re: InsertSQL
Ja.
|
Re: InsertSQL
Transaction:
Active := false; AutoStopAction := saNone; DefaultAction := TACommit; |
Re: InsertSQL
Aktiviere sie mal.
|
Re: InsertSQL
Bringt leider nichts. Kommt die selbe Fehlermeldung...
|
Re: InsertSQL
Hallo!
Poste bitte mal die genaue Fehlermeldung, die Dir ausgegeben wird. Gruß Thomas |
Re: InsertSQL
Im Projekt reg.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Feld 'TMID' muss einen Wert haben'. Prozess wurde angehalten. Mit Einzelnen....
|
Re: InsertSQL
Hallo,
warum nimmst du nicht einfach .InsertSQL.ExecSQL. Heiko |
Re: InsertSQL
Warum machst Du das nicht so ?
Delphi-Quellcode:
[/quote]
procedure Add_New_Terminal(typ, Bez, Beschr :String);
begin with D_DataModule.DataSet do begin Insert; FieldByName ('TYP').AsString := typ; FieldByName ('BEZEICHNUNG').AsString := Bezeichnung; FieldByName ('BESCHREIBUNG').AsString := Beschr; Post; end; end; |
Re: InsertSQL
Habe es jetzt mit der IBQuery versucht. Jetzt klappts problemlos... Danke...;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 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