ADO Verbindung

TcharZ

Grünschnabel
Hallo liebe Forum mitglieder,

ich sitz jetzt schon seid fast 2 tagen an der Datenbankverbindung von Excel zu Oracle.

Das ganze will ich allerdings mittels ADO machen.
Hat jemand von euch Experten Smile schonmal was damit gemacht?
soll ganz neu sein

Hab schon einen Code zusammengebastelt mit Hilfe dieses Forum's:


Dim Cn As New ADODB.Connection

With Cn
' Provider zuweisen
.Provider = "OraOLEDB.Oracle.1"
' ConnectionString übergeben
.Properties("Data Source") = "PROM"

.Properties("User ID") = User
.Properties("Password") = Pwd
' Connection öffnen
.Open
End With


Davor hatte ich eine DAO Verbindung zur Oracle Datenbank aufgebaut die allerdings nicht einwandfrei funktioniert hatte.
hier sind die Verbindungsoptionen:


odbc = "ODBC;DSN=PROM;UID=" & User & ";PWD=" & Pwd & ";DBQ=DIJ02.firma.DE;DBA=W;APA=T;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;FRL=F;MTS=F;CSR=F;PFC=10;TLO=0;"

wie schaff ich diese Angaben in das ADO Script einzubinden?
weiß jemand rat?
würd auch gern wissen was die einzelnen Optionen bedeuten...
kann mir dann auch jemand verraten wie ich sql anweisungen abschicke
und ergebnisse bekomme?
bin auf völlig neuem Gelände

Gruß

der Unwissende
 
Den entsprechenden Treiber für Oracle hast du aber installiert ?
Ich würd es als erstes mal mit dem Assistenten für ODBC Verbindungen probieren, ob sich überhaupt eine Verbindung herstellen lässt.

Alternativ schau mal dort: http://www.connectionstrings.com
 
danke für die Antwort.

ja ich hatte die selbe Verbindung schonmal hergestellt allerdings mit DAO.
Da gingen leider die updates und inserts nicht.
Jetzt will ich das ganze über ADO probieren.
ja den Treiber habe ich installiert
das ist allerdings der selbe mit dem ich auch über DAO gegangen bin!
ist das richtig? oder muss ich einen neuen für ADO installieren?
wenn ja welchen?

Gruß
 
Normalerweise gibt es ja ODBC Treiber für die meisten Datenbanken, die man beim Hersteller oder OpenSource runterladen und installieren muss.

Bei ADO/Oracle bin ich nicht so der Experte fehlt mir die Erfahrung mit.
DAO und ADO.Net in bezug auf Access oder MSSQL Server kenn ich mich wesentlich besser aus.

Aber da keine Inserts bzw. Update bei DAO gingen, hört sich das eher nach einen anderen Problem an als die Verbindung.

Im SQL Anweisung unterteilt man in verschiedene Aufgabengebiete.
Select Statments gehören zu Gruppe der DCL - Data Control Language
Update bzw. Insert zur Gruppe der DML - Data Manipulation Language.

Bei Datenbanken gibt es für diese einzelnen Teile der Gruppe in Kombination mit den Zielen (z.B. Tabellen,Views) sehr differenzierte Rechte.
Und das hört sich eher danach an als hätte dein Orcale DB Benutzer keine Rechte um die Daten zu manipulieren.
 
Achso bei Datenverändernden Abfragen wird in DAO nicht OpenRecordset verwendet sondern Execute(SQLString, Optionen).
Vielleicht war auch das, dass Problem.
 
Hallo,

ne ich hab "execute" genommen bei update und insert abfragen!!
ich kann dir auch den code zeigen:

Public Function LoadProm(User As String, Pwd As String) As Database
Dim odbc As String

'Prom-DB öffnen
Set DBEngine = CreateObject("DAO.DBEngine.36")
odbc = "ODBC;DSN=PROM;UID=" & User & ";PWD=" & Pwd & ";DBQ=DIJ02.ALCATEL.DE;DBA=W;APA=T;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;FRL=F;MTS=F;CSR=F;PFC=10;TLO=0;"

Err.Description = ""
'Unterdrücken möglicher Fehlermeldungen bei der nächsten Aktion
On Error Resume Next
Set LoadProm = OpenDatabase("", False, False, odbc)

If Err.Description <> "" Then
'Wenn ein Fehler aufgetreten ist
frage = MsgBox("Die Verbindung zur PROM-Datenbank konnte nicht hergestellt werden. Bitte überprüfen Sie die Einstellungen ihres ODBC-Treibers.", vbExclamation, "Fehler")
Exit Function
End If
End Function

-----------

Set DB = LoadProm(User, Pwd)

DB.Execute ("UPDATE OND_PROM_HEADER_DATEN_VW SET PHD_BEMERKUNGEN = 'hund' WHERE PHD_BP_ORDERNO = '1010000662'")


Ich kann mir den Fehler nicht erklären weil mein User alle Rechte auf der Datenbank hat.
Ich denke zwischen DAO und ODBC läuft bei mir irgendwas nicht so ganz wies soll.
Gibt es irgendwelche Dokumentationen über ADO + Oracle im Internet?

Gruß
 
Vielleicht versucht du mal hinter Db.Execute(SQLQuery, dbSeeChanges).
Beim MS SQL Server ist es jedenfalls nötig.
 
DB.Execute ("UPDATE OND_PROM_HEADER_DATEN_VW SET PHD_BEMERKUNGEN = 'hund' WHERE PHD_BP_ORDERNO = '1010000662'", dbSeeChanges)

Syntaxfehler! was mach ich denn falsch? die query is richtig.
"Erwartet: = " steht beim Kompilieren
 
Zuletzt bearbeitet:
Es kann sein, dass DB.Execute eine Funktion ist und deswegen was zurückliefert. Falls du den Rückgabewert brauchst musste den in einer Variable speichern. Falls nicht, häng einfach ein Call davor:

Code:
Call DB.Execute(...)
 
Zurück