Autor Thema: LS > ODBC > Anzahl Datensätze -eknori-  (Gelesen 3234 mal)

Offline reraru

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Geschlecht: Männlich
LS > ODBC > Anzahl Datensätze -eknori-
« am: 21.01.05 - 12:17:02 »
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

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é
« Letzte Änderung: 21.01.05 - 12:20:07 von reraru »
System:
Lotus Notes 8.5.2 / Lotus Domino 8.5.2 FP2
Notes-Formelsprache (wenig Script-Kenntnisse)

Offline Colibri

  • Aktives Mitglied
  • ***
  • Beiträge: 218
  • Hmmm .... lecker Vogel!
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #1 am: 21.01.05 - 12:56:48 »
Spiel mal ein bißchen mit der CacheLimit property aus der ODBCREsultSet Klasse rum. Eventuell ein
result.cachelimit = DB_None

Offline reraru

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Geschlecht: Männlich
res.CacheLimit
« Antwort #2 am: 21.01.05 - 14:04:15 »
Hi!

Habe gerade mal folgende Code-Zeile eingebaut:

Code
res.CacheLimit = limit&

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

Het jemand ne Idee?
System:
Lotus Notes 8.5.2 / Lotus Domino 8.5.2 FP2
Notes-Formelsprache (wenig Script-Kenntnisse)

Glombi

  • Gast
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #3 am: 21.01.05 - 14:10:14 »
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

Offline reraru

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Geschlecht: Männlich
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #4 am: 21.01.05 - 14:15:34 »
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?
 ::)
System:
Lotus Notes 8.5.2 / Lotus Domino 8.5.2 FP2
Notes-Formelsprache (wenig Script-Kenntnisse)

Glombi

  • Gast
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #5 am: 21.01.05 - 14:17:47 »
Wenn Du der Variablen vorher keinen Wert zugewiesen hast, hat diese den Wert 0.

Andreas

Offline reraru

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Geschlecht: Männlich
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #6 am: 21.01.05 - 14:19:29 »
 ;D

OK! Du hast recht!

"0" würde somit wahrscheinlich "kein Limit" oder DB_ALL gleichkommen, right?

 ;D
System:
Lotus Notes 8.5.2 / Lotus Domino 8.5.2 FP2
Notes-Formelsprache (wenig Script-Kenntnisse)

Glombi

  • Gast
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #7 am: 21.01.05 - 14:21:00 »
Genau  ;)

Du kannst es mit einem einfachen Script testen:

Msgbox limit&
Msgbox DB_ALL

ergibt 2x 0

Msgbox DB_NONE
ergibt übrigens 4
nun ja...

Andreas

Offline reraru

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Geschlecht: Männlich
Re: LS > ODBC > Anzahl Datensätze -eknori-
« Antwort #8 am: 21.01.05 - 14:25:27 »
Du hast wieder recht!  8)

Das war heute mein erster Versuch in Lotus Script. In VB hätte ich es mit sicherheit
genau so gemacht. Miti dem LS Debugger bin ich noch nicht so vertraut!


Vielen Dank und ein schönes Wochenende wünscht


René
System:
Lotus Notes 8.5.2 / Lotus Domino 8.5.2 FP2
Notes-Formelsprache (wenig Script-Kenntnisse)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz