Domino 9 und frühere Versionen > ND6: Entwicklung

LS > ODBC > Anzahl Datensätze -eknori-

(1/2) > >>

reraru:
Mahlzeit zusammen!

Ich habe mir im Forum ein Beispiel von Eknori angesehen und habe ein kleines
Problem.

Hier der CODE:


--- Code: ---Option Public
Uselsx "*lsxodbc"
'Use "LibLOG"
%INCLUDE "LSCONST.LSS"

Sub Click(Source As Button)

Dim Session As New NotesSession
Dim db As NotesDatabase   
Set db = Session.currentdatabase   
Dim view As NotesView   
Dim Del As NotesDocument   
Dim Con As New ODBCConnection   
Dim Qry As New ODBCQuery   
Dim res As New ODBCResultSet   

   ' alle Kunden vor neuem Import aus Notes DB löschen
Dim collection As NotesDocumentCollection
Set collection = db.AllDocuments
If collection.Count >= 1  Then
Call collection.RemoveAll ( True )
End If

    'Verbindungsaufbau zur AS/400
RetCode% = Con.ConnectTo("ANCRADTA","USER","PASSWORD")

Set Qry.Connection = Con     '   
Qry.SQL = "SELECT * FROM ANCRADTA.KDSTAMPF WHERE KDPRGR = 30 ORDER BY KDKDNR"
Set Res.Query = Qry
Res.Execute
RetCode% = Res.FirstRow   
Do While RetCode% =True
'ret$ = Trim(Cstr(Res.GetValue("KDPRGR")))
'If ret$ = "30" Then     
Dim Doc As New NotesDocument(db)         
doc.form = "kundeninfo_1"
doc.produktgruppe = Cstr(res.GetValue("KDPRGR"))
doc.kundennummer = Cstr(res.GetValue("KDKDNR"))
doc.name1 = Cstr(Res.GetValue("KDNAM1") )
doc.name2 = Cstr(Res.GetValue("KDNAM2"))
doc.strasse = Cstr(Res.GetValue("KDSTR1"))
doc.PLZ = Cstr(Res.GetValue("KDPLZ1"))
doc.Ort = Cstr(Res.GetValue("KDORT"))     
Call doc.save (True, True)
'End If
RetCode% = Res.NextRow
Loop
RetCode% = Res.Close( DB_CLOSE )
RetCode% = Con.Disconnect

End Sub

--- Ende Code ---

Eigentlich fiunktioniert die Sache genau so wie ich es gerne hätte!
Das komische ist nur das er mir immer zu wenig Datensätze anzeigt.
Ich erhalte immer 771 DS.

Das ist mir unerklärlich!

Hat vielleicht jemand eine Idee? Könnte mir vorstellen das es nur eine
Kleinigkeit ist.

Die ODBC Verbindung führt zu einer IBM iSeries bzw. AS/400.

Vielen Dank im Voraus!

Gruß René

Colibri:
Spiel mal ein bißchen mit der CacheLimit property aus der ODBCREsultSet Klasse rum. Eventuell ein
result.cachelimit = DB_None

reraru:
Hi!

Habe gerade mal folgende Code-Zeile eingebaut:


--- Code: ---res.CacheLimit = limit&

--- Ende Code ---

Jetzt läuft es. Verstehe aber noch nicht wofür das "limit&" steht!???

Het jemand ne Idee?

Glombi:
limit& bedeutet eine implizit deklarierte Variable vom Typ Long.

Aus der Hilfe:
CacheLimit property 

Beispiel
Read-write. The maximum number of rows to be cached in memory.
Defined in
ODBCResultSet
Data type
Long
Syntax
To get: limit& = odbcResultSet.CacheLimit
To set: odbcResultSet.CacheLimit = limit&

Usage
The limit is DB_ALL (full set), DB_NONE (minimum set), or the number of rows to store. DB_NONE means that only a very small window, including the current row, is kept in memory.

M.a.W: Du kannst in Deinem Script anstelle von limit& entweder DB_ALL oder DB_NONE schreiben. Du willst wohl DB_ALL haben.


Andreas

reraru:
Hi Glombi!

Ich hatte zuerst folgendes:

res.CacheLimit = DB_ALL

Dabei hat sich mein komplettes Notes verabschiedet.

Nachdem ich noch einmal in der Hilfe des Designers gelesen habe, fand ich das
was Du auch gerade gepostet hast.

Wenn limit& eine deklarierte Variable vom Typ Long ist, welchen Wert hat Sie dann?
 ::)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln