AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird-Datenbank per Code erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird-Datenbank per Code erstellen

Ein Thema von f4k3 · begonnen am 1. Apr 2009 · letzter Beitrag vom 1. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#1

Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 10:44
Datenbank: Firebird • Version: 2.1 • Zugriff über: ZeosLib Components
Moin Moin liebe DPler

Ich code momentan ein Programm das CSVs einliest ... und diese Daten in eine Datenbank bzw. Tabelle "kopieren" soll ...
als "Export-Datenbank" will ich Firebird nehmen ...

nun ist es so ... dass ich 2 Optionen haben möchte ...

1. Option = Daten in neue Datenbank kopieren

# Dazu muss natürlich erst eine Datenbank erstellt werden. Per Dialog kann der Anwender sich die entsprechenden Felder zusammenbauen plus Releationen festlegen

2. Option = Daten in eine vorhandene Datenbank kopieren

# Hier muss festgelegt werden welche CSV "Spalte" in welches Datenbankfeld kopiert werden soll

...

Da ich nun bei Option 1 festhänge ... hab ich mir gedacht dass evtl. jemand einen Vorschlag für die Umsetzung hat.

Ich hatte mir gedacht dass man bestimmt die "isql" Kommandozeile mit Parametern ausführen kann, die dann die Datenbank erstellt.
Leider finde ich keine passende Dokumentation beim Firebird Webauftritt.

Ich hab noch nie mit den Commando-Tools gearbeitet ... weil in IBExpert die Sache wesentlich einfacher und schneller geht.

Ich hoff ihr könnt mir helfen

Vielen Dank im Vorraus

Euer f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 10:51
Weil Du IBExpert schon ansprichst:

1. Erzeuge Dir doch die Datenbank erst einmal "von Hand" im IBExpert.
2. Metadaten extrahieren (inkl. aller Tabelleninhalte!!!)

IBExpert erzeugt Dir ein Script, dem Du beispielhaft die benötigten Kommandos entnehmen kannst...
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 10:57
Du verwechselt etwas die Begriffe "Datenbank" und "Tabelle".
Das erstellen einer neuen Datenbank sollte nicht in deiner Anwendung stattfinden.
Beim Anlegen einer neuen Datenbank sind Entscheidungen (Berechtigungen, Speicherort,...) zu treffen, die dein Programm eigentlich nichts angehen.
Das ist eine administative Aufgabe.
Ein neue Tabelle kannst du per SQL mit CREATE TABLE anlegen.
Dann musst du dem Benutzer aber einen Dialog anbieten, in dem er alle Felder mit Namen und Datentyp festlegen kann und zusätzlich die Primärschlüsselfelder anwählen kann.
Andreas
  Mit Zitat antworten Zitat
Lemmy
Online

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 11:40
hi,

die TXXXDatabase (TUIBDatabase, TZeos,...) haben eignetlich auch eine Methode um eine Datenbank zu erzeugen (CreateDatabase). Um Tabellen in der DB zu erzeugen verwendest Du einfach eine Query-Komponente und "wandelst" die Eingaben die der user im Dialog macht in entsprechende SQL-Befehle um (Create Table () usw.).

Ich finde diese Aussage zwar etwas pauschal:
Zitat von shmia:
Das erstellen einer neuen Datenbank sollte nicht in deiner Anwendung stattfinden.
aber ein klein wenig muss ich ihm schon recht geben, weil mir kein wirkliches Szenario einfällt in dem deine Anwendung sinnvoll eingesetzt werden soll.

Lemmy
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#5

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 12:04
Zitat von Billa:
Weil Du IBExpert schon ansprichst:

1. Erzeuge Dir doch die Datenbank erst einmal "von Hand" im IBExpert.
2. Metadaten extrahieren (inkl. aller Tabelleninhalte!!!)

IBExpert erzeugt Dir ein Script, dem Du beispielhaft die benötigten Kommandos entnehmen kannst...
Ich werds mal versuchen Danke

f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 12:12
Hallo,

ich habe mal im Delphi-Forum diesen Beitrag für eine Interbase-Datenbank geschrieben. Sollte auch auf eine Firebird-Datenbank anwendbar sein.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 12:13
Zitat von shmia:
Du verwechselt etwas die Begriffe "Datenbank" und "Tabelle".
Das erstellen einer neuen Datenbank sollte nicht in deiner Anwendung stattfinden.
Beim Anlegen einer neuen Datenbank sind Entscheidungen (Berechtigungen, Speicherort,...) zu treffen, die dein Programm eigentlich nichts angehen.
Das ist eine administative Aufgabe.
mhm ... ich muss dir zustimmen ... Es ist evtl. ungünstig diese funktion in eine Anwendung zu integrieren ...
aber nach den Vorgaben des Endzustandes muss diese Funktion enthalten sein.

Dieses Programm / Tool muss universell sein. Und es muss in soweit Programmiert sein, dass es nahezu keine Wünsche offen lässt.
Es sollen alle CSVs eingelesen werden können, egal mit welchen Separator oder sonstigen Spezifikationen.

Und die Daten aus der CSV müssen aus Testgründen in Paradox, MSSQL und Firebird Tabellen "exportierbar" sein.

Da ich dem Anwender soviel Arbeit und Einarbeitszeit wie möglich ersparen möchte, muss ich auch die Möglichkeit schaffen neue Datenbanken und Tabellen zu erstellen.

Auch wenn es evtl. nicht schlüssig erscheinen sollte, alles andere wäre unpraktikabel und würde den Anruf mehrere Kommandozeilen oder Anwendungen erfordern.

Zitat von shmia:
Ein neue Tabelle kannst du per SQL mit CREATE TABLE anlegen.
Dann musst du dem Benutzer aber einen Dialog anbieten, in dem er alle Felder mit Namen und Datentyp festlegen kann und zusätzlich die Primärschlüsselfelder anwählen kann.
Ja manchmal ist die Lösung so einfach, dass man sie einfach nicht sieht

Du hast natürlich recht und ich danke dir für den Tipp
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#8

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 12:15
Zitat von Lemmy:
hi,

die TXXXDatabase (TUIBDatabase, TZeos,...) haben eignetlich auch eine Methode um eine Datenbank zu erzeugen (CreateDatabase). Um Tabellen in der DB zu erzeugen verwendest Du einfach eine Query-Komponente und "wandelst" die Eingaben die der user im Dialog macht in entsprechende SQL-Befehle um (Create Table () usw.).

Lemmy
mhm ... also eine Methode enthalten die Zeos-Komponenten zwar nicht ...
aber über den Query + DDL wird es denk ich sicher möglich sein

Danke für dein Feedback

f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#9

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 12:24
Zitat von f4k3:

mhm ... also eine Methode enthalten die Zeos-Komponenten zwar nicht ...
aber über den Query + DDL wird es denk ich sicher möglich sein
Ich nehms zurück ...

Es gibt eine Methode ...

Allerdings ist mir noch nicht ganz klar wie das ganze funktionieren soll

ich greif mal das Beispiel von RWarnecke auf ...

Der Code enthält in der Uses folgende Einträge ...
ZTransact, ZIbSqlTr, ZQuery, ZIbSqlQuery, ZConnect, ZIbSqlCon;

also entweder entsprechen diese einer anderen version ... weil meine ZLib-Uses sehen so aus:

ZAbstractRODataset, ZAbstractDataset, ZAbstractTable, ZDataset, ZConnection, ZSequence,
ZSqlMonitor, ZSqlProcessor, ZSqlMetadata, ZStoredProcedure, ZSqlUpdate;

und ich habe die oben genannten auch nicht.

Es handelt sich doch um die ZEOSLib oder?!

Gruß f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: Firebird-Datenbank per Code erstellen

  Alt 1. Apr 2009, 12:45
Ja, aber in der Version 5.x. Ich glaube es war zur Version 6 hin, wo die die Namen geändert haben.

Edit: Ich habe leider gerade kein Delphi mit Zeos zur Hand. Aber wenn Du über die IZConnection gehst, müsste es genau so gehen. Wenn das nicht klappt, muss ich es heute Abend mal an meinem Rechner daheim ausprobieren.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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