Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP (https://www.delphipraxis.net/176450-%5Bfirebird%5D-db-anbindung-uebers-intranet-klappt-mit-win7-aber-nicht-mit-xp.html)

messie 5. Sep 2013 21:13

Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC

[Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Moin,

ich habe im Intranet meines Kunden eine FB-DB in Betrieb genommen. Der Server-PC hat eine feste IP, Server ist eingerichtet, der Zugriff über den benachbarten Win7-PC war in zwei Minuten eingerichtet und funktioniert.
Anders beim XP-Rechner ein Büro weiter. Ich kann den Server anpingen, der Rechner hat die üblichen Adminrechte, keine Firewall ist aktiv.
Mein Programm verabschiedet sich leider direkt beim Start, so dass ich keine Fehlermeldung mehr bekomme.
Daher die Frage: wie kann ich die Initialisierung der DB mit IBDAC sinnvoll überwachen und die Connection testen?
Kann ich das z.B. auch mit Flamerobin checken (läuft Flamerobin auch vom Stick?)? Also statt Portname bei Hostname die IP eingeben? Gibt es andere Testmöglichkeiten?
Was könnte ich noch übersehen haben? Ich habe immer nur sehr kurz Zugriff auf den Rechner, da der User dort den ganzen Tag dran sitzt.

Ich bin dankbar für jeden Tipp.

Grüße, Messie

jensw_2000 5. Sep 2013 21:43

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Hast Du auf dem XP Rechner eine passende GDS32.dll/fbclient.dll im Windows System Verzeichnis (bzw. im Verzeichnis Deiner Applikation)?

scrat1979 5. Sep 2013 22:11

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Ich hatte dasselbe Problem in meinen ersten Datenbankapplikationen. Der Fehler lag daran, dass in der IDE bzw. auch in der kompilierten EXE-Datei die Datenbankverbindung auf "connected = true" stand. Damit sind meine Programme auch immer beim Start "abgeraucht". Außerdem - wie Daniel geschrieben hat - auf den korrekten Pfad in der Anwendung achten, DANACH ein "conntected = true" setzen. Wenn dann die Client-DLL noch existiert, dann müsste alles passen :-)

Grüsse und viel Erfolg,
Michael

Lemmy 5. Sep 2013 22:11

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Hi,

klar läuft FlameRobin auch vom Stick oder per XCopy auf dem Rechner. Wichtig ist wie oben schon angegeben ist die Client.DLL wichtig.

hoika 6. Sep 2013 07:21

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Hallo,

MadExcept benutzen ...


Heiko

messie 7. Sep 2013 19:08

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Moin und Danke für die Tipps :thumb:

Zitat:

Zitat von jensw_2000 (Beitrag 1227343)
Hast Du auf dem XP Rechner eine passende GDS32.dll/fbclient.dll im Windows System Verzeichnis (bzw. im Verzeichnis Deiner Applikation)?

Ich habe die Installationsroutine von FB zuerst mit der Client-Installation probiert, danach auch den Superserver installiert. Haken bei "dll ins system32 installieren" Keine Fehlermeldung aber lief auch damit nicht.

Zitat:

Zitat von scrat1979 (Beitrag 1227344)
Ich hatte dasselbe Problem in meinen ersten Datenbankapplikationen. Der Fehler lag daran, dass in der IDE bzw. auch in der kompilierten EXE-Datei die Datenbankverbindung auf "connected = true" stand.

Ja, das ist mir am Anfang auch so gegangen. Das war jetzt aber nicht das Problem - es ist keine DB eingetragen und connected staht auf false. Als Server sehe ich noch localhost, der wird aber beim Start mit Werten aus der ini mit der festgelegten IP vorbelegt. Und auf dem Win7-Rechner klappte das ja auf Anhieb.

Zitat:

Zitat von hoika (Beitrag 1227356)
Hallo,
MadExcept benutzen ...

Das werde ich mal probieren, ebenso wie FlameRobin vom Stick.
Gibt es noch weitere Programme, mit denen man den FB-Zugriff direkt testen kann? Denn mein Problem ist, dass ich da nur selten dran kann und dann eine möglichst umfangreiche Teststrategie und die Tools dafür hilfreich wären.

Grüße, Messie

scrat1979 8. Sep 2013 18:27

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Zitat:

Zitat von messie (Beitrag 1227541)
[...]
Das werde ich mal probieren, ebenso wie FlameRobin vom Stick.
Gibt es noch weitere Programme, mit denen man den FB-Zugriff direkt testen kann? Denn mein Problem ist, dass ich da nur selten dran kann und dann eine möglichst umfangreiche Teststrategie und die Tools dafür hilfreich wären.

Grüße, Messie


Ich verwende SQL Mananger (www.sqlmanager.net) und bin vollstens zufrieden. Da gibt es auch eine etwas eingeschränkte Freeware-Version (z.B. Kein Query-Builder), diese reicht aber zum testen allemal aus!!! Läuft im Übrigen auch vom Stick :)

dataspider 8. Sep 2013 19:24

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Bei IBDac kann man IMHO den Ort und Dateinamen der zu benutzenden Client DLL angeben.
Ich stelle es immer so ein, das diese im Anwendungsverzeichnis gesucht wird.

Es wurde ja schon gesagt, das es wichtig ist.

Also, eine zur installierten Server - Version passende 32-bit Client - DLL ins Anwendungsverzeichnis, und dann sollte es funktionieren.

Zumindest reagiert er bei mir oft genauso, wenn ich mit einer älteren DLL auf den Server zugreifen will (Abschied der EXE beim Start ohne Fehlermeldung).

Frank

haentschman 9. Sep 2013 06:17

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Moin...8-)

hat schon jemand die Firewall erwähnt? Bei einem Kunden von mir wurde durch ein Kaspersky Update der Port dicht gemacht.
Normalerweise sollte das in einer Fehlermeldung zum Ausdruck kommen...aber wer weiß...:zwinker:

Edit: Man sollte den ersten Beitrag auch vollständig lesen... ist noch zu früh. :roll:

jensw_2000 9. Sep 2013 06:43

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Zitat:

Zitat von messie (Beitrag 1227541)
Zitat:

Zitat von jensw_2000 (Beitrag 1227343)
Hast Du auf dem XP Rechner eine passende GDS32.dll/fbclient.dll im Windows System Verzeichnis (bzw. im Verzeichnis Deiner Applikation)?

Ich habe die Installationsroutine von FB zuerst mit der Client-Installation probiert, danach auch den Superserver installiert. Haken bei "dll ins system32 installieren" Keine Fehlermeldung aber lief auch damit nicht.

Äh...:gruebel: ... ja...
Da bin ich eben erst drüber gestolpert.
Du startest doch nicht das Firebird Server Setup auf jedem Client-PC, oder?

Die GDS32.dll bzw. fbclient.dll (auch "Client DLL" genannt) muss auf jeder Arbeitsstation vorhanden sein.
Ich mache es meist so, dass ich die zu meinem Programm passende Client DLL im Programmverzeichnis meiner Anwendung ablege. (Also in das Verzeichnis, in dem die exe meiner Anwendung liegt.)

Alternativ kann man die Client DLL auch ins Windows Systemverzeichnis kopieren.
Dafür gilt folgendes Schema:

Wenn Du eine 32 Bit Anwendung geschrieben hast und ein 32 Bit Client-Betriebssystem, dann kopierst Du die 32 Bit fbclient.dll / GDS32.dll in "C:\Windows\System32".

Wenn Du eine 32 Bit Anwendung geschrieben hast und ein 64 Bit Client-Betriebssystem, dann kopierst Du die 32 Bit fbclient.dll / GDS32.dll in "C:\Windows\SysWOW64".

Und wenn Du eine 64 Bit Anwendung geschrieben hast und ein 64 Bit Client-Betriebssystem, dann kopierst Du die 64 Bit fbclient.dll / GDS32.dll in "C:\Windows\System32".

RSE 13. Sep 2013 09:28

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
Auch ich habe mit der Client DLL experimentiert. Du musst auf dem Clientrechner keinerlei Installation ausführen, es muss lediglich die richtige DLL vorhanden sein und gefunden/benutzt werden. Es gibt eine Reihe anderer Programme, die auch mit dieser DLL arbeiten, in anderen Versionen und ggf. gleichem Dateinamen. Einer der beiden Dateinamen wird im Systemverzeichnis gefunden, bevor der andere im Arbeitsverzeichnis gesucht wird - wie rum weiß ich nicht mehr. Aus diesen Gründen rate ich dringend dazu, die für dein Programm korrekte Version im Programmverzeichnis mitzuliefern und diesen Pfad bei Programmstart fest in die IBDAC-Komponente einzutragen, bevor du die Connection aufbaust. IMHO ist nur so sichergestellt, dass die richtige Version der DLL verwendet wird und keine Inkompatibilitäten mit anderen Programmen entstehen.

messie 15. Sep 2013 18:54

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
So, ich teste gerade mal Flamerobin vom Stick. Interessant ist, dass ich über localhost keinen Zugriff auf den Server bekomme. Ich muss erst den Server mit der IP registrieren und dort den DB-Pfad angeben, dann klappt der Zugriff.

Bisher habe ich Localhost als Server verwendet und da IP und Pfad zur DB angegeben. Nun habe ich auch einen Rechner hier bei dem das nicht klappt. Registriere ich einen Server mit der IP und gebe dann den Pfad zu DB an, klappt es.

Es muss da irgendeinen Unterschied geben, ich kapiere ihn aber nicht.
MUSS ich den Server an die IBCconnection übergeben?

Zitat:

Zitat von jensw_2000 (Beitrag 1227662)
Zitat:

Zitat von messie (Beitrag 1227541)
Ich habe die Installationsroutine von FB zuerst mit der Client-Installation probiert, danach auch den Superserver installiert. Haken bei "dll ins system32 installieren" Keine Fehlermeldung aber lief auch damit nicht.

Äh...:gruebel: ... ja...
Da bin ich eben erst drüber gestolpert.
Du startest doch nicht das Firebird Server Setup auf jedem Client-PC, oder?

Doch, aber normalerweise nur mit der Clientinstallation (also ohne Server-Häkchen).

Edit: ich habe jetzt eine Datenbank auf den Testserver gespielt, die ich beim Kunden geändert hatte. Nun kann ich von einem weiteren Server nicht über die Localhost-Variante zugreifen.

Edit2: Ich kann meiner IBCconnection auch den Server getrennt übergeben, verhält sich genau wie bei Übergabe via Localhost. Allerdings unter Win7. Meine Probleme existieren unter XP, da habe ich keinen Rechner mehr.

Grüße, Messie

messie 22. Sep 2013 15:21

AW: [Firebird] DB-Anbindung übers Intranet klappt mit Win7 aber nicht mit XP
 
So, das Problem ist behoben. Die Installationsroutine konnte die ini-Datei nicht an den vorgesehenen Ort spielen (eigener Thread in K&T dazu). Daher habe ich die IP in eine falsche ini aus der vorherigen Programmversion eingetragen :oops:

Danke für die Tipps, ich teste jetzt jede Installation vorab mit Flamerobin.

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz