Wie kann ich auf eine Firebird Datenbank zugreifen?

Anfängerfragen zum Programmieren mit PureBasic.
nexus72
Beiträge: 25
Registriert: 17.11.2007 14:18

Beitrag von nexus72 »

Hallo Kiffi,

hm, wenn ich über ODBC eine Verbindung zur Firebird-Datenbank erstellt habe,
kann ich in VisualBasic ohne weiteres auf alle Tabellen mit allen
SQL - Abfragen zugreifen.

Schade, dass ich anscheinend mit PureBasic nicht so einfach drauf
zugreifen kann und das es sich so umständlich (aus meiner Sicht) gestaltet.

Trotz allem vielen Dank für Deine Mühe Kiffi.

Wünsche noch einen schönen Tag.

Viele Grüße
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

nexus72 hat geschrieben:hm, wenn ich über ODBC eine Verbindung zur Firebird-Datenbank erstellt habe,
kann ich in VisualBasic ohne weiteres auf alle Tabellen mit allen
SQL - Abfragen zugreifen.
zeig mal den VB-Code (oder einen Download-Link).

Grüße ... Kiffi
a²+b²=mc²
nexus72
Beiträge: 25
Registriert: 17.11.2007 14:18

Beitrag von nexus72 »

Hallo Kiffi,

so, hier ist ein VB-Code Teilstück für das Auslesen der Tabellennamen.

Vielleicht hast du ja eine Idee, wie man diesen Code in PureBasic
verändern kann. Wäre echt super.

Code: Alles auswählen

Sub TabellenNamen_aus_Fremder_Datenbank_Firebird_auslesen_Original()


Vielleicht noch zum Verständnis:
Ich überprüfe die Verbindung, dann lese ich die Tabellen mit dem Namen "MSys"
nicht mit in eine Access-Tabelle mit ein.
Nur möchte ich ja jetzt Access nicht mehr benutzen, sondern einiges, vielleicht
alles in PureBasic umwandeln und nutzen.

Hoffe der Code ist verständlich.
Vielleicht läßt sich das ganze ja in PureBasic realisieren? Oder meinst Du es
wird nicht gehen, weil PureBasic nicht dafür geeignet ist?
Möchte halt hinterher alle Tabellen aus Firebird auslesen, speichern und dann
weiterverarbeiten. Eine Schnittstelle für den Datev-Import auch bauen.
In VB habe ich es jetzt relativ weit schon programmiert.
Ein Tipp wäre noch schön, ob es sich lohnt mit PureBasic dies zu machen.
Denke PureBasic ist schneller als Access - VB ? Oder?

Oder ist es besser das ganze in C++ zu machen?
ist C++ besser als PureBasic?

Hoffe ich nerve nicht zu sehr mit meinen Fragen.

Schon mal vielen Dank und viele Grüße
Zuletzt geändert von nexus72 am 19.11.2007 02:23, insgesamt 1-mal geändert.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

hi,

welchen Firebird ODBC Treiber verwendest Du?
"Firebird/InterBase(r) driver" oder "IscDbc"

brauch ich noch um den richtigen Standardtreiber for "*.FDB" festzulegen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
nexus72
Beiträge: 25
Registriert: 17.11.2007 14:18

Beitrag von nexus72 »

Hallo mk-soft,

Schaue ich nur unter dem:

ODBC-Datenquellen-Administrator steht unter Benutzerdatenquellen:

Name = Firebird und unter Treiber: Firebird/InterBase(r) driver

Gehe ich anschließend auf Konfiguration ist dort unter ODBC-Setup:
der Data Source Name (DSN): Firebird und
der Driver: "IscDbc" eingerichtet.

Gleichzeigt habe ich dort Database und Client eingerichtet.
Hoffe diese Information ist verständlich.

Vielen Dank für Deine Mühe und viele Grüße
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

hi,

update, PBOSL_ExDatabase mit Firebird ist Online

Code: Alles auswählen

Define.s dbName = "c:Test.fdb"
Define.s dsn =  AddSystemDSN(dbName, "User", "Pass", "", "Client=C:\WINDOWS\system32\FBCLIENT.DLL") ; DSN hinzufügen
Debug "DSN: " + dsn
Debug GetSQLInstallerError()

