Datenbank-Zugriffe (Texte)
Datenbank-Zugriffe (Texte)
Datenbank-Zugriffe können direkt aus dem Textbaustein ausgeführt werden.
Über die Menüfunktion „Einfügen - Datenbank..." wird zwar ein funktionierendes Datenbank-Feld erzeugt, allerdings werden hierbei physikalische Dateinamen mit im Feld gespeichert. Es ist daher besser, die Information auf das notwendige Maß zu beschränken, um die Lauffähigkeit auch auf anderen PC’s zu gewährleisten:
{ DATENBANK\c "DSN=<ODBC-Datenquelle>;" \s "<SQL-Anweisung>" \t "1" \l "0" } |
Bitte beachten:
Mit dieser Anweisung können nur eindeutige Datensätze gelesen werden (die SQL-Anweisung darf als Resultat nur einen Datensatz liefern). Außerdem darf das Memo-Feld keinerlei Zeilenumbrüche enthalten! Ist eine dieser Regeln verletzt, so geht Microsoft Word bei der Aktualisierung dieses Feldes in eine Endlosschleife, die nur über „Anwendung schließen" beendet werden kann!
Sind obige Bedingungen nicht für alle Datensätze zu garantieren, so kann Word nur eine Tabelle mit Überschriften (=Feldnamen) einfügen. Das Tabellenformat wird über den Schalter „\l" bestimmt. Dazu ist obige Anweisung mit dem Schalter „\h" (Header = Tabellen-Überschriften) zu versehen:
{ DATENBANK\c "DSN=<ODBC-Datenquelle>;" \s "<SQL-Anweisung>" \t "1" \l "0" \h } |
Beispiel:
Einlesen des Feldes "MemoText" aus der Tabelle "Texte" aus der Datenbank mit dem ODBC-Datenquellen-Namen "TextDB" aus dem über den Primärschlüssel identifizierten Datensatz mit der Nummer "postext.TextID", der über ePOS bestimmt wird:
{ DATENBANK \c "DSN=TextDB;" \s "SELECT Texte.MemoText FROM Texte WHERE (Texte.TextID= { DOKVARIABLE postext.TextID } )" \t "1" \l "0" } |
Anm.: Für einige SalesManager Tabellen läßt sich obiges Beispiel einfacher mittels spezieller Zugriffsfunktionen realisieren, z.B. steht für TM_Texte die Funktion p$TDV:SMPAPI:EtTxRTF zur Verfügung.