fehler in ODBC???

  • Moin,


    hab da wieder mal ein problem :D


    also ein zeitgesteuerter agent soll wöchentlich die totalisatorumsätze via odbc holen, die in eine txt datei schreiben und diese zusätzlich in einem doc als anhang speichern, soweit ok, funktioniert auch soweit, nur sind die heissen die daten in der txt datei false anstatt da den wert einzusetzen......das sql statement funktioiert so hab das mit dem silk odbc tol getestet da holt er die daten so wie er soll nur halt nicht in notes hab mir auch die werte via msgbox ausgeben lassen sie sind false ich denke der fehler liegt im result.getvalue.... irgend eine idee


    danke im vorraus


    hier de qt, und im anhang die txt datei
    _______________
    Sub Initialize

    Dim Dateiname As String
    Dim path As String
    Dim testdateiname As String

    ' Variablen für SQL-Abfrage

    Dim rtgrvbez As String
    Dim rtgrvid As String
    Dim rtgdat As Variant
    Dim rtgrenumg As Double
    Dim rtgrenuma As Double


    ' Variablen für Connection
    Dim con As New ODBCConnection
    Dim qry As New ODBCQuery
    Dim result As New ODBCResultSet


    '### Build query
    Set qry.Connection = con
    Set result.Query = qry
    result.CacheLimit = 8000
    result.FetchBatchSize = 5000
    con.ConnectTo("HVTDAT")


    Dim session As New NotesSession
    Set db = session.CurrentDatabase
    location = db.Server


    'Datum1 = CStr(Format(Today, "yyyy-mm-dd"))
    'Datum2 = CStr(Format(Today, "yyyy-mm-dd"))
    ' Msgbox Datum1 &" " & Datum2
    Datum1="2007-04-01"
    Datum2="2007-04-15"

    fileNum1% = Freefile()
    Dateiname = "TotoUm_Woche_Von_" & Datum1 & "_Bis_" & Datum2 & ".txt"

    pathName="k:\TotoUm_Export\"+Format(Today, "yyyymmdd")
    TestDateiName = Dir(pathName, 16)
    If(TestDateiName ="") Then
    Mkdir "k:\TotoUm_Export\"+Format(Today, "yyyymmdd")
    End If
    pathName="k:\TotoUm_Export\"+Format(Today, "yyyymmdd")
    Stop

    ' Totoumsätze via ODBC holen
    sql = "select rtgrvbez, rtgrvid, rtgdat, sum(rtgrenumg), sum(rtgrenuma) from rtgp where rtgdat between '" & Datum1 &"' and '" & Datum2 &"' and rtgrenumg > 0 group by rtgrvbez, rtgrvid, rtgdat order by rtgrvbez, rtgdat"


    qry.sql = sql
    Print "Wait: setting up ODBC....Executing..."
    result.Execute
    Print "Wait: setting up ODBC.............Done!"
    Print Today & "Totalisatorumsatz wird erstellt"
    Msgbox sql

    If result.IsResultSetAvailable Then
    Open pathName & "\" & Dateiname For Output As fileNum1%
    Print # fileNum1%, "Rennverein RVKurz Datum Gesamtumsatz Aussenumsatz"
    Print # fileNum1%, "_______________________________________________________________"
    Do
    result.NextRow


    rtgrvbez = result.GetValue(" rtgrvbez", rtgrvbez)
    rtgrvid = result.GetValue(" rtgrvid", rtgrvid)
    rtgdat = result.GetValue(" rtgdat", rtgdat)
    rtgrenumg = result.GetValue("rtgrenumg", rtgrenumg)
    rtgrenuma = result.GetValue("rtgrenuma", rtgrenuma)


    ' Datei erzeugen
    Print # fileNum1%, rtgrvbez &" " & rtgrvid &" " & rtgdat &" " & rtgrenumg &" " & rtgrenuma


    Loop Until result.IsEndOfData
    Close fileNum1%
    Set doc = db.CreateDocument

    doc.Form = "Toto"

    doc.BereichVon = Datum1
    doc.BereichBis = Datum2
    doc.TotoArt = "Wöchentlich"
    doc.ErstellDat = Now
    Set rtitem = New NotesRichTextItem( doc, "Anhang" )
    Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "",pathName & "\" & Dateiname)


    Call doc.Save(True, True)
    Print Today & " Totalisatorumsätze wurden erstellt"
    Else
    Print Today & " Fehler: keine Totalisatorumsätze gefunden"
    End If
    End Sub

  • Liegt vermutlich an den überflüssigen Leerzeichen die du bei den GetValue Aufrufen hast.


    Nicht das ResultSet ist leer sondern die Abfrage GetValue(" Feldname") ist eben nicht das gleiche wie GetValue("Feldname").
    Mal davon abgesehen, daß ich noch nie einen feldnamen mit einem Leerzeichen am Anfang gesehen habe

  • danke, ist mir echt nicht aufgefallen :D


    und selbst wenn hätte nicht gedacht, das das sone auswirkung hat, jetzt funktioniert das erstmal muss ich nur noch einmal ordentlich in form bringen


    mal ne andere frage: also um die abfrage auszuführen muss man sich noch manuell an der as400 anmelden, sprich username und pw eingeben kann man das nicht in dem agent verankern? sonst funktioniert er ja nicht zeitgesteuert


    nochmal danke


    gruss Gregor