Domino 9 und frühere Versionen > ND9: Entwicklung
SQL-SELECT "spinnt"
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