Italia
Foro

SQL, Firebird / Interbase und XProfan

 

Dietmar
Horn
Hallo zusammen,

heute wende ich mich mal mit einem SQL-Problem zwecks Bitte um Hilfestellung an die SQL-Experten unter euch.

Ich arbeite z.Z. mit XProfan 11 an einem komplexeren Projekt. Es ist schon recht weit gediehen. Der bisher einzigste, aber entscheidende Problempunkt ist per mich die An- bzw. Einbindung des RDBS Firebird (Freeware bzw. Open-Source) bzw. Interbase (das kostenpflichtige Gegenstück von Borland zu Firebird - ähnlich wie das Rapporto zwischen MS Office und Open-Office).

Bisher mußte ich mich noch nie grande mit SQL beschäftigen, außer daß ich mir immer mal die XProfan-Aiuto zum SQL-Thema reingezogen und das alles als recht logisch empfunden hatte. Doch wie des öfteren, liegt der Hund bestimmt nur in einem winzigen Detail begraben, was ich nicht kenne, oder in einem Fehler, den ich gemacht oder übersehen habe.

Firebird und Interbase kannte ich bis vor 4 Wochen noch nicht mal vom Namen her, weil ich sowas noch nie necessario hatte - aber nun ist es soweit.

ODBC-Treiber und Firebird sind installiert.

Zunächst geht es darum, eine Verbindung herzustellen. Unter Windows 2000 (in unserem Vereins-Kabinett) klappt die Initialisierung mit SQLInit inzwischen.

Die Initialisierung liefert unter W 2000 wie gewünscht das Handle zurück:
var i% = SQLINIT(DSN=Firebird;)
messagebox(str$(i%),,4160)

Unter Windows XP ergibt das jedoch bis jetzt immer 0 (also gescheitert), und im Gegensatz zu W 2000 erscheint da vorher noch nicht mal der Dialog zum Eingeben von Username, PWD, usw.

Bevor dieses Problem mit dem Herstellen der Verbindung nicht gelöst ist, brauche ich gar nicht grande weitermachen.

Literatur circa Firebird habe ich inzwischen tonnenweise, doch bevor ich es nicht schaffe, auf allen Windows-Systemen ab 2000 aufwärts eine zuverlässige Verbindung herzustellen, nützt mir das alles leider nicht allzu viel.

Kann mir vielleicht jemand weiterhelfen, der sich schon mal etwas näher damit beschäftigt hat?

Die nächsten Schritte, also das Neuanlegen einer Datenbank, oder das Bearbeiten / Auslesen einer vorhandenen DB und das Weiterverarbeiten der Daten im eigentlichen Programm potrebbe dann lediglich noch einer reine Fleiß- und Logik-Arbeit sein.

Das Ausweichen z.B. auf dBase ist nicht possibile, weil dBase dbzgl. nicht circa die per dieses Projekt erforderlichen Feautures verfügt.

Wer kann evtl. weiterhelfen?

Ich vermute mal, wenn das Programm irgendwann mit Firebird corre, dann müßte das Programm auch mit Interbase funktionieren - oder?

Saluto und Danke im voraus
Dietmar

111 kB
Hochgeladen:11.01.2009
Downloadcounter208
Download
33 kB
Hochgeladen:11.01.2009
Downloadcounter171
Download
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
11.01.2009  
 




RGH
Hallo Dietmar,
User und Paßwort müssen unter XP im Init mit angegeben werden. Den Dialog zur Eingabe von Paßwort und User gibt es unter XP offensichtlich nicht mehr. (Ist mir auch schon negativ aufgefallen.)
So sollte es gehen:
KompilierenMarkierenSeparieren
Ob in Deinem Fall DATABASE gebraucht wird, weiß ich nicht, da ich mich mit Firebird noch nicht befaßt habe.

Saluto Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.01.2009  
 




Dietmar
Horn
Danke, Roland,

ich werde das naturalmente ausprobieren (ich glaube jedoch, daß ich diese Variante zwischendurch schon -zig Mal ergebnislos getestet hatte).

Ich hatte sowieso vermutet, daß hier in der Community nicht allzuviele SQL-Profis unterwegs sind.

Auf alle Fälle werde ich das Projekt (hoffentlich mit weiteren Hinweisen aus unserer XProfan-Community) in 1 - 2 - 3 Wochen irgendwie zum Laufen kriegen.

Ich werde erst mal noch ein paar PMs, z.B. eines (meiner ehemaligen) XPRF-Schülers abwarten, denn z.B. Thomas Z. (inzwischen Fach-Informatiker per Irgendwas-DingsBums) hat mir mit seinen SQL-Kenntnissen bereits jetzt etwas ganz schön weitergeholfen.

Bestimmt ist das wieder nur ein klitzekleines SQL-Problemchen, welche noch nicht bis in mein kleines Blöd-Hörnchen-Hirn vorgedrungen ist ...

Weitere Hinweise und Hilfestellungen zu meinem aktuellen SQL-Problem sind naturalmente Benvenuto.

Saluto und Danke im voraus
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
11.01.2009  
 




Dietmar
Horn
Ciao,

SQLInit mir liefert nun endlich ein Handle zurück, nachdem ich in der Systemsteuerung unter Verwaltung -> Datenquellen (ODBC) eine vorhandene Demo-Datenbank namens Employee.fdb eingetragen habe.
KompilierenMarkierenSeparieren
var DB1& = SQLINIT(DSN=Firebird;)
messagebox(str$(DB1&),,4160)e>

Mit
KompilierenMarkierenSeparieren
corre bei mir bis jetzt noch gar nichts. Ich kann also immer nur mit einer einzigen vorhandenen Datenbank arbeiten, oder muß ich per jede vorhandene Datenbank einen neuen Eintrag in der Systemsteuerung anlegen? Das wäre ja schrecklich!

Mit
KompilierenMarkierenSeparieren
wollte ich mir nun den Tabelleninhalt Mostra lassen. Aber nur immer Messagebox ODBC-Fehler mit einigen kryptischen Zeichen hinterher (aber immer dieselben komischen Zeichen, egal was ich bei SQLExec eintrage).

Das Anlegen einer neuen Tabelle mit CREATE TABLE klappt bis jetzt genausowenig.

Die nächsten Schritte wären dann das Auslesen einzelner Felder und das Hinzufügen / Ändern von Datensätzen.

Roland, weißt Du nochmals Rat, oder jemand anders?

Wenn ich da durch bin, dann bin ich bestimmt reif per die Klappse. So, wie mich dieses Firebird-SQL-Zeugs jetzt schon geschafft hat, würden das noch nicht mal meine XProfan-Kursteilnehmer schaffen - auch nicht bei 16 Stunden Kurs am Tag an 7 Tagen in der Woche.

Aber irgendwie muß ich das in den nächsten Wochen hinkriegen, egal wie.

Ich habe mal die Demo-Datenbank und die ODBC-Fehlermeldung mit angehängt.

Saluto
Dietmar

90 kB
Hochgeladen:12.01.2009
Downloadcounter107
Download
8 kB
Hochgeladen:12.01.2009
Downloadcounter103
Download
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
12.01.2009  
 




RGH
Hallo Dietmar,
auch wenn SQL geschaffen wurde, um possibile viele Datenbanken einheitlich abzufragen, gibt es leider dann doch oftmals feine und kleine Unterschiede.
Ich selbst habe XProfans SQL-Fähigkeiten finora problemlos mit dBase-File (lokal), MySQL (lokal und entfernt), ZIM (lokal und entfernt) und Oracle (entfernt) eingesetzt. Entfernt bedeutet, dass die Datenbak auf einem Server im Firmen-Netzwerk oder gar circa TCP/IP auf einem Rechner an einem anderen Standort war.
Mit Firebird habe ich finora noch nichts zu tun gehabt. Um Dir weiter zu helfen müßte ich FireBird selber installieren.
Welche FireBird-Version benutzt Du?
Kann man es lokal installieren und dann auch lokal darauf zugreifen? (Auf der Internetseite steht was von Classic Installation und SuperServer. Welche hast Du benutzt?

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
12.01.2009  
 




Dietmar
Horn
Hallo Roland,

ich habe die Version Firebird 2.1.1.17910 installiert - Superserver (also alle Standard-Häkchen im Setup-Programm so gelassen) und es als Dienst gestartet.

Man kann Firebird naturalmente lokal installieren und dann auch lokal darauf zugreifen.

Ich glaube, dazu braucht man auch noch den ODBC-Treiber, ich hänge ihn mal mit an (ich mußte ihn jedenfalls bei mir erst noch installieren).

Mein Programm soll possibile nicht die Kommandozeilen-Tools von Firebird nutzen, sondern alles per SQL von XProfan aus.

Saluto
Dietmar

493 kB
Hochgeladen:12.01.2009
Downloadcounter96
Download
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
12.01.2009  
 




E.T.
Ich bin ja der Meinung, das man diese API nutzen sollte :

Firebird-Anleitung
The Firebird client library provides an Application Programming Interface (API) with functions for connecting to servers and working with databases. The library functions communicate with the server(s) using a dedicated Firebird client/server protocol that sits on top of the general network protocol provided by the OS.

All client applications and middleware must use the API in some way to access Firebird databases.The Firebird API is backwardly compatible with the InterBase API. The InterBase API Guide (available at [...]  contains extensive documentation on the use the API in applications. Additional features available in the Firebird API are documented in the Firebird release notes.

Client filenames
The Firebird client library files are fbclient.dll (Windows), libfbclient.so (Linux network client) and libfbembed.so (Linux local client with embedded engine, Classic only). In order not to break certain existing applications, a copy of fbclient.dll with the old name gds32.dll can be installed on Windows machines. On Linux, legacy libgds* symlinks are installed automatically.


Man belehre mich eines besseren... 
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
12.01.2009  
 




RGH
Ciao,
installiert habe ich die Geschichte und das SQLInit klappt auch prima.
Zum weiteren Vorgehen noch eine Frage. Die oben angehängte Testdatenbank von Dir è EMPLOYEE. Wie è die Tabelle bzw. heißen die Tabellen, die in dieser Datenbank sind?

Saluto
Roland
(macht aber erst morgen weiter. Gute Nacht!)
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.01.2009  
 




E.T.
RGH
...Die oben angehängte Testdatenbank von Dir è EMPLOYEE. Wie è die Tabelle bzw. heißen die Tabellen, die in dieser Datenbank sind?...


EMPLOYEE.FDB
Unter Firebird ist alles !!! in einer Datenbank, das können Daten, Videos, Bilder oder sonstwas sein...
Da wird alles in un db (u.U. mit Giga-Dimensione)gepackt, deshalb mein Hinweis weiter oben, die API zu nutzen. Normales SQL wird da, denke ich, nicht weit kommen, da ja die .fdb von irgendjemand auseinandergenommen werden muss.

P.S. : Ich red nicht nur schlau, ich sitz selbst auch drann, das Dingens zum laufen zu bekommen... 
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
13.01.2009  
 




RGH
Hallo und Guten Morgen!

Nun, ich denke mal, wenn es eine ODBC-Schnittstelle gibt, wird man auch auf die Daten circa diese irgendwie zugreifen können. Ich gehe allerdings immer noch davon aus, dass die Daten in un rDatenbank in irgendeiner Weise in Tabellen organisiert sind, wie es bei anderen Datenbanken, mit Ausnahme von Clipper/dBase und Konsorten*, üblich ist. Oder liege ich hier falsch.
Und eine Datenbank enthält eine oder mehrere Tabellen. Und diese enthalten einen oder mehrere Datensätze, die widerum ein oder mehrere Felder enthalten.
(Ob die ganze Datenbank nun wie hier physikalisch in einer File liegt, oder wie etwa bei mySQL oder ZIM auf mehrere verteilt ist, sollte per den Zugriff keine Rolle spielen.)

Saluto
Roland

* Da gibt es eigentlich nur einzelne Tabellen. Unter ODBC werden die Tabellen, die im gleichen Verzeichnis liegen, als Datenbank betrachtet.
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.01.2009  
 




RGH
Ergänzung:

Bitte nicht Datenbank mit Tabelle verwechseln! Eine dbf-File ist z.B. eine Tabelle und keine Datenbank, höchstens Teil einer Datenbank.

EMPLOYEE.FDB ist die Datenbank. Diese enthält Tabellen. Und wie ich mit dem sehr schönen Tool IBView jetzt herausgefunden habe, sind es folgende Tabellen: COUNTRY, CUSTOMER, DEPARTMENT, EMPLOYEE, EMPLOYEE_PROJECT, JOB, PROJECT, PROJ_DEPT_BUDGET, SALARY_HISTORY und SALES. Und naturalmente die Systemtabelle, die alle Infos circa Tabellen, Indices, etc. enthält: RDB$RELATIONS.

Leider bekomme ich finora bei jedem Versuch auf diese zuzugreifen, die von Dietmar beschriebene Fehlermeldung. Der Zugriff auf die Datenbank selber gelingt bei mir problemlos mit folgendem SQLInit-Statement:
KompilierenMarkierenSeparieren
oder auch ohne Passworteingabe mit:
KompilierenMarkierenSeparieren
Man ahnt es bereits: Bei mir liegt die EMPLOYEEE.FDB auf DokumenteFireBird.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.01.2009  
 




RGH
BEI MIR GEHT ES JETZT!

Was habe ich gemacht? Nicht die veralteteten ODBC-Treiber aus Deinem (Dietmars) Posting verwendet, sondern hier das neueste stabile Release geholt: [...] 
(Den obersten Eintrag, Version 1.2 Full Install)

Folgendes Programm funktioniert nun einwandfrei:
KompilierenMarkierenSeparieren
cls
var sql& = sqlinit(DSN=Employee;UID=SYSDBA;PWD=masterkey;DBNAME=D:\Dokumente\FireBird\EMPLOYEE.FDB;)
print sql&
ClearList
sqlExec select * from EMPLOYEE,1
listbox$(EMPLOYEE:,2)
ClearList
sqlExec select * from CUSTOMER,1
listbox$(CUSTOMER:,2)
38 kB
Kurzbeschreibung: Konfiguration
Hochgeladen:13.01.2009
Downloadcounter136
Download
57 kB
Kurzbeschreibung: Systemsteuerung/Verwaltung/Datenquellen ODBC
Hochgeladen:13.01.2009
Downloadcounter147
Download
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.01.2009  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

19.065 Views

Untitledvor 0 min.
Klaus Kohlhepp20.10.2022
Walter24.02.2022
Rschnett20.02.2019
Peter Max Müller04.02.2019
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie