Domino 9 und frühere Versionen > ND6: Entwicklung

SQL Abfrage in LS

(1/2) > >>

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