olafkoeln
Goto Top

Problem WIN XP, VB6, ACCESS, ODBC, ORACLE 9

Datenbankzugriff einer VB6 Applikation (auf WIN XP) über eine Access.mdb ODBC Verknüpfung

Hallo,

folgende zwei Probleme, welche aber wahrscheinlich nicht zusammengehören.

Einleitung

Eine VB6 Applikation, welche bisher ohne Probleme auf einem WIN NT lief, wird umgestellt auf WIN XP (SP3).
Die Datenbank (ORACLE 9i) hat sich nicht geändert, ODBC-Treiber sind identisch und auf dem neusten
Stand (mit anderen, älteren aber identische Probleme). MDAC ist auf den neusten Stand, vorherige
Versionen wurden auch getestet. Andere PC auch komplett neu aufgesetzt zum Test.

Problem 1:

Wird in Access 2000 die Verknüpfung auf die Datenbank über ODBC angelegt, werden die
Datenbankfelder vom Typ her wohl nicht mehr korrekt erkannt.
D.h., wenn ich einer Combobox (oder einer Variant-Variablen) direkt den DB-Wert zuweise,
enthält diese/dieser nur diverse unbrauchbare Sonderzeichen.
Im Debug-Modus wird der Inhalt im Maus-Tip-Text korrekt angezeigt, dem anderen Objekt
aber falsch übergeben. Übergebe ich den Feldinhalt aber dem Typ entsprechend (z.B.
durch VAL() oder STR() funktionert es ohne Probleme.

Alles funktioniert aber problemlos, wenn ich die Verküpfungen über Access97 erstelle
und die Datei konvertiere in Access2000.

Problem 2:

Es gibt zwei, von der Struktur her identische Datenbanken, einmal eine Testdatenbank,
zum anderen eine Produktivdatenbank.

Die Access-Dateien mit den entsprechenden identischen Verknüpfungen und
Connect-Eigenschaften (bis auf DB-Bezeichner) sind identisch.

Die Verbindung zur einer DB klappt ohne Probleme, zu der anderen erfolgt nach
genau 30s ein Verbindungsabbruch, egal, ob Aktivitäten vorliegen oder nicht.

Die Einstellungen, soweit mir bekannt, sind identisch. Alle ODBC.INI Werte in
der Registry auch.


Theoretisch kann ich natürlich auf ODBC-Direkt umstellen. Wäre aber ein
erheblicher Aufwand, da sich die Synthax zahlreicher SQL-Statements ändern würde.


Hat zu den Probleme jemand eine Idee?

Danke !

Olaf

Content-Key: 97814

Url: https://administrator.de/contentid/97814

Printed on: April 18, 2024 at 15:04 o'clock

Member: OlafKoeln
OlafKoeln Oct 07, 2008 at 11:23:04 (UTC)
Goto Top
So, Problem 2 ist gelöst.

Die Applikation hat mit der Gegenstelle auch eine Socket-Kommunikation aufgebaut, welche aber für das Funktionieren der Applikation ohne Belang war.

Im Fehlerfall (was zu einer Gegenstelle immer der Fall war), wurde die Socket vor dem erneuten Öffnen 2x geschlossen. Einmal im Programm "planmäßig", das zweite mal im OpenCom der DLL.

Durch das 2. Close wird wohl auch der Port der Datenbankanbindung geschlossen.

Unter WIN NT war das so wohl nicht der Fall.