Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Pavel am 29.09.09 - 14:05:36

Titel: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 14:05:36
Hallo,

vielleicht kann mir jemand helfen, ich komme irgendwie nicht weiter.
Ich verwende folgenden Testcode um überhaupt erstmal mit ODBC warm zu werden.

   Set con = New ODBCConnection
   Dim dataSource As String
   Dim userName As String
   Dim password As String
   dataSource = "odbcsource"
   userName = "username"
   password = "pwd"
   If Not con.ConnectTo(dataSource, userName, password) Then
      Messagebox "Could not connect to " & dataSource
   End If
   Messagebox con.GetExtendedErrorMessage
   con.Disconnect

Leider bringt mir das Script immer eine Fehlermeldung "could not connect to dbname" und die Messagebox liefert "missing argument".
Aber was fehlt denn?
In der ODBC Verwaltung ist alles korrekt und der Testconnect klappt.

MfG
René
Titel: Re: ODBCConnection Problem
Beitrag von: atbits am 29.09.09 - 14:44:29
Hallo

Hast Du eine System oder eine User-DSN angelegt?

Grüße David
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 14:45:40
System DSN, habe aber auch User DSN getestet, damit ging es auch nicht
Titel: Re: ODBCConnection Problem
Beitrag von: atbits am 29.09.09 - 15:00:14
Stimmen denn wirklich die Werte für dsnname (als datasource) und user und pwd?

Der Sample Code aus der Designer-Hilfe sieht ziemlich ähnlich aus.
Hier kannst Du die Daten eingeben, ohne jedesmal neu zu kompilieren.

Code
Uselsx "*LSXODBC"
Dim con As ODBCConnection
Sub Postopen(Source As Notesuidocument)
  Set con = New ODBCConnection
End Sub
Sub Click(Source As Button)
  Dim dataSource As String
  Dim userName As String
  Dim password As String
  dataSource = Inputbox$ _
  ("Enter name of data source", "Data source?")
  userName = Inputbox$ _
  ("Enter user name, if required", "User name?")
  If userName = "" Then
    If Not con.ConnectTo(dataSource) Then
      Messagebox "Could not connect to " & dataSource
    End If
  Else
    password = Inputbox$("Enter password", "Password?")
    If Not con.ConnectTo(dataSource, _
    userName, password) Then
      Messagebox "Could not connect to " & dataSource
    End If
  End If
End Sub
Sub Queryclose(Source As NotesUIDocument, Continue As Variant)
  con.Disconnect
End Sub

Grüße David
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 15:09:30
Hallo,

genau das Beispiel habe ich zuerst verwendet, es kam die gleiche Fehlermeldung.
Per ODBC wollte ich übrigens auf eine Oracle DB zugreifen und habe die entsprechenden Client ODBC Treiber mitinstalliert.

MfG
René
Titel: Re: ODBCConnection Problem
Beitrag von: atbits am 29.09.09 - 15:11:35
Wichtig ist dass Du als datasource den DSN-Namen angibst nicht den Datenbanknamen oder sowas.

Grüße David
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 29.09.09 - 15:16:27
... wie greifst du denn zu - über einen Agenten / Serveragenten  oder direkt?

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 15:19:42
Hallo,

ich greife über meinen Client mit einer Aktion auf die DB zu.

MfG
René
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 29.09.09 - 15:28:10
... hast du in der ODBC-Einrichtung den Datenbankpfad noch drin - Mircosoft verschluckt den, wenn man in den Parametern Änderungen vornimmt...

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 15:33:46
... hast du in der ODBC-Einrichtung den Datenbankpfad noch drin - Mircosoft verschluckt den, wenn man in den Parametern Änderungen vornimmt...

Toni

Hallo,

was meinst Du damit? Ich nutze den ODBC Treiber von Oracle, einen Datenbankpfad muß man da nicht angeben.

MfG
René
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 29.09.09 - 15:39:26
... ich habe den Treiber einer Oracle-DB nicht im Kopf - sorry - bei lokalen DB's gibt man einen Pfad an. Dann müsste bei dir ja der Server auf der Maschine laufen - ansonsten musst du den Zugriff über einen Serveragenten lösen, der dann autorisiert ist den Zugriff vornehmen zu können - oder täusche ich mich?

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 15:41:20
Hallo,

normalerweise kann mein Client doch über die auf meinem Client konfigurierte ODBC Verbindung auf einen Oracle Server zugreifen. Der Test der ODBC Konfiguration verläuft ja auch entsprechend erfolgreich.

René
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 29.09.09 - 15:54:31
... dein ConnectTo sieht soweit sauber aus - vorausgesetzt deine Strings haben keine Fehler - daher meine Intention nach anderen Fehlerquellen zu schauen. Bei allen Zugriffen die ich per ODBC mache, verwende ich immer serverbasierte Agenten und verwende ein Agentdoc zur Übergabe der Ergebnisse ins UI...

Du sagst der Test funktioniert, der Script-Aufruf aber nicht. Dein 8er-Client - verwendest du den RichClient - also den Eclipse-Client oder den Basic-Client?

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 29.09.09 - 15:55:16
habe den Basic Client
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 29.09.09 - 16:01:38
... gut

dann der Treiber und das Betriebssystem - beides die gleiche Bit-Version? - ich hatte bei DB2 Probleme - 64Bit Server und 32 Bit Treiber - sind die Komponenten verträglich?

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 07:20:01
Hallo,

ja sind beides 32 bit Versionen.
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 30.09.09 - 12:49:43
Zitat
Der Test der ODBC Konfiguration verläuft ja auch entsprechend erfolgreich.

... wie sieht denn der Test aus - hast du den DB-Namen , Usernamen und Passwort nochmals genau verglichen?

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 12:58:58
ja, wie gesagt, der ODBC Test mit dem ODBC Verwaltungsprogramm von MS funktioniert.
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 30.09.09 - 13:00:16
... was mich stutzig macht ist das angeblich fehlende Argument - mach mal Screen-Shots von den beiden Meldungstexten...

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 13:04:24
Es kommt nur noch folgende Meldung:
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 13:05:45
der code dazu:

   Set con = New ODBCConnection   
   con.ConnectTo(Inputbox("ODBC data source name", "DSN"))
   Messagebox con.getextendederrormessage
   While Not con.IsConnected
      dsn = Inputbox("ODBC data source name", _
      "Connection not made ...")
      If dsn = "" Then Exit Sub
      con.ConnectTo(dsn)
   Wend
   Messagebox "Connected to " & con.DataSourceName,, _
   "Connection made ..."
   con.Disconnect   
   
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 30.09.09 - 13:11:18
Zitat
con.ConnectTo(Inputbox("ODBC data source name", "DSN"))

... du übergibst nur einen Parameter, den für den DSN - wo ist der Username und das Passwort? Wenn es keine definierten gibt, dann übergebe Leerstrings...

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 13:17:06
das wird in den dialogen abgefragt
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 13:19:45
bei dieser variante kommt die gleiche meldung:

   Set con = New ODBCConnection
   Dim dataSource As String
   Dim userName As String
   Dim password As String
   dataSource = "xyz"
   userName = "abc"
   password = "efg"
   If Not con.ConnectTo(dataSource, userName, password) Then
      Messagebox "Could not connect to " & dataSource
   End If
'      Messagebox con.geterror
   Messagebox con.GetExtendedErrorMessage
   
   con.Disconnect
   
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 30.09.09 - 13:37:40
... ich habe den Aufbau wie folgt:

Call con.connectTo( sDSN , sUser , sPassword )
If Not con.IsConnected Then
   MsgBox "Keine Verbindung: " & con.GetExtendedErrorMessage
End If

Bist du sicher, daß du mit dem angegebenen Usernamen und Passwort Zugriff hast - kannst du den Zugang mit anderen Programmen testetn - DBCisualizer bspw.

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 13:49:37
die fehlermeldung kommt auf jeden fall bevor die messagebox ausgegeben werden kann

Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 14:05:52
habe gerade einen SQL Browser gefunden:

http://www.heise.de/software/download/sql_browser/2670dl

Damit kann ich Problemlos auf die Oracel DB zugreifen, also muß es irgendein Problem mit dem Zugriff bzw. Syntax unter Notes geben.
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 30.09.09 - 15:15:46
... hatte es mit LN 7 funktioniert?

Toni
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 30.09.09 - 15:17:08
weiß ich nicht, haten wir nie im Einsatz, außerdem benötige ich erst jetzt einen ODBC Zugriff
Titel: Re: ODBCConnection Problem
Beitrag von: ata am 30.09.09 - 15:32:52
... na das hört sich nicht unbedingt gut an - ich werde das mit unseren Datenbanken durchspielen - allerdings haben wir hauptsächlich db2 im Einsatz - ich werde dich auf dem Laufenden halten - im Augenblick fällt mir nichts mehr ein - ausser Microsoft, Oracle und IBM anzuchecken...

Toni

Titel: Re: ODBCConnection Problem
Beitrag von: AC am 30.09.09 - 16:58:57
Hast Du mal probiert aus Excel mit dem Oracle Treiber zuzugreifen, klappt das ?

Der Code sieht ok aus, deshalb kommt ja hier keiner auf eine schnelle Lösung.

Hast Du aktuelle Treiberversionen ?
Stimmen die Berechtigungen der Datenbank?
 
Bei SQL Server  und dem MS Treiber gab es einen Bug, dass unter einer gewissen Treiberversion der Benutzer Sysadmin sein musste. Da habe ich stundenlang gesucht und mit Excel festgestellt, dass es nicht mein Code war.

Hoffe es hilft Dir, Gruß AC
Titel: Re: ODBCConnection Problem
Beitrag von: Pavel am 01.10.09 - 07:38:35
Hallo,

danke an alle, es funktioniert nun. Nach einem Neustart meines Rechners funktioniert alles. Keine Ahnung was da im Hintergrund nicht mehr funktionierte.

René