AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Insert Generator bei Interbase klappt nicht !
Thema durchsuchen
Ansicht
Themen-Optionen

Insert Generator bei Interbase klappt nicht !

Ein Thema von wlfmario · begonnen am 23. Jan 2006 · letzter Beitrag vom 24. Jan 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#1

Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 17:22
Datenbank: Interbase • Zugriff über: IB
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:
begin
DM.IBShop.Close;
DM.IBShop.InsertSQL.Text := 'INSERT INTO SHOPDATEN (SHOP_ID) VALUES ('+ GEN_ID(GEN_SHOPDATEN_ID,1) + ')';
DM.IBShop.Open;
Ich bekomme immer folgende Meldung:
Zitat:
Fehler] ShopTools.pas(167): Undefinierter Bezeichner: 'GEN_ID'
Ich finde aber keine Infos über GEN_ID.
Was muss ich machen damit mein Generator in mein Primarykey gespeichert wird ?
Mario
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 17:29
Gen_ID() ist keine Funktion von Delphi, sondern eine Funktion von Interbase.
DM.IBShop.InsertSQL.Text := 'INSERT INTO SHOPDATEN (SHOP_ID) VALUES (GEN_ID(GEN_SHOPDATEN_ID,1))'; oder besser das Ganze in einem Before Insert Trigger machen
Markus Kinzler
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#3

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 17:42
Zitat von mkinzler:
oder besser das Ganze in einem Before Insert Trigger machen
Hört sich evt. etwas Doof an aber was soll ich in den Trigger schreiben ?
Mario
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 17:46
In der Datenbank mit IConsole oder IBEXpert

SQL-Code:
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
Sorgt dafür das bei INSERTS bei fehlenden ID's automatisch einer vergeben wird
Markus Kinzler
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#5

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 19:01
Danke für die Hilfe !

Leider wird bei mir nichts eingetragen wenn ich per INSERTSQL etwas in die Datenbank Eintragen möchte.
Delphi-Quellcode:
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;
Was mache ich Falsch ? Ledie findet man über InsertSQL nicht viel Hilfe im Netz.
Mario
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 19:05
Zitat von wlfmario:
Danke für die Hilfe !

Leider wird bei mir nichts eingetragen wenn ich per INSERTSQL etwas in die Datenbank Eintragen möchte.

Das PR Feld darf nicht in der Feldliste beim INSERT sein, da es ja (wenn es leer ist) vom Trigger gefüllt wird.

Was mache ich Falsch ? Ledie findet man über InsertSQL nicht viel Hilfe im Netz.
Delphi-Quellcode:
DM.IBShop.Close;
DM.IBShop.InsertSQL.Text :=('INSERT INTO SHOPDATEN (NAME) VALUES (MeinName)');
DM.IBShop.ExecSql;
Nachtrag: Bei nicht SELECT - Abfragen ( INSERT, UPDATE, DELETE) ist Open durch ExecSQL zu ersetzten, da solche Abfragen keine Ergebnismenge zurückliefern.
Markus Kinzler
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#7

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 19:12
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Shop_Installer.exe ist eine Exception der Klasse EIBInterBaseError aufgetreten. Meldung: 'Dynamic SQL Error
SQL error code = -206
Column unknown
MEINNAME'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Das habe ich auch schon probiert ! Leider kommt die obere Meldung.
Mario
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 19:16
Mein name ist durch eine String zu ersetzen z.B.
INSERT INTO SHOPDATEN (NAME) VALUES 'wlfmario'
Markus Kinzler
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#9

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 19:26
Da liegt ja das Problem !
Ich habe es schon in allen Variationen versucht, entweder meckert Delphi oder Interbase.
DM.IBShop.InsertSQL.Text :=('INSERT INTO SHOPDATEN (NAME) VALUES 'MARIO' '); Ich habe das gefühl das ich etwas übersehe.
Mario
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Insert Generator bei Interbase klappt nicht !

  Alt 23. Jan 2006, 19:32
Text ist eine Property die Klammern bei der Zuweisung sind zuviel.

DM.IBShop.InsertSQL.Text :='INSERT INTO SHOPDATEN (NAME) VALUES ('+QuotedString('MARIO')+')';
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz