Datenbankanbindung über Netzwerk
-
Hallo
ich habe ein Programm geschrieben auf der Basis von Interbase.
Jetzt kann ich auf meinem Rechner das Programm zwar super verarbeiten, aber es sollte eigentlich auch von anderen Rechnern (mit dem gleichen Programm) auf die Datenbank auf meinem Rechner zugegriffen werden können.
Mit Interbase hab ich bereits eine Verbindung erstellt, nur wie muss ich die Datenbanken auf den Clients einbinden damit es wieder geht ?Kann mir da jemand helfen ?!
Ich denk mal das Problem liegt irgendwo im SQLConnection Modul vom Builder.Bernd
-
Hallo BerndKa,
auf genau einem Rechner muß der Interbase-Server installiert sein, auf allen anderen Rechner wird der Interbase-Client installiert. In deinem Programm sollte ein Connection-String vorhanden sein, der Zeichensatz, Username, Oassword, Protokoll, Servername und Datenbankpfad beinhaltet.
Mit welcher Interbase-Version arbeitest Du genau?
Mit welchen Komponenten greifst Du auf die Datenbank zu? (IBO, IBX, dbExpress, ...)
Zeig mal etwas Code...
-
Hallo
ein Rechner hat den Server installiert, der andere den Client - das hab ich.
Version 6.0.Was ist der Connection String ??
Ich hab eine SQL Connection im Programm die über die Parametereingabe
(direkt) auf dem Element (SQL Connection) konfiguriert ist.Zeichensatz ist ISO8859_1
Username sysdba
Passwort masterkey
Servername hab ich nicht zur Auswahl
Datenbankpfad was soll ich da eingeben - den ServerpfadCode gibt darüber nicht - wir ja alles im Element selbst eingestellt.
Gruss
Bernd
-
Hallo BerndKam,
ein Rechner hat den Server installiert, der andere den Client - das hab ich.
Version 6.0.
Eine Version 6.0 gibt es meines Wissens nicht. Der Versionsstring ist normalerweise länger, z.B. "6.0.1.6". Auf allen Rechnern, die dein Programm einsetzen, sollte im System32-Ordner eine Datei namens gds32.dll zu finden sein. Diese Datei sollte auf allen Rechnern die gleiche Produktversion/Dateiversion (Explorer, rechte Maustaste, Kontextmenu Eigenschaften, Reiter Version) liefern, sonst gibt es im laufenden Betrieb Probleme. Näheres dazu unter:http://www.entwickler-forum.de/webx?13@132.FZjnaLQJaWd.0@.ee6b7f3
bzw.
http://www.entwickler-forum.de/webx?13@186.VZU9aMvXaO4.0@.ee8d05eWas ist der Connection String ??
Ich hab eine SQL Connection im Programm die über die Parametereingabe
(direkt) auf dem Element (SQL Connection) konfiguriert ist.
Dazu nochmal meine Frage: Womit greifst Du auf die Datenbank zu? Welche Komponenten benutzt Du? (IBO, IBX, dbExpress, ...). Allen diesen Komponenten ist gemein, das bestimmte Parameter gesetzt werden müssen, damit der connect zur Datenbank funktioniert, allerdings heißen die Parameter eventuell anders. Hier mal ein Code-Beispiel für IBO-Komponenten...ibConnect ist vom Typ: TIB_Connection
ibQuery ist vom Typ: TIB_Query//Connect auf Datenbank unterbinden ibConnect->Connected = false; //1. try - catch try { //Einstellungen vornehmen ibConnect->CharSet = "WIN1252"; ibConnect->LoginPrompt = false; ibConnect->Username = "SYSDBA"; ibConnect->Password = "masterkey"; ibConnect->PageSize = 4096; ibConnect->Protocol = cpTCP_IP; ibConnect->Server = asDBSvr; //Rechnername oder IP-Adresse ibConnect->Path = asDBPfad; //Pfad und Name der Datenbank //Query verbinden ibQuery->IB_Connection = ibConnect; ibQuery->IB_Transaction = ibConnect->DefaultTransaction; //Jetzt Datenbank-Connect versuchen ibConnect->Connected = true; } //1. try - catch catch(EIB_Error *E) { //Fehlemeldungen abfangen } //catch(EIBError *E)Zeichensatz ist ISO8859_1
Username sysdba
Passwort masterkey
soweit ok...Servername hab ich nicht zur Auswahl
Datenbankpfad was soll ich da eingeben - den Serverpfad
ibConnect->Protocol = cpTCP_IP;
ibConnect->Server = asDBSvr; //Rechnername oder IP-Adresse (Interbase-Server)
ibConnect->Path = asDBPfad; //Pfad und Name der Datenbank (c:\pfad\Ordner\MeineDatenbank.gdb)Da dein Programm auf mehreren Rechnern laufen soll, mußt Du ein Protokoll vorgeben; die Interbase-DB-Gurus in den oben genannten Foren empfehlen TCP/IP. Du müßtest eigentlich auch eine englischsprachige Doku als Heft und PDF zum Interbase haben, schau mal im DevGuide.pdf nach, dort wird u.a. der Einsatz von den IBX-Komponenten beschrieben. Ansonsten ein sehr gutes und empehlenswertes Buch von Andreas Kosch: Interbase-Datenbankentwicklung mit Delphi. Das ist auch für C-Builder-Programmierer geeignet
Code gibt darüber nicht - wir ja alles im Element selbst eingestellt.
Meinst Du damit den Objektinspektor? Die obengenannten Eigenschaften (Server, Path, etc.) findest Du natürlich auch da. Ist halt Geschmackssache, wie man es macht.Konnte ich Dir damit ein wenig helfen?
Grüße, Jürgen
-
Hallo Jürgen
danke erstmal für die Antworten
ich hab auf einem Rechner den Client V6.0.1 und auf dem anderen den Server V6.0.1 installiert.
Im Builder benutze ich die Komponente dbExpress-SQLConnection (Eintragungen siehe unten) die gds32.dll ist miteingetragen.
DriverName=Interbase
Database=database\stammdaten.gdb
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=ISO8859_1
SQLDialect=3
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
ErrorResourceFile=
LocaleCode=0000
Interbase TransIsolation=ReadCommitedDu benutzt bei deinem Beispiel die Komponente ibconnect -> wo kann ich die finden? Muss ich die installieren -> wenn ja wo gibts die ? Hier wären ja die Punkte mit Server uns Pfad enthalten - genau das brauch ich! Vielleicht bin ich ja auch blind uns sehe sie nur nicht.

Gruss
Bernd
-
Hallo BerndKa,
ich hab auf einem Rechner den Client V6.0.1 und auf dem anderen den Server V6.0.1 >installiert.
Eine Version V6.0.1 gibt es meines Wissens nicht. Im Allgemeinen sind die Versionsnummern länger wie z.B. V6.0.1.6, V6.0.2.x (Open Source) oder V6.5.0.28 (Diese Versionen gibt es wirklich). Auf dem Markt gibt es viele Interbase-Versionen mit teilweise erheblichen Unterschieden im Bereich der Stabilität. Die einzige stabile Version des Interbase 6 ist die V6.0.1.6; die Interbase-Gurus warnen davor, die anderen Versionen einzusetzen.Deshalb nochmal meine Frage: Welche Version setzt Du ein?
Im Builder benutze ich die Komponente dbExpress-SQLConnection (Eintragungen siehe unten) die gds32.dll ist miteingetragen.
Die dbExpress-Kompos kenne ich nicht, zumindest sind die bei meinem BCB5 Enterprise nicht dabei.
Wie meinst Du das: "Die gds32.dll ist miteingetragen"? Die gds32.dll muß lediglich auf den betreffenden Rechner im System32-Ordner vorhanden sein. Das macht i.A. die Installationsroutine des Interbase-Setups. Manchmal hilft es auch, die Datenbank so anzugeben:Rechnername:c:\pfad\ordner\meineDB.gdb
127.0.0.1:c:\pfad\ordner\meineDB.gdbDas kannst Du bei den dbExpress-Komponenten auch mal versuchen.
Benutzt Du die BDE?
Du benutzt bei deinem Beispiel die Komponente ibconnect -> wo kann ich die finden? Muss ich die installieren -> wenn ja wo gibts die ? Hier wären ja die Punkte mit Server uns Pfad enthalten - genau das brauch ich!
Diese Komponentensamlung hat mir mein Chef gekauft, ist aber meines Wissens für den Privatgebrauch kostenlos. Der Entwickler heißt Jason Wharton und hier kommt die Adresse: http://www.ibobjects.com/Als Alternative kannst Du mal schauen, ob Dein BCB eine Registrierkarte mit dem Namen InterBase bzw. InterBase Admin hat. Da findest Du okinal-Borland-Komponenten für den Zugriff auf Interbase-Datenbanken. Versuch erstmal die, weil bei den IB-Objects die Lernkurve ziemlich hoch ist.
Vielleicht bin ich ja auch blind uns sehe sie nur nicht.
Ach was. Ich glaube, das geht jedem machnmal so...Grüße, Jürgen
-
Hallo Jürgen
dein Tip mit SERVER:PFAD hat gewirkt - so gehts.
Vielen Vielen Dank für deine Hilfe.

Viele Grüsse
Bernd