Autor Thema: SQL mit Notes kommunizieren über ODBC  (Gelesen 7997 mal)

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
SQL mit Notes kommunizieren über ODBC
« am: 13.05.08 - 19:06:12 »
Hallo,

ich hab vor kurz etwas ähnliches gepostet, nun mach ich dies für den einen Fall mal etwas genauer.

Ich möchte gern aus einem Notes Agenten eine SQL DB ansprechen und Werte auslesen.

Nun die erste Frage, wie spreche ich den eine SQL View an!? Ist dies das gleiche als würde ich eine SQL Tabel ansprechen!?

Das andere Problem was ich habe, ist die Tatsache, dass ich keinerlei Werte von der SQL DB erhalte.

Code sieht wie folgt aus... (ist aus einen Musterbeispiel übernommen und angepasst worden)

Code
Sub Click(Source As Button)
	Dim Con As New ODBCConnection 
	Dim Qry As New ODBCQuery 
	Dim Res As New ODBCResultSet 
	Dim IsConnected As Integer 
	Dim sValue As String 
	IsConnected = Con.ConnectTo("SDE_SQL") 
	table=con.ListTables  'Ausgabe alle Tabellen, keine weiter Funktion dahinert
	Set Qry.Connection = Con 
	
	'Qry.SQL = {SELECT * FROM _SMDBA_Incident Details} ' dies ist die View
	
	Qry.SQL = {SELECT * FROM events} 	' hier hab ich es mit einer Tabelle probiert

	Set Res.Query = Qry 
	Res.Execute 
'spätestens ab hier würde ich erwarten, dass ich im Debugger einige Werte sehe oder ähnliches.... ist aber nicht der Fall. Auch die Rows stehen nur auf 0 oder 1
	IsConnected = Res.FirstRow 
	Do While IsConnected = True 
		sValue = Res.GetValue("Nachname") 
		Print sValue 
		IsConnected = Res.NextRow 
	Loop 
	IsConnected = Res.Close( DB_CLOSE ) 
	IsConnected = Con.Disconnect 
End Sub


hat jemand eine Idee woran dies liegen kann, dass ich garnichts zurück bekomme!?

Danke
Gruß
stan

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #1 am: 13.05.08 - 19:07:40 »
Achso

Ergänzung...
Die Tabell und View `s gibt es in der SQL DB!!!
Dies ist verifiziert...

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #2 am: 13.05.08 - 19:14:45 »
1) Was für eine Ziel-DB hast Du? DB2, MS-SQL, Oracle, ODBC, ...
2) Bist Du Dir sicher, dass Du Dich beim Connect nicht anmelden musst?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #3 am: 14.05.08 - 11:04:09 »
zu 1.
Also die Ziel DB ist eine SQL. Spezifischer weiß ich es noch nicht!! Werde ich aber mal nachhacken!!

zu 2.
ja, ich meld mich beim Connect an.
obwohl das irgendwann auch automatisch laufen muss.
(Hat da auch jemand eine Idee!? - Soll späte ein Agent sein, da kann keine Abfrage erscheinen!! :) )

Gruß

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #4 am: 14.05.08 - 11:13:50 »
Deine Aussage
Zitat
ja, ich meld mich beim Connect an.
widerspricht dem Code
Code
IsConnected = Con.ConnectTo("SDE_SQL") 
status = odbcConnection. ConnectTo( dataSourceName$ [ , userID$ [ , password$ ]] )

Du gibst nur die Datasource an, keine Credentials.

Weiters solltest Du den Rückgabewert der Funktionen auch auswerten. Die liefern ev. Hinweise, was nicht klappt. Z.B. ob der ConnectTo überhaupt geklappt hat.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #5 am: 14.05.08 - 12:11:55 »
Also statt da selbst rumzubasteln würd ich mir einfach code aus der Hilfe kopieren und den mit Errorhandling versehen.

Code
Uselsx "*LSXODBC"
Sub Initialize
  on error goto Errorhandler
  Dim con As New ODBCConnection
  Dim qry As New ODBCQuery
  Dim result As New ODBCResultSet
  Dim firstName As String
  Dim lastName As String
  Dim msg As String
  Set qry.Connection = con
  Set result.Query = qry
  con.ConnectTo("ATDB")
  qry.SQL = "SELECT * FROM STUDENTS"
  result.Execute
  msg = "Student names:" & Chr(10)
  If result.IsResultSetAvailable Then
    Do
      result.NextRow
      firstName = result.GetValue("FIRSTNAME", _
      firstName)
      lastName = result.GetValue("LASTNAME", _
      lastName)
      msg = msg & Chr(10) & firstName & " " & _
      lastName
    Loop Until result.IsEndOfData
    Messagebox msg,, "Student Names"
    result.Close(DB_CLOSE)
  Else
    Messagebox "Cannot get result set for STUDENTS"
    Exit Sub
  End If
  con.Disconnect

  Ende:
  exit sub
  Errorhandler: 
   print Error$ & "(" & Cstr(Err) & ") in Zeile: " & Cstr(Erl)
   resume Ende
End Sub
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #6 am: 14.05.08 - 13:58:53 »
@m3:

bisher kam da ein Popup, wo man die Zugangsadaten eintragen sollte.
hab es nun mal im Code impl.

@Axel:
werde gleich mal den Code ausprobieren. bin mal gespannt

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #7 am: 14.05.08 - 14:50:59 »
Hallo,

der schmeißt folgenden Fehler heraus

LS:DO- ODBC could not complete the requested operation.(720) in Zeile: 13


bei folgenden Befehl...
result.Execute

Ist die Menge zu groß oder wie soll den Fehler interpretieren!?

Danke
Gruß
stan

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #8 am: 14.05.08 - 15:10:22 »
a) Auch "odbcResultSet.Execute" liefert einen Status zurück

b) "Handling an ODBC error" in der Designer-Hilfe sollte etwas Licht ins Dunkel bringen.

c) Dein aktueller Code würde auch helfen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #9 am: 14.05.08 - 15:23:06 »
zu a ) den Status hab ich mir zurückgeben lassen = 0
zu b ) da hab ich nichts brauchbares gefunden

zu c ) ist eigetnlich nur der Code mit der Error Meldung, bloß etwas angepasst...

siehe
Code
On Error Goto Errorhandler
	Dim con As New ODBCConnection
	Dim qry As New ODBCQuery
	Dim result As New ODBCResultSet
	Dim firstName As String
	Dim lastName As String
	Dim msg As String
	Set qry.Connection = con
	Set result.Query = qry
	con.ConnectTo("SDE_SQL")
	qry.SQL = "SELECT * FROM _SMDBA_Incident"
	result.Execute                                                    'hier kommt der Fehler
	msg = "Student names:" & Chr(10)
	If result.IsResultSetAvailable Then
		Do
			result.NextRow
			firstName = result.GetValue("FIRSTNAME", _
			firstName)
			lastName = result.GetValue("LASTNAME", _
			lastName)
			msg = msg & Chr(10) & firstName & " " & _
			lastName
		Loop Until result.IsEndOfData
		Messagebox msg,, "Student Names"
		result.Close(DB_CLOSE)
	Else
		Messagebox "Cannot get result set for STUDENTS"
		Exit Sub
	End If
	con.Disconnect
	
Ende:
	Exit Sub
Errorhandler: 
	Print Error$ & "(" & Cstr(Err) & ") in Zeile: " & Cstr(Erl)
	Resume Ende


gruß
stan
« Letzte Änderung: 14.05.08 - 15:24:46 von sculer »

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #10 am: 14.05.08 - 16:21:25 »
Hi,

also die Fehlermeldung kommt nicht mehr. Da fehlte ein Punkt im Tabellennamen!

Jedoch erhalte ich immernoch keine Werte aus der Tabelle zurück.

hat jemand eine idee!?

bei den Befehl:
result.Execute

kommt nun auch ein True zurück.

Gruß

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #11 am: 14.05.08 - 18:51:08 »
Vielleicht greifst du auf eine falsche Tabelle zu.
Wenn die dir noch nicht mal sagen, um welche Datenbank es sich handelt...  ???
Ich starte in solchen Situationen immer ein tool wie Squirrel, mit dem ich auf die Datenbank als Client einfach mit SQL zugreifen kann. Da passieren dann so Probleme wie Punkt-vergessen einfach nicht.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #12 am: 14.05.08 - 21:09:58 »
Hi,

also soweit ich weiß ist es eine ganz normale SQL DB. ich bin mir da nur nicht 100%ig sicher.

Hast du auch ein Link, wo ich das Tool finde, ansonsten google ich morgen mal danach!

gruß

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #13 am: 15.05.08 - 13:40:46 »
@Axel
Ich kenn das Programm
Squirrel
nicht wirklich, daher mal kurz eine Frage dazu.

man legt doch eine Alias mit den Treiber "JDBC ODBC Bridge" an. oder?
und was kommt dann genau als URL hinein!?

Ich bin nun von den ODBC Namen ausgegangen... siehe
jdbc:odbc:SDE_SQL

danke

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #14 am: 15.05.08 - 13:51:35 »
weiss ich nicht.
Ich benutze immer den JDBC-Treiber der Datenbank.
Aber ich kenn auch immer das Modell der Datenbank  ;D
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline sculer

  • Aktives Mitglied
  • ***
  • Beiträge: 117
Re: SQL mit Notes kommunizieren über ODBC
« Antwort #15 am: 15.05.08 - 15:38:26 »
Ich glaub ich werde hier einfach mal ein neues Thema anfangen, wo ich noch einmal von vorn anfang werde.

http://atnotes.de/index.php?topic=41127.0
« Letzte Änderung: 15.05.08 - 15:55:38 von sculer »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz