Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi create tabel vom Client aus (https://www.delphipraxis.net/62918-create-tabel-vom-client-aus.html)

Plutarch 11. Feb 2006 14:07

Datenbank: InterBase • Version: 6 • Zugriff über: CDS + SQL

create tabel vom Client aus
 
Hallo Zusammen!

Ich probiere in meinem Delphi-Programm eine neue Tabelle zu erstellen innerhalb der Datei EMPLOYEE.GDB. Hierzu benutze ich TIBQuery. Im SQL-property habe ich den später beschriebenen SQL-code erfasst. Ich probiere dieses Programm von einem Client her aus zu führen. Leider ergibt dieser Code den Fehler "Database not assigned". Meine Frage: Kann ich ein solches Programm überhaupt vom Client ausführen und so ja was vergesse ich dann?

[delphi]var
SQLBITSFrm1 : TSQLBITSFrm1;
BITSDB : TIBDataBase;
BITSTR : TIBTransaction;
BITSTAB : TIBTable;
BIndex : TIndexOptions;

procedure TSQLBITSFrm1.BITSDBLogin(Database: TIBDatabase;
LoginParams: TStrings);
var
UNameStr : String[20];
PassWStr : String[20];
begin
UNameStr:='SYSDBA';
PassWStr:='masterkey';
LoginParams.Values['USER_NAME']:=UNameStr;
LoginParams.Values['PASSWORD'] :=PassWStr;
end;

procedure TSQLBITSFrm1.BITSSQL;
begin
BITSDB :=TIBDataBase.Create(Self);
BITSDB.OnLogin :=BITSDBLogin;
BITSDB.DatabaseName :='\\LCServer\D:\BitsSQL\examples\EMPLOYEE.GDB';
BITSDB.Connected :=True;
BITSTR :=TIBTransaction.Create(Self);
BITSTR.DefaultDatabase:=BITSDB;
BITSTR.Active :=True;
With BSQL do
begin
SQL.Clear;
SQL.Add
( ' CREATE DOMAIN STR1 AS STRING(1) '
+ ' CREATE DOMAIN STR4 AS STRING(4) '
+ ' CREATE TABLE BSUSER ( '
+ ' GB_SysNr STR4 NOT NULL UNIQUE, '
+ ' GB_Name STRING(20), '
+ ' GB_Gehm STRING(10), '
+ ' GB_Equiv STR4, '
+ ' GB_GGrupp STR4, '
+ ' GB_Sprache STR1, '
+ ' GB_SMod STR4, '
+ ' GB_Typus STR1, '
+ ' PRIMARY KEY (GB_SysNr)); ');
ExecSQL;
end;
end;

Frank Borland 13. Feb 2006 12:19

Re: create tabel vom Client aus
 
Moin, moin

ich hab' das mal kommentiert...
siehe unten

Gruß


Malte


Delphi-Quellcode:
BITSDB.Connected :=True;
BITSTR :=TIBTransaction.Create(Self);
BITSTR.DefaultDatabase:=BITSDB;
BITSTR.Active :=True; // breakpoint setzen: active=true?
With BSQL do // bislang unbekannt :???:
begin
// ist mit welcher Datenbank verbunden?
SQL.Clear;
SQL.Add
( ' CREATE DOMAIN STR1 AS STRING(1) ' // AS VARCHAR(1)
+ ' CREATE DOMAIN STR4 AS STRING(4) ' // AS VARCHAR(4)
+ ' CREATE TABLE BSUSER ( '

Plutarch 14. Feb 2006 20:29

Re: create tabel vom Client aus
 
Moin Moin Malte,

Ich habe IBScript verwendet. Jetzt funktioniert es gut. Das Programm sieht - zum Teil - jetzt so aus:

Delphi-Quellcode:
  BScript.Database     :=BITSDB;
  BScript.Transaction  :=BITSTR;
  With BScript do
  begin
    Script.Clear;
    Script.Add
    ( ' CREATE DOMAIN CH1 AS CHAR(1);  '
    + ' CREATE DOMAIN CH4 AS CHAR(4);  '
    + ' CREATE DOMAIN CH10 AS CHAR(10); '
    + ' CREATE DOMAIN CH20 AS CHAR(20); '
    + ' CREATE TABLE BSUSER (           '
    + ' GB_SysNr   CH4   NOT NULL,    '
    + ' GB_Name    CH20,              '
    + ' GB_Gehmw   CH10,              '
    + ' GB_Equiv   CH4,               '
    + ' GB_GGrupp  CH4,               '
    + ' GB_Sprache CH1,               '
    + ' GB_SMod    CH4,               '
    + ' GB_Typus   CH1,               '
    + ' PRIMARY KEY (GB_SysNr));       ');
    ExecuteScript;
  end;
Ob es möglich ist jetzt auch die Datenbank so zu erstellen? (mit CREATE DATABASE)
Gibt es Vorschläge?

MfrGr.

Plutarch

Frank Borland 14. Feb 2006 21:19

Re: create tabel vom Client aus
 
das gabs vor Kurzem :-)

http://www.delphipraxis.net/topic75205,0,asc,0.html


Gruß


Malte


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 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