Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten aus lokaler Firebird-Datei auslesen? (https://www.delphipraxis.net/108914-daten-aus-lokaler-firebird-datei-auslesen.html)

PeterPanino 21. Feb 2008 03:18

Datenbank: Firebird • Version: ? • Zugriff über: ?

Daten aus lokaler Firebird-Datei auslesen?
 
Hallo, was ist die einfachste Möglichkeit, auf eine lokale einzelne Firebird Datenbank-Datei lesend zuzugreifen und Daten aus den Tabellen auszulesen?

Hansa 21. Feb 2008 03:35

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von PeterPanino
einfachste Möglichkeit...lokale einzelne Firebird Datenbank-Datei lesend zuzugreifen und Daten aus den Tabellen auszulesen?

Wer soll solch eine Frage beantworten ? :shock: Zeige sie in einem DBGrid an. Das geht ruckzuck, aber nur solange keinerlei weitere Wünsche auftauchen. Also absolut keine Hürde. Ansonsten muss man eben auch mal Quelltexte schreiben. :mrgreen:

mkinzler 21. Feb 2008 16:51

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Nimm die embedded-(Server)-Client-Dll.

PeterPanino 21. Feb 2008 18:25

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Ich kann mittlerweile mit Hilfe von gefundenen Komponenten mit der Datenbank verbinden ("Connect/Disconnect"). Ich weiß aber nicht, wie die Tabellen und die Felder heißen, um darauf zugreifen und Daten auslesen zu können, da die Datenbank nicht von mir stammt. Da ich ein kompletter SQL-Anfänger bin (ich geb's zu), wäre vielleicht ein Tipp in dieser Richtung hilfreich.

Am besten wäre ein Programm, das die Datenbankstrukturen der betreffenden Datenbank ausliest und gleich den Delphi-Quellcode für die Funktionen und Prozeduren erstellt, mit denen man dann komfortabel die Daten auslesen kann. Gibt es so etwas?

mkinzler 21. Feb 2008 18:28

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Die Metadaten kannst du aus den Systemtabellen auslesen. Oder du verwendest ein Admintool wie z.B. IB(O)Console, IBExpert, IBEasy, FlaneRobin, ...

DeddyH 21. Feb 2008 18:29

Re: Daten aus lokaler Firebird-Datei auslesen?
 
IBExpert wollte ich auch gerade vorschlagen.

bluesbear 21. Feb 2008 18:39

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von PeterPanino
Ich weiß aber nicht, wie die Tabellen und die Felder heißen, um darauf zugreifen und Daten auslesen zu können, da die Datenbank nicht von mir stammt. Da ich ein kompletter SQL-Anfänger bin (ich geb's zu), wäre vielleicht ein Tipp in dieser Richtung hilfreich.
Am besten wäre ein Programm, das die Datenbankstrukturen der betreffenden Datenbank ausliest und gleich den Delphi-Quellcode für die Funktionen und Prozeduren erstellt, mit denen man dann komfortabel die Daten auslesen kann. Gibt es so etwas?

Ich benutze das hier, um an firebird Datenbanken rumzubasteln:
http://sqlmaestro.com/products/firebird/maestro/
Eine Nummer kleiner, aber Freeware:
http://www.flamerobin.org/index.php

Als Komponenten für Delphi nehme ich
http://www.devrace.com/en/fibplus/
Das kostet aber was. Ich finds allerdings optimal für das, was ich vor habe.

PeterPanino 21. Feb 2008 20:36

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Irgendwie habe ich es geschafft, die Metadaten (ich nehme an, das ist die Bezeichnung für die Datenbankstruktur) aus der Datenbank zu extrahieren. Leider kann ich mit dem SQL-Kauderwelsch nichts anfangen. Kann mir jemand einen Hinweis geben, wie ich damit die Daten aus der Tabelle Tasks auslesen kann? Ich habe die Metadaten hier mal angehängt.

mkinzler 21. Feb 2008 20:41

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Du hast die ein Create-Skript exportiert. In einem Admintool kannst du das aber besser darstellen lassen.

PeterPanino 21. Feb 2008 21:21

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von mkinzler
Du hast die ein Create-Skript exportiert. In einem Admintool kannst du das aber besser darstellen lassen.

Ich habe jetzt mit dem IBExpert (Personal Edition) herumgespielt. Hier habe ich mit der Funktion "Extract Metadata" die Daten der Tabelle 'TASKS' exportiert:

Delphi-Quellcode:
/******************************************************************************/
/*            Generated by IBExpert 2008.02.19 21.02.2008 22:13:00            */
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES NONE;

CREATE DATABASE 'F:\delphi\EPIM2DSB\DEFAULT.EPIM'
USER 'SYSDBA' PASSWORD 'sysdba'
PAGE_SIZE 2048
DEFAULT CHARACTER SET NONE;



/******************************************************************************/
/*                                   Tables                                  */
/******************************************************************************/



CREATE TABLE TASKS (
    IDTASK      DIDITEM,
    IDPARENT    DIDPARENT,
    STATUS      DSTATUS,
    CREATED     TIMESTAMP,
    LASTCHANGED TIMESTAMP,
    DELETED     TIMESTAMP,
    IDEDITOR    INTEGER,
    TITLE       VARCHAR(200),
    PRIVATE     DPRIVATE,
    STARTTIME   TIMESTAMP,
    ENDTIME     TIMESTAMP,
    TEXT        BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    LOCATION    VARCHAR(80),
    PRIORITY    SMALLINT,
    CATEGORY    INTEGER,
    COMPLETION  SMALLINT,
    EXCLUSIVE   SMALLINT,
    REPEATING   SMALLINT,
    ALLDAY      SMALLINT,
    IDCONTACT   BIGINT,
    IDFIELD     INTEGER,
    PATH        VARCHAR(200)
);




/******************************************************************************/
/*                                Primary Keys                               */
/******************************************************************************/

ALTER TABLE TASKS ADD CONSTRAINT PK_TASKS PRIMARY KEY (IDTASK);


/******************************************************************************/
/*                                  Indices                                  */
/******************************************************************************/

CREATE INDEX TASKS_IDX1 ON TASKS (STARTTIME);
CREATE INDEX TASKS_IDX2 ON TASKS (ENDTIME);
CREATE INDEX TASKS_IDX3 ON TASKS (STATUS);
CREATE INDEX TASKS_IDX4 ON TASKS (PRIVATE);
CREATE INDEX TASKS_IDX5 ON TASKS (IDEDITOR);
Wie kann ich mit diesen Informationen jetzt aber in meinem Programm Daten aus dieser Tabelle auslesen?

bluesbear 21. Feb 2008 21:26

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Du kannst das mit entsprechenden Komponenten tun. Ich hab mir einfach welche gekauft.

mkinzler 21. Feb 2008 21:30

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Entweder mit den bei Delphi beiliegenden IBX-Komponenten, Zeos, IBDAC, FIBplus, dbExpress, UIB, IBObjects, ...

PeterPanino 22. Feb 2008 02:41

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von bluesbear
Ich benutze das hier, um an firebird Datenbanken rumzubasteln:
http://sqlmaestro.com/products/firebird/maestro/

Weißt du, ob man mit AnySQL Maestro (Freeware vom selben Hersteller) auch auf eine Firebird-Datenbank zugreifen kann?

Hansa 22. Feb 2008 03:24

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Auf Dauer geht es so nicht weiter. Was man für so ein Vorhaben braucht, sind 4 Dinge :
  • vernünftige Programmiersprache/IDE
  • anständige Datenbank
  • brauchbares Admin-Tool für die Rohdaten
  • Zugriffskomponenten

Die ersten beiden sind ja wohl Delphi und Firebird. Also bleibt das Admin-Tool und die Zugriffskomponenten. Da gibts nun allerdings tatsächlich viele Kombinations-Varianten. Somit stehst du wieder vor den nächsten Fragen. Normalerweise taucht immer lediglich die Frage auf, "welche Datenbank" und das Umfeld wird einfach ignoriert. 8) Für mich ist ganz klar, dass das IBExpert und FibPlus wäre. Letzere kosten als Vollversion allerdings. Bei IBExpert reicht vielfach auch die Personal. Solange diese Fragen nicht geklärt sind, lohnt sich die Diskussion kaum. :mrgreen:

PeterPanino 22. Feb 2008 03:46

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von Hansa
Auf Dauer geht es so nicht weiter.

Du solltest eine Frage nicht interpretieren, sondern sie wörtlich nehmen. Ich habe nicht nach dem gefragt, was du geantwortet hast, sondern genau nach dem, was in der Frage steht: "Weißt du, ob man mit AnySQL Maestro (Freeware vom selben Hersteller) auch auf eine Firebird-Datenbank zugreifen kann?"

-> Missverständnisse entstehen immer dann, wenn man Fragen interpretiert, statt sie wörtlich zu nehmen.

Edit: Danke jedenfalls dafür, dass du versucht hast, eine Antwort zu geben (auch wenn sie nicht zutreffend war).

Hansa 22. Feb 2008 04:18

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von PeterPanino
...dass du versucht hast, eine Antwort zu geben (auch wenn sie nicht zutreffend war).

Dann sage ich eben : Ja, eventuell aber Nein. :mrgreen: Die Vorgehensweise habe ich dir gesagt, aber ohne Gewähr ! Und ja, du kannst definitiv mit Töpfen einen Nagel in die Wand schlagen. garantiert ! Man beachte die Mehrzahl. :P

bluesbear 22. Feb 2008 06:11

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von PeterPanino
Zitat:

Zitat von bluesbear
Ich benutze das hier, um an firebird Datenbanken rumzubasteln:
http://sqlmaestro.com/products/firebird/maestro/

Weißt du, ob man mit AnySQL Maestro (Freeware vom selben Hersteller) auch auf eine Firebird-Datenbank zugreifen kann?

Nein, weiß ich nicht. Um das herauszufinden müsste ich mir das herunterladen und ausprobieren :gruebel:

mkinzler 22. Feb 2008 07:41

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Ja, aber nur über ODBC

bluesbear 22. Feb 2008 07:55

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Zitat:

Zitat von mkinzler
Ja, aber nur über ODBC

An ODBC hatte ich ja gar nicht mehr gedacht! Das wäre doch eigentlich die Antwort auf die Ausgangsfrage von PeterPanino?

mkinzler 22. Feb 2008 08:05

Re: Daten aus lokaler Firebird-Datei auslesen?
 
Ich bevorzuge nativen Zugriff.


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