RemoveSystemDSN(dbName)
http://www.purebasic.fr/german/viewtopi ... highlight=

Bitte testen :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
nexus72
Beiträge: 25
Registriert: 17.11.2007 14:18

Beitrag von nexus72 »

Hallo mk-soft,

ich bin gerade dabei Dein update, PBOSL_ExDatabase mit Firebird zu testen.

In dem ODBC Datenquellen Administrator wird unter der System - DSN
der Client nicht eingetragen.

Dies ist die Code-Zeile, die ich ergänzt habe:

Code: Alles auswählen

Define.s dsn =  AddSystemDSN(dbName, "User", "Pass", "", "Client=C:\WINDOWS\system32\FBCLIENT.DLL") ; DSN hinzufügen 
Jedoch fehlt der Client.
Auch wenn ich den Client manuell in der System-DSN erfasse, bekomme ich
merkwürdigerweise keinen Zugriff auf die FDB.

Bei der Code-Zeile:

Code: Alles auswählen

Debug GetSQLInstallerError()
erscheint aber auch keine Fehlermeldung.

Würde mich über eine Hilfestellung freuen.

Vielen Dank und viele Grüße
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Die Zeile ist nur ein Beispiel.
Somit sind User (Database Acount) und Pass (Password) nur ein beispiel.

"Client=C:\WINDOWS\system32\FBCLIENT.DLL" sind nur ein beispiel aus den Internet und nicht unbedingt erforderlich um eine Verbindung auf zu bauen.

Bei mir werden alle Eintragenungen erfolgreich in die DSN ausgeführt.
Auch den Client.
Den Datenbank Server habe ich aber nicht zum testen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
nexus72
Beiträge: 25
Registriert: 17.11.2007 14:18

Beitrag von nexus72 »

Hallo mk-soft,
Die Zeile ist nur ein Beispiel.
Somit sind User (Database Acount) und Pass (Password) nur ein beispiel.
danke für den Hinweis, dass hatte ich aber schon vorher berücksichtigt.
"Client=C:\WINDOWS\system32\FBCLIENT.DLL" sind nur ein beispiel aus den Internet und nicht unbedingt erforderlich um eine Verbindung auf zu bauen.
Ja. O.K., Ich benutze folgende Client-Einstellung:

C:\Programme\Firebird\Firebird_1_5\bin\fbclient.dll

Jedoch wird dies bei mir nicht in der System-DSN eingetragen.
Aber wenn dies nicht erforderlich ist...

So, habe es jetzt noch mal getestet.

Ich kann jetzt auf die FDB zugreifen. Habe auch schon einen längeren
SQL-Code ausprobiert (eine SQL-Abfrage). Funktioniert einwandfrei.

Gibt es eine Begrenzung der Zeichen für den SQL-Code? Oder anders
gefragt, wieviele Zeichen kann der SQL-Code in PB haben?

Möchte mich recht herzlich für Eure Mühe und Geduld
bei Euch mk-soft und Kiffi bedanken

Bin total begeistert.

Nochmals vielen Dank und viele Grüße.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Habe den Firebird ODBC 1.2 zum Testen installiert und Firebird 2.0

Wofür fbclient.dll ist weiß noch nicht.
Gibt es eine Begrenzung der Zeichen für den SQL-Code? Oder anders
gefragt, wieviele Zeichen kann der SQL-Code in PB haben?
SQL-Code sind ja Strings und somit unlimitiert (Theroretisch)

FF :wink:

P.S. Nach dem ich es endlich geschaft habe eine leere Datenbank an zu legen ...

Mit fbclient.dll

Code: Alles auswählen

Define.s dbName = "d:\data\test.fdb"
Define.s dsn =  AddSystemDSN(dbName, "SYSDBA", "masterkey", "", "Client=C:\Programme\Firebird\Firebird_2_0\bin\fbclient.dll") ; DSN hinzufügen
Debug "DSN: " + dsn
Debug GetSQLInstallerError()

If ExamineTables(dsn)
  Debug "Tabellen in Database:"
  Debug ""
  While NextTable()
    Debug GetTableName() + "  <--  " + GetTableType()
  Wend
  Debug "" : Debug ""
EndIf
:allright:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten