Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: HarryS am 31.03.05 - 14:30:16
-
Hallo,
ich möchte per ODBC auf Daten in einer ACCESS-Tabelle zugreifen.
Die Verbindung steht, ich kann auch über Agenten gewisse Informationen
wie Attribute einer Tabelle etc. abrufen.
Wie kann ich den Inhalt einer Tabelle in einer Ansicht anzeigen lassen,
bzw. wie kann ich Masken mit den selben Attributen
mit den Daten aus der ACCESS-Tabelle füllen ??
-
schau mal hier vielleicht hilft dir das weiter
http://www.jnotes.de/JNotes/jnotes_webware.nsf/0/0CF3DD44D684D81BC1256E19005A6615?openDocument
-
für eine Ansicht benötigst du Dokumente. Du musst also Dokumente erstellen...
ata
-
Welche Möglichkeiten gibt es, die Inahlte einer ACCESS-Tabelle in Dokumente in NOtes
zu überführen?
Wenn ich mit einer DB-Tabelle verknüpft bin, muß ich die Inhalte der einzelnen Datenzeilen nacheinander in ein Dokument kopieren, sodaß der Tabelleninhalt zum Zeitpunkt X nach Notes kopiert wurde ?
Oder gibt es auch die Möglichkeit, die Inhalte einer ACCESS-Tabelle temporär bei Abruf in Dokumente zu überführen, sodaß wenn ich die Notes-Ansicht öffne, die ACCESS-Tabelleninhalte "verlinkt" dargestellt werden und in der Notes-DB nur die DokumentenMaske abgelegt wird und nicht redundant die Tabelle selbst ??
-
Du möchtest auf Domino 7 warten. Dann kannst Du das mit Notes und DB2 machen (allerdings nicht mit Abszess).
-
also bleibt mir nur die Möglichkeit,
Daten aus einer ACCESS-tabelle immer wieder neu einzulesen,
um den aktuellen Datenbestand unter Notes zu verarbeiten.
Wie kann ich die Tabellen-inhalte in Notes-Dokumente überführen??
Kann ich unter Lotus Notes dynamische Ansichten generieren,
will heisen, ob ich ähnlich einem Select-String die Inhalte einer Ansicht
bestimmen kann, und zwar nicht fest vorgegeben sondern je nach Eingabe
des Benutzers ?
-
... geht über den Umweg XML - habe ich allerdings noch nicht selbst exerziert...
ata
-
Wie würdest Du das über DXL lösen, Toni?
Stell ich mir schwierig vor.
OK, was mir da spontan einfällt ist, via DXL das Designelement (hier: die View) zu bearbeiten, also die Ansichtsauswahlformel. Geht aber auch nur, wenn der User, der den DXL-Code aufruft, Designer und/oder Manager-Rechte hat. Außerdem müsste dann die View refreshed werden. Also sicherlich keine gute Lösung.
Ansonsten zu dynamischen Ansichten:
"dynamische Ansicht" ist sicherlich ein Suchbegriff, der hier in der Forum-Suche verwendet werden kann. Es gibt da Workarounds, zum Beispiel embedded View. Evtl. "Show Category" ab ND6.
Zu "Tabelleninhalte überführen":
Um hier performante Ergebnisse zu haben, musst Du die Daten auslesen und in Notes-Dokumente schreiben.
Du kannst aber auch "on the fly" die Daten auslesen und entsprechend z.B. in ein temporäres Dokument schreiben (z.B. in ein Richtextfeld - R6 bietet da noch nette Tabellen-Formatierungs-Möglichkeiten). Aber das "on the fly" ist sicherlich nicht schnell. Und kann die Server belasten im laufenden Betrieb.
-
@TMC
es gibt die Möglichkeit über XML Designelemente von Notes zu speichern. Diese Dokumente lassen sich im Umkehrverfahren wohl auch wieder einspielen - und das wären dynamische Views - ohne der Eigenschaft privat oder als Embedded...
... aber wie gesagt - bisher nur gehört das es geht - noch nicht selbst nachvollzogen...
ata
-
Toni, theoretisch geht das, aber es setzt mindestens Designer-Rechte auf die DB voraus. Ich befürchte, dass das dann ein Killerkriterium ist.
Um die Übernahme von Daten aus fremden Apps (hier: RDMS-Daten) in jeweils eigene Notes-Dokumente kommt man m.E. nicht herum, hierfür ist sogar eine Art Replikationsmechanismus zu installieren (durchaus machbar). Sind die darzustellenden Datenmengen überschaubar, kann man diese - wie von Matthias TMC vorgeschlagen - natürlich auch on the fly in einem RTF in einem einzigen Dokument abbildbar.
Ohne genauere Kenntnisse vermag ich aber keinen wirklich vernünftigen Rat abzugeben, auch wenn ich die genannten Verfahren aus Erfahrung kenne.
Bernhard
-
xml würde ich hier als extremen overkill ansehen.
Vielleicht eine gute Idee, wenn man sein eigenes NotesToRelational Mapping Framework schreiben will. Seh zwar die Konkurrenz LEI als durchaus schlagbar an, jedoch sollte man für ein solches Unterfangen 3 bis 4 Mannjahre veranschlagen. Wenn man keine großen Erfahrungen mit RDBMS in Theorie und Praxis hat würde ich diesen Wert mit 2 multiplizieren.
Es ist aber viel einfacher für deine Aufgabe LSX zu verwenden (uselsx). Es finden sich im Internet sicherlich irgendwelche Beispielskripte.
Das läuft natürlich nicht real time, sondern als geschedulter Agent. Du kannst den Agenten sagen wir alle 2 Stunden laufen lassen.
Der Agent führt das folgende durch:
1. Sucht nach neuen Einträgen in der Access DB
2. Sucht nach geänderten Einträgen in der Access DB
3. Sucht nach gelöschten Einträgen in der Access DB
(Immer Vergleich zwischen Datensätzen in RDBMS-Tabelle und Notes Ansicht).
Da es in lsx keine disconnected Resultsets wie in .NET oder seit neuesten auch in Java übernommen werden eine Menge Select Statements generiert, was aber bei einem geschedulten Agenten nicht so schlimm ist.
Meinung: Ich würde heutzutage kein Access mehr benutzen. Kommerzielle DBs wie DB2, Oracle oder MS-SQL sind ziemlich gut und openSores hat mit Posgres auch ein gutes Produkt am Start. So schwierig sind RDBMS auch wieder nicht, dass man zu Access greifen müßte.
MySQL find ich persönlich ein bischen suspekt, wg. traditionell geringer Unterstützung für Transaktionen aber ich kann mich irren. Hypersonic (HSQL) hat mich jedenfalls schwer enttäuscht gerade wg. der geringen Transaktionsunterstützung.
-
für den code:
Versuche google und uselsx access.
Hier ist z.B. ein Eintrag in kastilischer Sprache:
http://free.corefusion.net/Free/jmmm82/home.nsf/0/2D6BF8CB06A3D891C1256A6C002455E5?OpenDocument
hoffe es hilft.
Wichtig und fehlt in dem Beispielskript:
auf jedenfall mit Errorhandling und in der Arraysection die Connection schliessen !!!!