home *** CD-ROM | disk | FTP | other *** search
- Description of Keys & Commands
- ==============================
-
-
- Command-Gruppe "DB": Database
- =============================
-
- Beispiele fⁿr den Umgang dieser Command-Gruppe finden sich in einem eigenen Profil
- mit dem Namen "Database Example". Dieses befindet sich im 2. Profil-Set, also
- zuvor durch Anwahl des obersten Menⁿ-Punktes im Systray-Popmenu das Profil-Set
- umschalten.
-
- --> Caution !
- The database access of RK based on MS Jet engine 3.5 (DAO 3.5).
- I am sorry to say that DAO 3.6 and greater is not supported!
- DAO 3.6 is used by ME, 2000, XP etc.
- But this is no reason not to use the database functions of RK.
- In some (or many) cases it is required to prepare the system for DAO 3.5.
- Maybe than DAO 3.5 and DAO 3.6 will be parallel installed but that seems to
- make no trouble.
-
- But first you should try if you can open a database with RK (see example profile).
- If you get an error message like "Class not registered, looking for Object
- with CLSID ... long number ...) than it seems DAO 3.5 is not available on your
- system.
- Than you should make a 2nd check:
- Open path "\program files\common files\microsoft shared\dao".
- If this folder exists than - I think - you will find the file dao360.dll only.
- This says that DAO 3.6 is installed. The file for DAO 3.5 is dao350.dll.
- But it would be too easy to copy this file into this folder, because the
- installation of DAO 3.5 needs a lot more files and it must be correctly registered.
-
- Therefore the easiest way to prepare your system is to download DAO 3.5 from
- freewarehits.de and to run the exe-file on your system.
- The archiv additional includes a file called vb5db.dll. This must be copied into
- the Windows\System folder if not already exists.
-
- I tried this method on a clean WinME installation and it works immediately without
- any trouble. But it is required to say that I (the author) can not give any
- warranties and it must be done at one┤s own risk !
-
- The directly download address is:
- http://www.freewarehits.de/AddFiles/dao35.zip (3.2 mb)
-
- Die auf der Microsoft Jet-Engine aufsetzenden Datenbank-Anbindung erfordert - je nach
- gewⁿnschtem Datenbank-Zugriff - sogenannte ISAM-Treiber. Das ODBC-Verfahren lie▀e
- sich auch einstellen (s.u.), wurde aber nicht getestet.
- Folgende Datenbanken - die Installation der erforderlichen Treiber vorrausgesetzt -
- werden durch RK (mindestens) unterstⁿtzt:
-
- - Access
- - DBase 3/4/5
- - Excel 3/4/5/8
- - FoxPro 2/2.5/2.6/3
- - Lotus WK 1/3/4
- - Paradox 3/4/5
- - Text
-
- Erfolgreich getestet wurden Access (.mdb), Excel (.xls) und Text (.txt).
- Die Treiber sollten - zumindest bei den Office-Anwendungen - bei der Installation der
- jeweiligen Programme mit-installiert worden sein.
-
- Allerdings... auf dem RK-Entwicklungs-Rechner lief - obwohl DAO 3.5 vorhanden - zunΣchst
- nicht viel. Der Grund war, da▀ die Treiber (35┤er) zwar vorhanden waren, allerdings nicht
- ordnungsgemΣ▀ in der Registry eingetragen. Sofern sich diese im Windows-System-Verzeichnis
- befinden, kann dies folgenderma▀en nachgeholt werden:
-
- Z.B. das Ausfⁿhren-Fenster ÷ffnen und folgende Zeilen eingeben.
-
- Regsvr32.exe C:\Windows\System\Msexcl35.dll
- Regsvr32.exe C:\Windows\System\Mstext35.dll
-
- Danach erfolgt (hoffentlich) die Meldung, da▀ die Treiber erfolgreich installiert sind.
-
- Die Treiber Msexcl40.dll/Mstext40.dll sind fⁿr DAO ab 3.6 vorgesehen und fⁿr DAO 3.5 nicht
- geeignet!
-
- Als nΣchstes bestand das Problem, da▀ die ASCII-Zeichen (Umlaute etc.) nicht ordnungsgemΣ▀
- konvertiert wurden. Um dies zu beheben, mu▀te manuell in die Registry eingegriffen werden:
- Der entsprechde Pfad lautet (bitte suchen lassen):
-
- Jet\3.5\Engines\Text
-
- Folgender Schlⁿssel mu▀ ggf. geΣndert werden:
- CharacterSet von "OEM" auf "ANSI" setzen.
-
- Ggf. bei Excel, Access etc. kontrollieren.
-
- Diese geschilderten Probleme traten nur bei der bereits vorhandenen DAO 3.5 auf.
- Bei der oben beschriebenen DAO 3.5 Installation funktionierte alles auf Anhieb.
-
- --> EinschrΣnkung
- Beim Auslesen von Werte enthaltenen Zellen kommt es gelegentlich zu ▄berlauffehlern. RK fΣngt
- diese Fehler zwar ab, kann dann aber fⁿr das betroffene Feld nur noch einen Leer-String senden.
- Ferner wird auch nur das Auslesen unterstⁿtzt, beschreiben kann RK eine Datenbank durch
- Direktzugriff (noch) nicht.
-
- Vorgehensweise
- --------------
- Als erstes mu▀ stets eine Datenbank ge÷ffnet werden.
- RK arbeitet intern mit 2 Zeigern. Der erste positioniert einen Datensatz, der zweite ein
- Datenfeld. Welches Datenfeld beim Sende-Befehl (DB.FIELD.SEND) letztendlich an die
- Anwendung gesendet wird, ist von diesen 2 Zeigern abhΣngig.
- Nun gibt RK dem Anwender diverse Commands in die Hand, um diese Zeiger zu positionieren.
- Der Select-Command eignet sich z.B. fⁿr eine einmalige Sendung eines Datenfeldes, indem der
- Anwender dieses gezielt aus einer Liste heraussucht und anschlie▀end sendet.
- Andere Commands wie SET und INC sind eher fⁿr Serien-Sendungen gedacht, die z.B. in einer
- Schleife untergebracht werden.
-
- Faustregel:
-
- 1. Datenbank ÷ffnen
- 2. Datensatz-Zeiger positionieren
- 3. Datenfeld-Zeiger positionieren
- 4. Senden
-
-
- /DB.OPEN f[,t,p3,p4,p5]: To open database name <f> (file), sheet <t> (tabel), p3/4/5 = optional parameters
- ------------------------
- Beim Zugriff auf eine Access-Datenbank (.mdb) oder Excel-Mappe (.xls) mⁿssen die Parameter
- <f> & <t> definiert sein. Wird der Parameter <t> nicht angegeben, so wird autom. eine Liste
- angezeigt, aus der eine Tabelle ausgewΣhlt werden mu▀ (entspr. DB.TABLE.SELECT).
- Beim Zugriff auf eine TAB-separierte Text-Datei (.txt) wird nur der Parameter <f> angegeben.
- In diesen 3 FΣllen erkennt RK selbststΣndig das Format und stellt die verbleibenden
- Parameter automatisch ein.
- Allerdings werden Parameter-Setzungen mit PrioritΣt behandelt. D.h. sofern sie angegeben werden,
- wird die automatische Einstellung von RK au▀er Kraft gesetzt.
- In anderen (ungetesteten) FΣllen mⁿssen zusΣtzliche Angaben gemacht werden, wenigstens den p3-
- Parameter betreffend.
-
- Die Parameter im Einzelnen:
-
- f : File: Dateiname = Pfad zur Datei
-
- t : Table: Die Excel-Mappe besteht bekanntlich aus einzelnen Tabellen.
- Es kann nur auf eine zur Zeit zugegriffen werden, die hier anzugeben ist.
- Bei Access handelt es sich um die Einzel-Datei der Datenbank.
- Texte sind sozusagen ein-dimensional, so da▀ der Parameter hier entfΣllt.
-
- Dem Tabellen-Name in Excel mu▀ ein $ hinzugefⁿgt werden (warum auch immer).
- Bei Text wird automatisch ein #txt generiert.
- Bei Access ist der Tabellen-Name unverΣndert anzugeben.
- Andere Formate wurden nicht geprⁿft.
-
- Im Zweifelsfalle den Parameter erstmal weglassen und die Tabelle aus der stattdessen
- erscheinenden Auswahlbox auswΣhlen. In dieser kann man die genauen Tabellen-Bezeich-
- nungen erkennen, um die gewⁿnschte spΣter in den t-Parameter zu ⁿbertragen.
-
- p3: Connect: Angabe des Datenbank-Typs. Die genauen Beschreibungen lauten (Access ohne Semikolon):
-
- Access
- dBASE III;
- dBASE IV;
- dBASE 5.0;
- Excel 3.0;
- Excel 4.0;
- Excel 5.0;
- Excel 8.0;
- FoxPro 2.0;
- FoxPro 2.5;
- FoxPro 2.6;
- FoxPro 3.0;
- Lotus WK1;
- Lotus WK3;
- Lotus WK4;
- Paradox 3.x;
- Paradox 4.x;
- Paradox 5.x;
- Text;
-
- RK benutzt standardmΣ▀ig Excel 3.0. Damit kann problemlos auch auf 8.0-Dateien
- zugegriffen werden, ist aber eben auch fⁿr Σltere Versionen geeignet.
-
- p4: Rec-Set-Type: p4 = 0 - 2. Es k÷nnen folgende Typen eingestellt werden:
-
- 0 : Table
- 1 : Dynaset (Standard-Einstellung)
- 2 : Snapshot
-
- Im Test (mdb/xls/txt) lief alles unter Dynaset, Table funktionierte auch.
-
- p5: Engine: p5 = 0 - 1. Hier kann zwischen folgenden "Treiber-Maschinen" gewΣhlt werden:
-
- 0 : Jet (MS, Standard-Einstellung)
- 1 : ODBC
-
- Example: {/DB.OPEN c:\data\db.xls}
- Example: {/DB.OPEN c:\data\db.mdb,sheet1}
- Example: {/DB.OPEN c:\data\db.xls,sheet1$}
- Example: {/DB.OPEN c:\data\db.txt}
- Example: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;} (Parameter fⁿr dbase unbekannt!)
- Example: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,0}
- Example: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,2,1}
-
-
- /DB.CLOSE .............: To close current database
- ------------------------
- Das Schlie▀en einer Datenbank erm÷glicht es, wieder von anderen Anwendungen auf
- die Bank zuzugreifen und gibt darⁿber hinaus reservierten Speicher wieder frei.
-
- Example: {/DB.CLOSE}
-
-
- /DB.FIELD.ASK .........: To set field number, defined from user while script is in process
- ------------------------
-
- Example: {/DB.FIELD.ASK}
-
-
- /DB.FIELD.CLIP [len] ..: To copy current field content to clip, optional maximal length [len]
- ------------------------
-
- Example: {/DB.FIELD.CLIP}
- Example: {/DB.FIELD.CLIP 25}
-
- Im letzten Beispiel werden die ersten 25 Zeichen des aktuellen Datenfeldes in die
- Zw┤ablage kopiert.
-
-
- /DB.FIELD.INC .........: To increment field number
- /DB.FIELD.DEC .........: To decrement field number
- ------------------------
-
- Example: {/DB.FIELD.INC}
-
-
- /DB.FIELD.NMB>VAR .....: To copy field number into current VAR
- /DB.FIELD.NMB<VAR .....: To set field number to current VAR
- ------------------------
- Erm÷glicht den Austausch der Feld-Nummer mit der Variablen VAR, soda▀ Berechnungen
- m÷glich sind.
- (siehe Command-Gruppe VAR-Commands, Rechnen)
-
- Example:
-
- {/BTCH.EXPLICIT}
- {/DB.FIELD.NMB>VAR}
- {/VAR.ADD 3}
- {/DB.FIELD.NMB<VAR}
-
-
- /DB.FIELD.SEND [len] ..: To send current field content, optional maximal length [len]
- ------------------------
- Das Datenfeld ist das kleinste Element der Datenbank:
- Datenbank -> Tabelle -> Datensatz -> Datenfeld
- Nur dieses kann durch RK gesendet werden.
- Ganze DatensΣtze sendet man daher durch eine Verkettung von DB.FIELD.SEND-Commands
- im Skript. Vor dem Senden mu▀ der Datensatz-Zeiger entsprechend positioniert werden.
-
- Example:
-
- {/BTCH.EXPLICIT}
- {/DB.REC.SELECT}
- {/BTCH.EXITIF.CANCEL}
- {/DB.FIELD.SET 4}
- {/DB.FIELD.SEND}{KEY.TAB}
- {/DB.FIELD.SET 5}
- {/DB.FIELD.SEND}{KEY.TAB}
- {/DB.FIELD.SET 6}
- {/DB.FIELD.SEND}{KEY.TAB}
-
- Example: {/DB.FIELD.SEND 15}
-
- In diesem Beispiel wird die Ausgabe auf 15 Zeichen begrenzt.
-
-
- /DB.FIELD.SEND.FRMT str: To send current field content in formatted output (str=###0.00 to get 1,30)
- ------------------------
- Gestattet die formatierte Ausgabe fⁿr Zahlen- und Datums-Feldern.
-
- Example: {/DB.FIELD.SEND.FRMT ##0.00}
- Example: {/DB.FIELD.SEND.FRMT long date}
-
- -> Beachte!
- Fⁿr Datums-Felder trifft die Beschreibung in den DAT-Commands zu (DAT.FORMAT str),
- mit Ausnahme der "Alleinstehenden Parametern" (Stand Alone).
-
-
- /DB.Field.SET nmb .....: To set field number to <nmb>
- ------------------------
-
- Example: {/DB.Field.SET 5}
-
-
- /DB.Field.VIEW ........: To show current field content in the internal text viewer
- ------------------------
-
- Example: {/DB.Field.VIEW}
-
-
- /DB.PROP.VIEW .........: To show current database properties in the internal text viewer
- ------------------------
-
- Example: {/DB.PROP.VIEW}
-
-
- /DB.REC.ASK ...........: To set record number, defined from user while script is in process
- ------------------------
-
- Example: {/DB.REC.ASK}
-
-
- /DB.REC.INC ...........: To increment record number
- /DB.REC.DEC ...........: To decrement record number
- ------------------------
-
- Example: {/DB.REC.INC}
-
-
- /DB.REC.NMB>VAR .......: To copy record number into current VAR
- /DB.REC.NMB<VAR .......: To set record number to current VAR
- ------------------------
- Erm÷glicht den Austausch der Datensatz-Nummer mit der Variablen VAR, soda▀ Berechnungen
- m÷glich sind.
- (siehe Command-Gruppe VAR-Commands, Rechnen)
-
- Example:
-
- {/BTCH.EXPLICIT}
- {/DB.REC.NMB>VAR}
- {/VAR.ADD 3}
- {/DB.REC.NMB<VAR}
-
-
- /DB.REC.SELECT ........: To set record && field number by selecting from 2 lists
- ------------------------
- Dieses Fenster gestattet es, ein beliebiges Datenfeld eines beliebigen Datensatzes
- auszuwΣhlen. Den Datensatz selektiert man in der linken, das Datenfeld in der rechten
- Liste. Die Bestimmung von Datensatz- und Datenfeld-Nummer bleibt nach dem Schlie▀en des
- Fensters erhalten, um mit ihnen ggf. weiterzuarbeiten, indem man z.B. das selektierte
- Datenfeld mittels {/DB.FIELD.SEND} an eine Anwendung sendet.
-
- Die m÷glichen Fenster-Einstellungen findet der Anwender durch Probieren sicher
- schnell heraus.
- Ein Wort zu "Auto": Diese Einstellung ermittelt, Σhnlich wie in Excel, durch Prⁿfen
- sΣmtlicher Datenfelder die maximal erforderliche Spaltenbreite.
- EinstellungsΣnderungen werden - auch beim Klick auf Cancel - im Verlauf der Session
- weiter benutzt. Gespeichert hingegen werden sie nur durch Klick auf OK und stehen
- sodann automatisch in der kommenden Session zur Verfⁿgung.
- Text-Files besitzen nur ein Datenfeld (0), weswegen die meisten Funktionen hier deaktiviert
- sind.
-
- Example: {/DB.REC.SELECT}
-
- --> Tip
- Wird der Dialog durch "Abbrechen" geschlossen, so kann die Skript-Abarbeitung
- an dieser Stelle durch den Command "BTCH.EXIT-ON-CANCEL" (siehe dort) beendet
- werden.
-
- --> Tip
- Die Listenbreiten lassen sich durch drag & drop verΣndern, indem man den Balken zwischen
- den Listen greift und verschiebt.
-
- --> Tip
- Neben den windows-seitigen Steuerungsm÷glichkeiten in den Listen (CRSR-DOWN/UP) sind
- zusΣtzlich verfⁿgbar:
-
- [CRSR-RIGHT] : aktiviert die rechte Liste (zwecks CRSR-DOWN/UP)
- [CRSR-LEFT] : aktiviert die linke Liste
- [Enter] .....: entspricht Klick auf OK-Knopf
- [Space] .....: entspricht Klick auf OK-Knopf
-
-
- /DB.REC.SET nmb .......: To set record number to <nmb>
- ------------------------
- Der Datensatz besteht aus einer Gruppe zusammengeh÷render Datenfelder, z.B.
- Anrede, Nachname, Vorname, Ort etc. Im Falle von Excel ist der Datensatz eine
- Zellen-Zeile und das Datenfeld die einzelne Zelle.
-
- Example: {/DB.REC.SET 155}
-
-
- /DB.REC.VIEW [len] ....: To show all fields in the int. text viewer, optional max. length [len]
- ------------------------
-
- Example: {/DB.REC.VIEW}
- Example: {/DB.REC.VIEW 75}
-
- Im letzten Beispiel werden 75 Zeichen (von links) sΣmtlicher Datenfelder (Kette) des aktuellen
- Datensatzes angezeigt.
-
- -> Beachte!
- FunktionsΣnderung des Parameters zu RK v7.0. Ggf. Parameter anpassen.
-
-
- /DB.TABLE.ASK-N .......: To set table number, defined from user while script is in process
- /DB.TABLE.ASK-S .......: To set table name, defined from user while script is in process
- ------------------------
-
- Example: {/DB.TABLE.ASK-N}
- Example: {/DB.TABLE.ASK-S}
-
-
- /DB.TABLE.SELECT ......: To select table from list
- ------------------------
- Bei ge÷ffneter Datenbank kann so zwischen verschiedenen Tabellen hin- und hergeschaltet werden.
-
- Example: {/DB.TABLE.SELECT}
-
-
- /DB.TABLE.SET-N nmb ...: To set table number <nmb>
- /DB.TABLE.SET-S str ...: To set table name <str>
- ------------------------
-
- Example: {/DB.TABLE.SET-N 4}
- Example: {/DB.TABLE.SET-S profit$}