Domino 9 und frühere Versionen > ND6: Entwicklung

ODBC AS/400 (Mehrere DSN) & Lotus Script

(1/3) > >>

reraru:
Hallo zusammen!

Ich greife mit LS auf eine AS/400 ODBC Datenbank zu. Das klappt bisher sehr gut.


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   
   
   'Cache des Recordsets auf MAXIMUM setzen. Sonst werden nicht alle Datensätze angezeigt!!!
   res.CacheLimit = limit&   
   
   ' 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 KDKDNR,KDNAM1,KDNAM2,KDSTR1,KDPLZ1,KDORT  FROM ANCRADTA.KDSTAMPF WHERE KDPRGR <> 30  ORDER BY KDNAM1"
   Set Res.Query = Qry
   Res.Execute
   RetCode% = Res.FirstRow   
   Do While RetCode% =True
      Dim Doc As New NotesDocument(db)         
      doc.form = "Person"
      doc.CompanyName = Cstr(Res.GetValue("KDNAM1") )
      doc.OfficeStreetAddress = Cstr(Res.GetValue("KDSTR1"))
      doc.OfficeZip = Cstr(Res.GetValue("KDPLZ1"))
      doc.OfficeCity = Cstr(Res.GetValue("KDORT"))     
      Call doc.save (True, True)
      RetCode% = Res.NextRow
   Loop
   RetCode% = Res.Close( DB_CLOSE )
   RetCode% = Con.Disconnect
   
End Sub


In meinem SQL Statement möchte ich nun aber auf mehr als eine ODBC Verbindung zugreifen.

Ich verwende die Felder aus mehreren Tabellen. Die Tabellen befinden sich in verschiedenen Bibliotheken auf unserer AS/400.

Wie kann ich das anstellen?

Vielen Dank im Voraus!

Gruß René

P.S.: Die Suchfunktion hat mir leider nicht geholfen!

Thomas Schulte:
Ich weiss nicht wie du deinen ODBC Driver konfiguriert hast. Wenn der nur auf die Lib Zugriff hat dann wird das nicht gehen. Wenn du aber einen SystemODBC hast, dann solltest du mit:
SystemName.Libl.File in deinem SQL Statement arbeiten können.

reraru:
Hi!

Also ich habe bisher im Script hier die ODBC-Verbindung deklariert:

 'Verbindungsaufbau zur AS/400
   RetCode% = Con.ConnectTo("ODBC Datenquelle","user","password")

Die neue ODBC Datenquelle ist eine System DSN!

In der Datenquelle habe ich keine Bibliothek hinterlegt.

In diesem Fall müsste Dein Vorschlag:

SystemName.Libl.File evtl. funktionieren.

Jetzt habe ich gerade noch ein ganz besonders tolles Feature entdeckt!

Wenn ich das Script (das funktionierende) speichere ohne eine Änderung zu machen,
dann funktioniert das.

Gehe ich hin und setze nur irgendwo eine Leerstelle an (egal wo auch im Kommentar),
dann schlägt der Designer auf einen Hammer!

Das kann doch nur ein Bug sein, oder???

Vielen Dank!

Gruß René


Thomas Schulte:
Wenn du jetzt noch verrätst auf welche nHammer?

Das Problem ist das nicht viele von uns mal eben eine AS/400 ISeries oder wie sie aktuell gerade heissen mag zu Hause stehen haben.
Das bedeutet, Für tiefergehende Unterstützung sind wir auf Fernraten oder einen vorOrt Termin angewiesen.  >:D

Ralf_M_Petter:
Die aktuelle heisst I/5.

Ich verstehe das Problem von reraru aber wirklich beim besten Willen auch nicht. Bekommt er eine Fehlermeldung?

Ja Ja Fragen über Fragen und keine Antworten!

Grüße

Ralf

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln