Deutsch
Forum

SQL, Firebird / Interbase und XProfan

 
- Seite 1 -



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 für 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 Verhältnis zwischen MS Office und Open-Office).

Bisher mußte ich mich noch nie groß mit SQL beschäftigen, außer daß ich mir immer mal die XProfan-Hilfe 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 benötigt 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 groß weitermachen.

Literatur über 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 dürfte dann lediglich noch einer reine Fleiß- und Logik-Arbeit sein.

Das Ausweichen z.B. auf dBase ist nicht möglich, weil dBase dbzgl. nicht über die für dieses Projekt erforderlichen Feautures verfügt.

Wer kann evtl. weiterhelfen?

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

Gruß und Danke im voraus
Dietmar

111 kB
Hochgeladen:11.01.2009
Ladeanzahl208
Herunterladen
33 kB
Hochgeladen:11.01.2009
Ladeanzahl171
Herunterladen
 
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  
 



 
- Seite 2 -



RGH
Ach ja:

Natürlich kann man auch den SQL-Kurs aus der XProfan-Hilfe mit FireBird absolvieren.

Dazu habe ich mit dem SEHR empfehlenswerten (und kostenlosen) SQL Manager 2008 Lite for InterBase and Firebird (den gibt es hier: [...]  ) die Datenbank KURSDB.GDB erstellt und im ODBC-Manager eingebunden.

Die Erstellung der Tabelle variiert etwas, da InterBase keinen Datentyp NUMBER kennt, sondern stattdessen den Typ NUMERIC. So kann die Tabelle Bücher nun erstellt werden:
KompilierenMarkierenSeparieren
Gruß
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  
 




Dietmar
Horn
Danke, Roland!

Bis hierhin klappt es nun auch bei mir. Auf die Geschichte mit dem Treiber wäre ich selber vermutlich nie gekommen.

Mit meinen weiteren Fragen melde ich mich dann später wieder. Bis dahin muß ich erst selber noch etwas experimentieren.

Gruß
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:  [...] 
13.01.2009  
 




Dietmar
Horn
Hallo Roland,

könntest Du mal bitte die leere KURSDB.FDB hier anhängen. Die knapp 30 MB für den SQL-Manager sind meinem Modem zu Hause zu fett. Ich kann mir das Programm erst am Freitag per DSL holen.

Weißt Du, ob die Dateiformate *.GDB (Interbase) und *.FDB (Firebird) hundertprozentig identisch sind?

Gruß
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:  [...] 
13.01.2009  
 




RGH
Hallo Dietmar,

ich vermute mal, dass die beiden Formate identisch sind. Der SQL-Manager kommt mit beiden klar. Ich hänge hier mal meine KURSDB.GDB (gezipt) an. Die zwei datensätze aus dem 2. Kursteil sind auch schon drin.

Gruß
Roland

39 kB
Kurzbeschreibung: KURSDB.GDB (mit 2 Datensätzen aus dem 2. Kursteil)
Hochgeladen:13.01.2009
Ladeanzahl121
Herunterladen
 
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  
 




Dietmar
Horn
Hallo Roland,

bis jetzt klappt das alles wunderbar. Der Rest dürfte nun stupide Fleißarbeit und das Herumschlagen mit der korrekten Syntax werden.

Eine grundsätzliche Frage habe ich noch:

Eine Datenbank besteht aus Tabellen, und in jeder Tabelle befinden sich die Datensätze. Bei dBase besteht die Datenbank aus einer oder mehreren DBF-Dateien, und jede DBF-Datei ist eine Tabelle, in der die entsprechenden Datensätze enthalten sind. Bei Firebird / Interbase dagegen befindet sich sämtliche Tabellen in einer Datei. Ich hoffe, ich habe das so richtig verstanden.

Ist es nun auch irgendwie möglich, in Tabellen wiederum Untertabellen anzulegen?

Einfaches Beispiel:

Datenbank: Adressen (1. Variante)
Tabellen: Hoyerswerda, Berlin
Tabelle Hoyerswerda: Untertabelle Männlich, Untertabelle Weiblich
Tabelle Berlin: Untertabelle Männlich, Untertabelle Weiblich
In jeder Untertabelle stehen dann natürlich die Datensätze mit Name, Vorname, usw.

oder kann ich das nur so aufbauen:

Datenbank: Adressen (2. Variante)
Tabellen: Hoyerswerda_Männlich, Hoyerswerda_Weiblich, Berlin_Männlich, Berlin_Weiblich
In jeder Tabelle dann natürlich die Datensätze mit Name, Vorname, usw.

Gruß
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:  [...] 
13.01.2009  
 



Dietmar Horn
Ist es nun auch irgendwie möglich, in Tabellen wiederum Untertabellen anzulegen?


Nicht wirklich und auch nicht wirklich nötig oder hilfreich.

NeTabelle:UID;Name;Vorname;Adresse;Geschlecht;HYFlag,DabeiSeid...

Wenn Du nur alle HYer filtern möchtest, dann doch einfach über die Anfragen an die jeweilige DB - z.B. select uid from NeTabelle where HYFlag = 1 order by DabeiSeid desc.

Du kannst aber (natürlich) viele Tabellen nebenher in der DB haben, Community z.B. hat eine Tabelle für User, für Threads, für Postings, für Smilies...
 
13.01.2009  
 




Thomas
Freier

Nicht wirklich und auch nicht wirklich nötig oder hilfreich


RICHTIG!
Denn Dietmar, die Felder brauchst du auch in deiner Hauptdatei, in denen dann der entsprechende key-schlüssel sein muß, um in der anderen Datei die Daten zu finden. In solchen Fällen eine Abfrage-Query zu schreiben ist verdammt mühsahm. Ausgelagert sein könnten Vorwahlen, PLZ, BLZ, usw. . Also Daten, auf die mehrere Datensätze zurück greifen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.01.2009  
 




Dietmar
Horn
Ja das ist mir schon klar, daß man das auch mit solchen Filtern lösen kann. Notfalls werde ich das auch in etwa so machen müssen.

Die Datenbank meines Projektes ist wesentlich komplexer aufgebaut - das mit den Adressen HY / Berlin sollte nur als Minibeispiel zur Veranschaulichung dienen, was ich genau meine.

Das Organigramm (bzw. die Struktur) besteht aus 4 Tabellen, mit je 2 Untertabellen und diese wiederum mit je 4 Unter-Untertabellen. Insgesamt also mindestens 32 Tabellen, plus evtl. noch ein bißchen was an Reserven für Nebensächlichkeiten und für spätere Erweiterungen. Es wäre nicht schlecht, wenn das mit den Untertabellen so ginge, wie ich mir das vorstellte - das würde eine Menge Logik-um-die-Ecke-Denkerei sparen ...

Das Ganze soll keine Mini-Adressenverwaltung o.ä. werden, sondern ein kommerzielles Programm (was es in dieser Form noch nicht gibt) für eine spezielle Gruppe von Arztpraxen, von denen es bundesweit 20000 potentielle Kunden gibt. Wegen der Schnittstelle(n) zu anderen Branchen-Programmen bin ich da zwingend auf Interbase / Firebird angewiesen.

Gruß
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:  [...] 
13.01.2009  
 




Michael
Wodrich
Statt Untertabellen nutzt man Relationen. Redundanzen sollten möglichst vermieden werden, aber:
Je weniger Redundanzen, desto komplizierter.

Tutorial [...] 
Datenbank-Designer [...] 

Planen und Erstellen einer Datenbank (ist zwar eine andere Datenbank-Engine, aber
man kann etwas zu den Relationen daraus lernen: einfach mal durchklicken und lesen)
[...] 

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
13.01.2009  
 




Dietmar
Horn
Danke, Mischa!

Am Freitag werde ich mir das alles natürlich per DSL-Zugang in meine grauen Zellen reinsaugen und abspeichern, usw. Redundanzen, Relationen usw. sind mir schon seit meinem Ma-/Ph-Studium vor -zig Jahren keine Fremdwörter.

Morgen (Mittwoch) werde ich erst mal in Berlin unterwegs sein, um mit den Projekt-Mitstreitern an unserem Firebird-Projekt weitere Einzelheiten konkreter abzustimmen. Von Medizin, Arztpraxen, usw. habe ich bis jetzt natürlich exakt soviel Ahnung, wie z.B. eine Kuh vom Stabhochsprung.

Inzwischen habe ich als XProfan-Programmierer endgültig (eigentlich schon seit Mitte Dezember 2008) den Zuschlag für dieses Projekt bekommen.

Hoch lebe XProfan!

Gruß
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:  [...] 
13.01.2009  
 




Dietmar
Horn
... und ich ab ca. 16.00 Uhr bis ca. 23.00 Uhr (open end) in Adlershof / Adlergestell ...
 
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:  [...] 
14.01.2009  
 




Dietmar
Horn
Hallo,

das Speichern, Verändern und Löschen von Datensätzen klappt nun.

Jetzt habe ich noch eine weiteres Problem, welches ich für mein Projekt unbedingt lösen muß:

Wie kann man eine beliebige Datei (z.B. Test.rtf) in einer Tabelle speichern, ersetzen, löschen und wieder auslesen. Ich vermute mal, das Auslesen erfolgt über das Extrahieren der gespeicherten Datei in ein temporäres Verzeichnis, von dem aus man die Datei dann mittels ShellExec, WinExec, etc. aufruft.

Doch wie kriege ich per SQL die Datei in die Tabelle rein und auch wieder raus?

Könnte mir da vielleicht mal ein SQL-Profi ein Demo mit der obigen KUESDB.GDB schreiben, in der eine beliebige Datei gespeichert und auch wieder ausgelesen wird? Ob KURSDB.GDB oder KURSDB.FDB ist egal, denn nach meinen bisherigen Tests sind die Dateiformate von Interbase (*.GDB) und Firebird (*.FDB) scheinbar identisch.

Danke und Gruß
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:  [...] 
09.02.2009  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

18.957 Betrachtungen

Unbenanntvor 0 min.
Klaus Kohlhepp20.10.2022
Walter24.02.2022
Rschnett20.02.2019
Peter Max Müller04.02.2019
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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