AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generator Auto Inc

Ein Thema von ATS3788 · begonnen am 1. Jul 2010 · letzter Beitrag vom 1. Jul 2010
Antwort Antwort
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

Generator Auto Inc

  Alt 1. Jul 2010, 13:49
Datenbank: Firebird • Version: 2,1 • Zugriff über: ZEOS
Hallo allersamt.
Ich experimentiere zur Zeit mit Firebird, ZEOS und
Delphi herum.

SQL-Code:
/******************************************************************************/
/*                 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;
Das ist meine Test Mini Datenbank.

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.
Martin MIchael

Geändert von mkinzler ( 1. Jul 2010 um 13:58 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Generator Auto Inc

  Alt 1. Jul 2010, 13:58
Du darfst entweder das PK Feld im Insert nicht füllen oder änderst den Trigger, dass der Generator auf jedenfall ausgeführt wird
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

AW: Generator Auto Inc

  Alt 1. Jul 2010, 14:00
Ich bekomme es einfach mit ZEOS nicht hin das er mir
den Counter automatisch selbst erstellt.
Was soll denn da selbst erstellt werden ? Beim Einfügen eines neuen Datensatzes schlägt doch wohl der Trigger zu und fertig. Wird der Counter etwa manuell geändert ? Dann greift das IS NULL natürlich nicht.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Generator Auto Inc

  Alt 1. Jul 2010, 14:35
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

INSERT TABLECOUNTER (COUNTER, RUSH) VALUES (NULL, :RUSH)
Carsten

Geändert von mkinzler ( 1. Jul 2010 um 14:39 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Generator Auto Inc

  Alt 1. Jul 2010, 14:40
Oder
INSERT TABLECOUNTER (RUSH) VALUES (:RUSH);
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#6

AW: Generator Auto Inc

  Alt 1. Jul 2010, 18:47
Danke für die schnellen antworten
werde es mal ausprobieren
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#7

AW: Generator Auto Inc

  Alt 1. Jul 2010, 22:51
Code:
INSERT INTO TABLECOUNTER (RUSH) VALUES (:RUSH);
das "INTO" gehört noch dazu.
Also das Feld Counter auf
Not Null diabled
dann in Insert siehe oben einfügen
und dies
Delphi-Quellcode:
procedure TForm2.ZQuery1AfterPost(DataSet: TDataSet);
begin
ZQuery1.Refresh;
end;
und es funktioniert

Danke vielmals
Martin MIchael

Geändert von mkinzler ( 2. Jul 2010 um 09:29 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:33 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