Domino 9 und frühere Versionen > ND9: Entwicklung

SQL-SELECT "spinnt"

<< < (3/4) > >>

buzzy666:

--- Zitat von: Ralf_M_Petter am 21.08.14 - 08:59:24 ---Poste doch mal den Lotusscript code, den du verwendest um das SQL abzusetzen.

Grüße

Ralf


--- Ende Zitat ---

Here we go:

Im Initialize wird nur die Connection aufgebaut und dann diese Funktion aufgerufen

Function getAllLogs(whereString As string) As Boolean
   
   set result = New ODBCResultSet
   Set qry = New Odbcquery
   
   '### zum Abfragen der Datensätzte ##############
   Set qry.Connection = con
   Set result.Query = qry
   
   If whereString = "" Then
      qry.SQL = "SELECT CAST(uuid as CHAR(255)) as uuid, * FROM dbo.vw_CasetrackerLookup WHERE Verarbeitet = '0'"
   Else
      qry.SQL = "SELECT * FROM dbo.vw_CasetrackerLookup WHERE " + whereString
   End If
   '################################################
   
   '### zum Updaten eins erfolgreich abgeholten Datensatze ###
   Dim updateQuery As New Odbcquery
   Dim updateResult As New Odbcresultset
   
   Set updateQuery.Connection = con
   Set updateResult.Query = updateQuery
   '############################################
      
   result.Execute
         
   Dim user As String
   Dim category As String
   Dim durationMin As Integer   
   Dim task As String
   Dim caseUNID As String      
   Dim ticketUNID As String
   Dim billable As string
   Dim uuid As String
   
   Dim newTimeLog As NotesDocument
   
   If result.IsResultSetAvailable Then      
      Do
         result.NextRow
      
         user = getNotesName(result.GetValue("Username"))   
         
         If user = "" Then
            Call LogEvent("Kein NAB-Dok gefunden zu '" + result.GetValue("Username") + "'",SEVERITY_HIGH,Nothing)   
         End If
               
         category = result.GetValue("Zeitart")         
         durationMin = result.GetValue("Dauer")         
         task = result.GetValue("Aufgabe")      
         caseUNID = result.GetValue("Case")
         ticketUNID = result.GetValue("Ticket")
                  
         uuid = result.GetValue("uuid")
                              
         Call LogEvent(uuid + ": " + user + " / " + category + " / " + CStr(durationMin) + " / " + task,SEVERITY_LOW,Nothing)         
                  
         'Set newTimeLog = New NotesDocument(thisdb)
         'newTimeLog.form = "entry"
               
         'nach dem erfolgreichen Abholen eines Datensatzes wird er in SQL auf "Verarbeitet" gesetzt
         updateQuery.SQL = {UPDATE dbo.vw_CasetrackerLookup SET Verarbeitet = '1' WHERE UUID = '} + CStr(uuid) + {'}
         'updateQuery.SQL = {UPDATE dbo.vw_CasetrackerLookup SET Verarbeitet = '1' WHERE Ticket = '1921'}
         
         Call LogEvent(updateQuery.SQL,SEVERITY_LOW,Nothing)
         
         updateResult.Execute            
         
         GoTo exitLoop
         
      Loop Until result.IsEndOfData
      
exitloop:
      result.Close(DB_CLOSE)
   End If
End Function

buzzy666:

--- Zitat von: Ralf_M_Petter am 21.08.14 - 08:50:15 --- Eventuell solltest du jemand beiziehen, der mehr Erfahrung mit SQL hat.

--- Ende Zitat ---

Den Eindruck hab ich auch ;-)

buzzy666:
gelöscht...

buzzy666:

--- Zitat von: umi am 21.08.14 - 08:51:53 ---Moin

und wenn Du dieses Statement UPDATE [CoMo].[dbo].[vw_CasetrackerLookup] SET [Verarbeitet] = '1' WHERE [UUID] = 'C222AEFA-E63A-45FA-AEF1-0149C6503A06'
vom Notes aus absetzt?

--- Ende Zitat ---

Probier ich mal...

Ralf_M_Petter:
Eigentlich solltest du kein Update verwenden, sondern du kannst einfach das Resultset updaten. Das sollte viel einfacher sein.

Also ungefähr so nach dem Select:

call result.setValue("Verarbeitet","1")
result.UpdateRow

Siehe Designer Hilfe http://intranet.ntc.edu/help4.nsf/968106ad371128cb8525619e007ae2ac/7c7bbd9c1b39230d852564d2001a30df?OpenDocument

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln