Domino 9 und frühere Versionen > ND6: Entwicklung
SQL Abfrage in LS
chris2212:
Hallo,
aus einer ForeCast Datenbank sollen alle Dokumente
einer View in eine Access Datenbank exportiert werden.
Dies soll auf zwei Arten erfolgen
1; Die vorhandene Access-DB soll mit einem Zeit-Stempel
vorher gesichert und neu erstellt werden, anschl. sollen alle Daten
in die neu erstellte Access-DB exportiert werden.
2; Die Dokumente der Notes-View sollen an die vorhandene Access-DB
"angehängt" werden. Dazu muss ich vorher prüfen ob es das "Dokument" bzw.
ob es den DS in Access bereits gibt. Wenn ja, möchte/muss ich den bereits vorhandenen DS in der Access DB löschen und neu erstellen, weil ich ja nicht weis ob das Dokument seit dem letzten export verändert wurde oder nicht.
Die Dokumente (DS) die es in der Access DB noch nicht gibt werden "normal" exportiert.
OK :P
ich hoffe das ist soweit verständlich :-[
1; Hab ich :-) funktioniert auch ohne Probleme
Aber bei 2; weis ich nicht mehr weiter.
Ich wollte anhand der DocID prüfen ob es das Dokument bzw. den DS
in Access schon gibt, aber ich bekomme bei SetParameter im Debugger
immer False zurück. Laut Online-Doku findet er demnach den ParameterNamen oder den Index nicht.
Was mach ich da falsch? Den geb ich ihm doch....
Für jede Unterstützung dankbar !!!!
anbei der letzte Versuch.......
Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set col = db.UnprocessedDocuments
Set doc = col.GetFirstDocument
Dim con As New ODBCConnection
Dim qry As New ODBCQuery
Dim result As New ODBCResultSet
con.ConnectTo("ForeCast")
Set qry.Connection = con
Set result.Query = qry
Dim strID As String
strID = doc.UniversalID
Dim defaultQuery As String
defaultQuery = "'SELECT DocID FROM ForeCast WHERE DocID=strID'"
qry.SQL = defaultQuery
strResult = result.SetParameter(DocID,strID)
:'(
Gruß
Christian
animate:
--- Zitat ---defaultQuery = "'SELECT DocID FROM ForeCast WHERE DocID=strID'"
--- Ende Zitat ---
kein Ahnung, obs damit was zu tun hat, aber mit dieser Abfrage dürftest du keinen Treffer bekommen.
du musst deine statische Zeichenkette mit einer variablen verknüpfen
defaultQuery = "'SELECT DocID FROM ForeCast WHERE DocID=" & strID
oder so
chris2212:
Hallo Thomas,
ich hab´s entsprechend abgeändert.
defaultQuery = "'SELECT DocID FROM ForeCast WHERE DocID = " & strID &"'"
Im Debugger sieht es so aus...
"'SELECT DocID FROM ForeCast WHERE DocID = 856D011627615741C1256E970050F8D5'"
ResultSet wird im Debugger leider wieder auf False gesetzt.
Ich habe auch schon versucht mir mit GetParameterName
den Namen ausgeben zu lassen, aber wenn´s bei Set schon False ist
bekomme ich bei GetParameterName nen LeerString zurück :'(
Füe jeden Tipp dankbar !
Gruß
Christian
koehlerbv:
Hier scheinen aber die Datentypen für das SQL-Statement arg durcheinander gekommen zu sein. So auf die Schnelle - müsste es nicht heissen:
defaultQuery = "SELECT DocID FROM ForeCast WHERE DocID=" & {"} & strID & {"}
HTH,
Bernhard
bml:
wenn ich mir dein Code so anschaue
liegt der Fehler darin, dass die UNID, ist nach meinem Wissen ein stringvalue ist und du ein integer daraus machst.
Ich arbeiter auch mit SQL und bin auch schon öfter auf die Nase gefallen.
Dein SQL müsste so aussehen:
" SELECT DocID FROM ForeCast WHERE DocID = '856D011627615741C1256E970050F8D5' "
Hoffe ich konnte dir helfen
Gruß
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln