![]() |
Datenbank: Firebird • Version: 2,1 • Zugriff über: ZEOS
Generator Auto Inc
Hallo allersamt.
Ich experimentiere zur Zeit mit Firebird, ZEOS und Delphi herum.
SQL-Code:
Das ist meine Test Mini Datenbank.
/******************************************************************************/
/* Generated by IBExpert 01.07.2010 13:36:08 */ /******************************************************************************/ /******************************************************************************/ /* Following SET SQL DIALECT is just for the Database Comparer */ /******************************************************************************/ SET SQL DIALECT 3; /******************************************************************************/ /* Tables */ /******************************************************************************/ CREATE GENERATOR GEN_TABLECOUNTER_ID; CREATE TABLE TABLECOUNTER ( COUNTER INTEGER NOT NULL, RUSH SMALLINT NOT NULL ); /******************************************************************************/ /* Primary Keys */ /******************************************************************************/ ALTER TABLE TABLECOUNTER ADD CONSTRAINT PK_TABLECOUNTER PRIMARY KEY (COUNTER); /******************************************************************************/ /* Triggers */ /******************************************************************************/ SET TERM ^ ; /******************************************************************************/ /* Triggers for tables */ /******************************************************************************/ /* Trigger: COUNTER_TRIGGER */ CREATE OR ALTER TRIGGER COUNTER_TRIGGER FOR TABLECOUNTER ACTIVE BEFORE INSERT POSITION 0 AS begin if (new.COUNTER is null) then new.COUNTER = gen_id(GEN_TABLECOUNTER_ID, 1); end ^ SET TERM ; ^ /******************************************************************************/ /* Privileges */ /******************************************************************************/ /* Privileges of users */ GRANT ALL ON TABLECOUNTER TO MMK WITH GRANT OPTION; Geht auch alles richtig mit IBExpert. Der Counter wird automatisch ab 101 Generiert, wenn man Daten eingibt. Mein Problem ! Ich bekomme es einfach mit ZEOS nicht hin das er mir den Counter automatisch selbst erstellt. Ich habe eine ZConnection, ZTable und eine Datasource Componente genommen. Wenn ich in das DBEdit Feld händig was eintrage geht es, dann kann ich speichern. |
AW: Generator Auto Inc
Du darfst entweder das PK Feld im Insert nicht füllen oder änderst den Trigger, dass der Generator auf jedenfall ausgeführt wird
|
AW: Generator Auto Inc
Zitat:
|
AW: Generator Auto Inc
Wenn Du bei der Zeos in Deiner benutzen Query eine statische Feldliste benutzt, dann muss das Feld Counter die Eigenschaft Required = False haben. Damit kann man es bei einem neuen Datensatz einfach leer lassen, es wird NULL übergeben und der Trigger greift.
Andere Möglichkeit wäre, wenn Du mittels UpdateObject arbeitest, dann lässt Du dort den Value für Deinen Counter einfach leer im InsertSQL
SQL-Code:
INSERT TABLECOUNTER (COUNTER, RUSH) VALUES (NULL, :RUSH)
|
AW: Generator Auto Inc
Oder
SQL-Code:
INSERT TABLECOUNTER (RUSH) VALUES (:RUSH);
|
AW: Generator Auto Inc
Danke für die schnellen antworten
werde es mal ausprobieren |
AW: Generator Auto Inc
Code:
das "INTO" gehört noch dazu.
INSERT INTO TABLECOUNTER (RUSH) VALUES (:RUSH);
Also das Feld Counter auf Not Null diabled dann in Insert siehe oben einfügen und dies
Delphi-Quellcode:
und es funktioniert
procedure TForm2.ZQuery1AfterPost(DataSet: TDataSet);
begin ZQuery1.Refresh; end; Danke vielmals |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 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 by Thomas Breitkreuz