AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Create Table mit Firebird und ZEOS, wie richtig machen
Thema durchsuchen
Ansicht
Themen-Optionen

Create Table mit Firebird und ZEOS, wie richtig machen

Ein Thema von Jens Hartmann · begonnen am 26. Jan 2010 · letzter Beitrag vom 11. Feb 2010
 
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Create Table mit Firebird und ZEOS, wie richtig machen

  Alt 26. Jan 2010, 19:55
Zitat von DeddyH:
Those SET TERM statements are only needed if you work from an administration tool like isql or FlameRobin. If you run it from your application code, just send the EXECUTE BLOCK block as a single statement.
ich habe übrigens das ganze bis zum Ende gelesen. Ich habe das vieleicht nur nicht ganz verstanden. Also wenn ich das mit meinen Englischkenntnissen richtig verstehe, bedeutet das folgendes..
SET TERM wird nur in Verbindung mit isql or FlameRobin benötigt. In meiner Delphi Aplication muss ich den EXCECUTE BLOCK als einzelnen Block senden. Entweder habe ich das falsch verstanden oder sonst einen Fehler in meinem Code. Das Create, den Trigger etc. habe ich übrigens alles alleine "DURCH LESEN" realisiert.
Exceptionbehandlung und so muss allerdings noch angepasst werden..
Delphi-Quellcode:
Qry_CreateTableArea.SQL.Text :=
'CREATE GENERATOR GEN_AREA_ID; ';
  Qry_CreateTableArea.ExecSQL;
  DM_PS.ConPSConfig.Commit;
Qry_CreateTableArea.SQL.Text :=
'CREATE TABLE AREA (ID ID_DOM, BEREICH TEXT_DOM)';
  Qry_CreateTableArea.ExecSQL;
  DM_PS.ConPSConfig.Commit;
Qry_CreateTableArea.SQL.Text :=
'ALTER TABLE AREA ADD CONSTRAINT PK_AREA PRIMARY KEY (ID) USING INDEX ID';
  Qry_CreateTableArea.ExecSQL;
  DM_PS.ConPSConfig.Commit;
Qry_CreateTableArea.SQL.Text :=
'CREATE OR ALTER TRIGGER TRI_AREA FOR AREA '+
'ACTIVE BEFORE INSERT POSITION 0 '+
'AS '+
'BEGIN '+
  'IF (NEW.ID IS NULL) THEN '+
    'NEW.ID = GEN_ID(GEN_AREA_ID,1);END';
  Qry_CreateTableArea.ExecSQL;
  DM_PS.ConPSConfig.Commit;

  Qry_CreateTableArea.Close;
  Qry_CreateTableArea.SQL.Text :=
  'INSERT INTO AREA (ID,BEREICH)VALUES(:Id,:Bereich)';
  Qry_CreateTableArea.ParamByName('Id').Value := 1;
  Qry_CreateTableArea.ParamByName('Bereich').Value := 'Verbrauchermarkt';
  Qry_CreateTableArea.ExecSQL;
  DM_PS.ConPSConfig.Commit;
except
  Form1.ServiceMemo.Lines.Add('Fehler beim erstellen von Tabelle Bereiche');
end;
end;
Das mit der Abfrage ob die Tabelle vorhanden ist klappt allerdings nicht.
Delphi-Quellcode:
Qry_CreateTableArea.SQL.Text :=
'SELECT 1 FROM rdb$relations where rdb$relation_name = "AREA"';
Qry_CreateTableArea.Open;
Wie muss ich das mit dieser Anweisung denn verstehen. was und wo befinden sich diese beiden Datenbanken/Tabellen oder so. Wenn ich das richtig verstanden habe, sind diese in meiner DB integriert. Mit dem Befehl...
Con_Info.GetTableNames werden mir diese auch Angezeigt. Aber verstehen tue ich die Funktion nicht und eine Exception bring sie auch. Vieleicht ist ja jemand in der Lage mir das mal zu verdeutlichen.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
 


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 12:35 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