![]() |
Datenbank: Interbase • Zugriff über: IB
Insert Generator bei Interbase klappt nicht !
Hallo zusammen,
ich versuche grade per INSERT ein GeneratorFeld in mein PrimaryKey zu speichern ! Leider klappt das nicht so wie ich mir das vorstelle. Hier mal der Code.
Delphi-Quellcode:
Ich bekomme immer folgende Meldung:
begin
DM.IBShop.Close; DM.IBShop.InsertSQL.Text := 'INSERT INTO SHOPDATEN (SHOP_ID) VALUES ('+ GEN_ID(GEN_SHOPDATEN_ID,1) + ')'; DM.IBShop.Open; Zitat:
Was muss ich machen damit mein Generator in mein Primarykey gespeichert wird ? |
Re: Insert Generator bei Interbase klappt nicht !
Gen_ID() ist keine Funktion von Delphi, sondern eine Funktion von Interbase.
Delphi-Quellcode:
oder besser das Ganze in einem Before Insert Trigger machen
DM.IBShop.InsertSQL.Text := 'INSERT INTO SHOPDATEN (SHOP_ID) VALUES (GEN_ID(GEN_SHOPDATEN_ID,1))';
|
Re: Insert Generator bei Interbase klappt nicht !
Zitat:
|
Re: Insert Generator bei Interbase klappt nicht !
In der Datenbank mit IConsole oder IBEXpert
SQL-Code:
Sorgt dafür das bei INSERTS bei fehlenden ID's automatisch einer vergeben wird
CREATE TRIGGER Neue_ShopDaten FOR SHOPDATEN
ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ID IS NULL) THEN NEW.ID = GEN_ID(GEN_SHOPDATEN_ID,1); END |
Re: Insert Generator bei Interbase klappt nicht !
Danke für die Hilfe !
Leider wird bei mir nichts eingetragen wenn ich per INSERTSQL etwas in die Datenbank Eintragen möchte.
Delphi-Quellcode:
Was mache ich Falsch ? Ledie findet man über InsertSQL nicht viel Hilfe im Netz.
DM.IBShop.Close;
DM.IBShop.InsertSQL.Text :=('INSERT INTO SHOPDATEN (SHOP_ID) VALUES (GEN_ID(GEN_SHOPDATEN_ID,1))'); DM.IBShop.InsertSQL.Text :=('INSERT INTO SHOPDATEN (NAME) VALUES (MeinName)'); DM.IBShop.Open; |
Re: Insert Generator bei Interbase klappt nicht !
Zitat:
Delphi-Quellcode:
Nachtrag: Bei nicht SELECT - Abfragen ( INSERT, UPDATE, DELETE) ist Open durch ExecSQL zu ersetzten, da solche Abfragen keine Ergebnismenge zurückliefern.
DM.IBShop.Close;
DM.IBShop.InsertSQL.Text :=('INSERT INTO SHOPDATEN (NAME) VALUES (MeinName)'); DM.IBShop.ExecSql; |
Re: Insert Generator bei Interbase klappt nicht !
Zitat:
|
Re: Insert Generator bei Interbase klappt nicht !
Mein name ist durch eine String zu ersetzen z.B.
SQL-Code:
INSERT INTO SHOPDATEN (NAME) VALUES 'wlfmario'
|
Re: Insert Generator bei Interbase klappt nicht !
Da liegt ja das Problem !
Ich habe es schon in allen Variationen versucht, entweder meckert Delphi oder Interbase.
Delphi-Quellcode:
Ich habe das gefühl das ich etwas übersehe.
DM.IBShop.InsertSQL.Text :=('INSERT INTO SHOPDATEN (NAME) VALUES 'MARIO' ');
|
Re: Insert Generator bei Interbase klappt nicht !
Text ist eine Property die Klammern bei der Zuweisung sind zuviel.
Delphi-Quellcode:
DM.IBShop.InsertSQL.Text :='INSERT INTO SHOPDATEN (NAME) VALUES ('+QuotedString('MARIO')+')';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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