| |
VB & DatenbankenVB6 ADO Oracle10g | | | Autor: Martin | Datum: 27.09.06 09:05 |
| Hallo zusammen,
Ich versuche von meiner VB6 Anwendung auf eine Oracle10g ODBC Datenquelle zuzugreifen.
Eine Referenz habe ich auf folgende Library gesetzt:
Microsoft DAO 3.6 Object Library
Public dbOLNE As Connection 'Oracle
Public dbOLNEws As Workspace 'Oracle
sConnect = "ODBC;DSN=oplup1;UID=XXXX;PWD=XXXX"
Set dbOLNEws = DAO.CreateWorkspace("IrgendeinName", "", "", dbUseODBC)
Set dbOLNE = dbOLNEws.OpenConnection("NochEinName", dbDriverNoPrompt, False, _
sConnect)
SQLStmt = "SELECT * FROM OT106"
set rs = dbOLNE.OpenRecordset(SQLStmt, dbOpenDynaset) Mit Oracle 9i hat dieser Code einwandrei funktioniert. Mit 10g funktioniert zwar das Öffnen der Datenbank, aber sobald man ein SQL zur Datenbank schickt stürzt die komplette Entwicklungsumgebung ab (schon auf zwei verschiedenen Rechnern getestet).
Funktioniert DAO mit Oracle10g nicht mehr?
Martin | |
Re: VB6 ADO Oracle10g | | | Autor: Prian0815 | Datum: 27.09.06 10:21 |
| Möglich wäre das, zumindest weiß ich inzwischen, dass manchmal der Einsatz von ADO vorzuziehen ist. Probiers doch einfach aus, Nimm den Verweis auf DAO raus und setze einen auf ADO, viel zu ändern am Coding ist da dann nicht.
Gruß Armin
P.S.: always look on the bright side of Life! | |
Re: VB6 ADO Oracle10g | | | Autor: Martin | Datum: 27.09.06 11:59 |
| Wie heißt der Verweis auf ADO genau?
Habe schon etliche probiert, wo ich vermutet habe, dass es sich um einen Verweis auf ADO handelt hat aber nicht funktioniert.
DAnke | |
Re: VB6 ADO Oracle10g | | | Autor: Prian0815 | Datum: 27.09.06 14:28 |
| Bei ADO würde ich am sinnvollsten ohne Verweis arbeiten. Dafür in der Deklaration so vorgehen:
Public con As ADODB.Connection ' repräsentiert die Datenbankverbindung(Connection)
Public RS As ADODB.Recordset 'repräsentiert ein allgemein zu verwendendes Recordset
Das ganze hat folgenden Hintergrund:
Das late-binding verursacht zum Entwicklungszeitpunkt evtl.schon beim Editieren
Probleme, wenn Funktionen aus Objektbiblioteken verwandt werden, die nicht early
gebunden wurden.
Prinzipiell wird kein Verweis im Menü Extras gesetzt, sondern zur Laufzeit zuerst
ein neutrales Objekt erzeugt, dem durch die Funktion CreateIObject eine Anwendung
und damit eine Objktbibliothek zugewiesen wird.
Beispiel:
Sub WordDocOeffnenMitLateBinding()
Dim wordobj As Object
Set wordobj=CreateObject("Word.Application")
... jetzt ist die Wordobjectbibliothek geladen ....
End Sub
Vorab schon mal noch ein paar gute Tips:
Accessversion feststellen:
Sub Accessversion
msgbox SysCmd(acSysCmdAccessver)
oder
msgbox Application.Version
End Sub
Installationspfad von Access ermitteln
SysCmd(acSysCmdAccessDir)
Der Pfad für Objektbibliotheken unterscheidet sich z.B. bei OfficeXP und Office 2003
....Office10/.... oder ....Office11/....:
Diese Informationen wrden benötigt, um versionsabhängige Verweise ggf. zur Laufzeit
setzen zu können.
Gruß Armin
P.S.: always look on the bright side of Life! | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|