home *** CD-ROM | disk | FTP | other *** search
/ PC Administrator / spravce.iso / RemoteKeys / Manual / English / Command Manual / DB.txt < prev    next >
Encoding:
Text File  |  2002-10-27  |  14.9 KB  |  406 lines

  1. Description of Keys & Commands
  2. ==============================
  3.  
  4.  
  5. Command-Gruppe "DB": Database
  6. =============================
  7.  
  8. Beispiele fⁿr den Umgang dieser Command-Gruppe finden sich in einem eigenen Profil
  9. mit dem Namen "Database Example". Dieses befindet sich im 2. Profil-Set, also
  10. zuvor durch Anwahl des obersten Menⁿ-Punktes im Systray-Popmenu das Profil-Set
  11. umschalten.
  12.  
  13. --> Caution !
  14. The database access of RK based on MS Jet engine 3.5 (DAO 3.5).
  15. I am sorry to say that DAO 3.6 and greater is not supported!
  16. DAO 3.6 is used by ME, 2000, XP etc.
  17. But this is no reason not to use the database functions of RK.
  18. In some (or many) cases it is required to prepare the system for DAO 3.5.
  19. Maybe than DAO 3.5 and DAO 3.6 will be parallel installed but that seems to
  20. make no trouble.
  21.  
  22. But first you should try if you can open a database with RK (see example profile).
  23. If you get an error message like "Class not registered, looking for Object
  24. with CLSID ... long number ...) than it seems DAO 3.5 is not available on your
  25. system.
  26. Than you should make a 2nd check:
  27. Open path "\program files\common files\microsoft shared\dao".
  28. If this folder exists than - I think - you will find the file dao360.dll only.
  29. This says that DAO 3.6 is installed. The file for DAO 3.5 is dao350.dll.
  30. But it would be too easy to copy this file into this folder, because the
  31. installation of DAO 3.5 needs a lot more files and it must be correctly registered.
  32.  
  33. Therefore the easiest way to prepare your system is to download DAO 3.5 from
  34. freewarehits.de and to run the exe-file on your system.
  35. The archiv additional includes a file called vb5db.dll. This must be copied into
  36. the Windows\System folder if not already exists.
  37.  
  38. I tried this method on a clean WinME installation and it works immediately without
  39. any trouble. But it is required to say that I (the author) can not give any
  40. warranties and it must be done at one┤s own risk !
  41.  
  42. The directly download address is:
  43. http://www.freewarehits.de/AddFiles/dao35.zip (3.2 mb)
  44.  
  45. Die auf der Microsoft Jet-Engine aufsetzenden Datenbank-Anbindung erfordert - je nach
  46. gewⁿnschtem Datenbank-Zugriff - sogenannte ISAM-Treiber. Das ODBC-Verfahren lie▀e
  47. sich auch einstellen (s.u.), wurde aber nicht getestet.
  48. Folgende Datenbanken - die Installation der erforderlichen Treiber vorrausgesetzt -
  49. werden durch RK (mindestens) unterstⁿtzt:
  50.  
  51. - Access
  52. - DBase 3/4/5
  53. - Excel 3/4/5/8
  54. - FoxPro 2/2.5/2.6/3
  55. - Lotus WK 1/3/4
  56. - Paradox 3/4/5
  57. - Text
  58.  
  59. Erfolgreich getestet wurden Access (.mdb), Excel (.xls) und Text (.txt).
  60. Die Treiber sollten - zumindest bei den Office-Anwendungen - bei der Installation der
  61. jeweiligen Programme mit-installiert worden sein.
  62.  
  63. Allerdings... auf dem RK-Entwicklungs-Rechner lief - obwohl DAO 3.5 vorhanden - zunΣchst
  64. nicht viel. Der Grund war, da▀ die Treiber (35┤er) zwar vorhanden waren, allerdings nicht
  65. ordnungsgemΣ▀ in der Registry eingetragen. Sofern sich diese im Windows-System-Verzeichnis
  66. befinden, kann dies folgenderma▀en nachgeholt werden:
  67.  
  68. Z.B. das Ausfⁿhren-Fenster ÷ffnen und folgende Zeilen eingeben.
  69.  
  70. Regsvr32.exe C:\Windows\System\Msexcl35.dll
  71. Regsvr32.exe C:\Windows\System\Mstext35.dll
  72.  
  73. Danach erfolgt (hoffentlich) die Meldung, da▀ die Treiber erfolgreich installiert sind.
  74.  
  75. Die Treiber Msexcl40.dll/Mstext40.dll sind fⁿr DAO ab 3.6 vorgesehen und fⁿr DAO 3.5 nicht
  76. geeignet!
  77.  
  78. Als nΣchstes bestand das Problem, da▀ die ASCII-Zeichen (Umlaute etc.) nicht ordnungsgemΣ▀
  79. konvertiert wurden. Um dies zu beheben, mu▀te manuell in die Registry eingegriffen werden:
  80. Der entsprechde Pfad lautet (bitte suchen lassen):
  81.  
  82. Jet\3.5\Engines\Text
  83.  
  84. Folgender Schlⁿssel mu▀ ggf. geΣndert werden:
  85. CharacterSet von "OEM" auf "ANSI" setzen.
  86.  
  87. Ggf. bei Excel, Access etc. kontrollieren.
  88.  
  89. Diese geschilderten Probleme traten nur bei der bereits vorhandenen DAO 3.5 auf.
  90. Bei der oben beschriebenen DAO 3.5 Installation funktionierte alles auf Anhieb.
  91.  
  92. --> EinschrΣnkung
  93. Beim Auslesen von Werte enthaltenen Zellen kommt es gelegentlich zu ▄berlauffehlern. RK fΣngt
  94. diese Fehler zwar ab, kann dann aber fⁿr das betroffene Feld nur noch einen Leer-String senden.
  95. Ferner wird auch nur das Auslesen unterstⁿtzt, beschreiben kann RK eine Datenbank durch
  96. Direktzugriff (noch) nicht.
  97.  
  98. Vorgehensweise
  99. --------------
  100. Als erstes mu▀ stets eine Datenbank ge÷ffnet werden.
  101. RK arbeitet intern mit 2 Zeigern. Der erste positioniert einen Datensatz, der zweite ein
  102. Datenfeld. Welches Datenfeld beim Sende-Befehl (DB.FIELD.SEND) letztendlich an die
  103. Anwendung gesendet wird, ist von diesen 2 Zeigern abhΣngig.
  104. Nun gibt RK dem Anwender diverse Commands in die Hand, um diese Zeiger zu positionieren.
  105. Der Select-Command eignet sich z.B. fⁿr eine einmalige Sendung eines Datenfeldes, indem der
  106. Anwender dieses gezielt aus einer Liste heraussucht und anschlie▀end sendet.
  107. Andere Commands wie SET und INC sind eher fⁿr Serien-Sendungen gedacht, die z.B. in einer
  108. Schleife untergebracht werden.
  109.  
  110. Faustregel:
  111.  
  112. 1. Datenbank ÷ffnen
  113. 2. Datensatz-Zeiger positionieren
  114. 3. Datenfeld-Zeiger positionieren
  115. 4. Senden
  116.  
  117.  
  118. /DB.OPEN f[,t,p3,p4,p5]: To open database name <f> (file), sheet <t> (tabel), p3/4/5 = optional parameters
  119. ------------------------
  120. Beim Zugriff auf eine Access-Datenbank (.mdb) oder Excel-Mappe (.xls) mⁿssen die Parameter
  121. <f> & <t> definiert sein. Wird der Parameter <t> nicht angegeben, so wird autom. eine Liste
  122. angezeigt, aus der eine Tabelle ausgewΣhlt werden mu▀ (entspr. DB.TABLE.SELECT).
  123. Beim Zugriff auf eine TAB-separierte Text-Datei (.txt) wird nur der Parameter <f> angegeben.
  124. In diesen 3 FΣllen erkennt RK selbststΣndig das Format und stellt die verbleibenden
  125. Parameter automatisch ein.
  126. Allerdings werden Parameter-Setzungen mit PrioritΣt behandelt. D.h. sofern sie angegeben werden,
  127. wird die automatische Einstellung von RK au▀er Kraft gesetzt.
  128. In anderen (ungetesteten) FΣllen mⁿssen zusΣtzliche Angaben gemacht werden, wenigstens den p3-
  129. Parameter betreffend.
  130.  
  131. Die Parameter im Einzelnen:
  132.  
  133. f : File:    Dateiname = Pfad zur Datei
  134.  
  135. t : Table:   Die Excel-Mappe besteht bekanntlich aus einzelnen Tabellen.
  136.              Es kann nur auf eine zur Zeit zugegriffen werden, die hier anzugeben ist.
  137.              Bei Access handelt es sich um die Einzel-Datei der Datenbank.
  138.              Texte sind sozusagen ein-dimensional, so da▀ der Parameter hier entfΣllt.
  139.  
  140.              Dem Tabellen-Name in Excel mu▀ ein $ hinzugefⁿgt werden (warum auch immer).
  141.              Bei Text wird automatisch ein #txt generiert.
  142.              Bei Access ist der Tabellen-Name unverΣndert anzugeben.
  143.              Andere Formate wurden nicht geprⁿft.
  144.  
  145.              Im Zweifelsfalle den Parameter erstmal weglassen und die Tabelle aus der stattdessen
  146.              erscheinenden Auswahlbox auswΣhlen. In dieser kann man die genauen Tabellen-Bezeich-
  147.              nungen erkennen, um die gewⁿnschte spΣter in den t-Parameter zu ⁿbertragen.
  148.  
  149. p3: Connect: Angabe des Datenbank-Typs. Die genauen Beschreibungen lauten (Access ohne Semikolon): 
  150.  
  151.              Access
  152.              dBASE III;
  153.              dBASE IV;
  154.              dBASE 5.0;
  155.              Excel 3.0;
  156.              Excel 4.0;
  157.              Excel 5.0;
  158.              Excel 8.0;
  159.              FoxPro 2.0;
  160.              FoxPro 2.5;
  161.              FoxPro 2.6;
  162.              FoxPro 3.0;
  163.              Lotus WK1;
  164.              Lotus WK3;
  165.              Lotus WK4;
  166.              Paradox 3.x;
  167.              Paradox 4.x;
  168.              Paradox 5.x;
  169.              Text;
  170.  
  171.              RK benutzt standardmΣ▀ig Excel 3.0. Damit kann problemlos auch auf 8.0-Dateien
  172.              zugegriffen werden, ist aber eben auch fⁿr Σltere Versionen geeignet.
  173.  
  174. p4: Rec-Set-Type: p4 = 0 - 2. Es k÷nnen folgende Typen eingestellt werden:
  175.  
  176.              0 : Table
  177.              1 : Dynaset  (Standard-Einstellung)
  178.              2 : Snapshot
  179.  
  180.              Im Test (mdb/xls/txt) lief alles unter Dynaset, Table funktionierte auch.
  181.  
  182. p5: Engine: p5 = 0 - 1. Hier kann zwischen folgenden "Treiber-Maschinen" gewΣhlt werden:
  183.  
  184.              0 : Jet  (MS, Standard-Einstellung)
  185.              1 : ODBC
  186.  
  187. Example: {/DB.OPEN c:\data\db.xls}
  188. Example: {/DB.OPEN c:\data\db.mdb,sheet1}
  189. Example: {/DB.OPEN c:\data\db.xls,sheet1$}
  190. Example: {/DB.OPEN c:\data\db.txt}
  191. Example: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;}     (Parameter fⁿr dbase unbekannt!)
  192. Example: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,0}
  193. Example: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,2,1}
  194.  
  195.  
  196. /DB.CLOSE .............: To close current database
  197. ------------------------
  198. Das Schlie▀en einer Datenbank erm÷glicht es, wieder von anderen Anwendungen auf
  199. die Bank zuzugreifen und gibt darⁿber hinaus reservierten Speicher wieder frei.
  200.  
  201. Example: {/DB.CLOSE}
  202.  
  203.  
  204. /DB.FIELD.ASK .........: To set field number, defined from user while script is in process
  205. ------------------------
  206.  
  207. Example: {/DB.FIELD.ASK}
  208.  
  209.  
  210. /DB.FIELD.CLIP [len] ..: To copy current field content to clip, optional maximal length [len]
  211. ------------------------
  212.  
  213. Example: {/DB.FIELD.CLIP}
  214. Example: {/DB.FIELD.CLIP 25}
  215.  
  216. Im letzten Beispiel werden die ersten 25 Zeichen des aktuellen Datenfeldes in die
  217. Zw┤ablage kopiert.
  218.  
  219.  
  220. /DB.FIELD.INC .........: To increment field number
  221. /DB.FIELD.DEC .........: To decrement field number
  222. ------------------------
  223.  
  224. Example: {/DB.FIELD.INC}
  225.  
  226.  
  227. /DB.FIELD.NMB>VAR .....: To copy field number into current VAR
  228. /DB.FIELD.NMB<VAR .....: To set field number to current VAR
  229. ------------------------
  230. Erm÷glicht den Austausch der Feld-Nummer mit der Variablen VAR, soda▀ Berechnungen
  231. m÷glich sind.
  232. (siehe Command-Gruppe VAR-Commands, Rechnen)
  233.  
  234. Example: 
  235.  
  236. {/BTCH.EXPLICIT}
  237. {/DB.FIELD.NMB>VAR}
  238. {/VAR.ADD 3}
  239. {/DB.FIELD.NMB<VAR}
  240.  
  241.  
  242. /DB.FIELD.SEND [len] ..: To send current field content, optional maximal length [len]
  243. ------------------------
  244. Das Datenfeld ist das kleinste Element der Datenbank:
  245. Datenbank -> Tabelle -> Datensatz -> Datenfeld
  246. Nur dieses kann durch RK gesendet werden.
  247. Ganze DatensΣtze sendet man daher durch eine Verkettung von DB.FIELD.SEND-Commands
  248. im Skript. Vor dem Senden mu▀ der Datensatz-Zeiger entsprechend positioniert werden.
  249.  
  250. Example:
  251.  
  252. {/BTCH.EXPLICIT}
  253. {/DB.REC.SELECT}
  254. {/BTCH.EXITIF.CANCEL}
  255. {/DB.FIELD.SET 4}
  256. {/DB.FIELD.SEND}{KEY.TAB}
  257. {/DB.FIELD.SET 5}
  258. {/DB.FIELD.SEND}{KEY.TAB}
  259. {/DB.FIELD.SET 6}
  260. {/DB.FIELD.SEND}{KEY.TAB}
  261.  
  262. Example: {/DB.FIELD.SEND 15}
  263.  
  264. In diesem Beispiel wird die Ausgabe auf 15 Zeichen begrenzt.
  265.  
  266.  
  267. /DB.FIELD.SEND.FRMT str: To send current field content in formatted output (str=###0.00 to get 1,30)
  268. ------------------------
  269. Gestattet die formatierte Ausgabe fⁿr Zahlen- und Datums-Feldern.
  270.  
  271. Example: {/DB.FIELD.SEND.FRMT ##0.00}
  272. Example: {/DB.FIELD.SEND.FRMT long date}
  273.  
  274. -> Beachte!
  275. Fⁿr Datums-Felder trifft die Beschreibung in den DAT-Commands zu (DAT.FORMAT str),
  276. mit Ausnahme der "Alleinstehenden Parametern" (Stand Alone).
  277.  
  278.  
  279. /DB.Field.SET nmb .....: To set field number to <nmb>
  280. ------------------------
  281.  
  282. Example: {/DB.Field.SET 5}
  283.  
  284.  
  285. /DB.Field.VIEW ........: To show current field content in the internal text viewer
  286. ------------------------
  287.  
  288. Example: {/DB.Field.VIEW}
  289.  
  290.  
  291. /DB.PROP.VIEW .........: To show current database properties in the internal text viewer
  292. ------------------------
  293.  
  294. Example: {/DB.PROP.VIEW}
  295.  
  296.  
  297. /DB.REC.ASK ...........: To set record number, defined from user while script is in process
  298. ------------------------
  299.  
  300. Example: {/DB.REC.ASK}
  301.  
  302.  
  303. /DB.REC.INC ...........: To increment record number
  304. /DB.REC.DEC ...........: To decrement record number
  305. ------------------------
  306.  
  307. Example: {/DB.REC.INC}
  308.  
  309.  
  310. /DB.REC.NMB>VAR .......: To copy record number into current VAR
  311. /DB.REC.NMB<VAR .......: To set record number to current VAR
  312. ------------------------
  313. Erm÷glicht den Austausch der Datensatz-Nummer mit der Variablen VAR, soda▀ Berechnungen
  314. m÷glich sind.
  315. (siehe Command-Gruppe VAR-Commands, Rechnen)
  316.  
  317. Example: 
  318.  
  319. {/BTCH.EXPLICIT}
  320. {/DB.REC.NMB>VAR}
  321. {/VAR.ADD 3}
  322. {/DB.REC.NMB<VAR}
  323.  
  324.  
  325. /DB.REC.SELECT ........: To set record && field number by selecting from 2 lists
  326. ------------------------
  327. Dieses Fenster gestattet es, ein beliebiges Datenfeld eines beliebigen Datensatzes
  328. auszuwΣhlen. Den Datensatz selektiert man in der linken, das Datenfeld in der rechten
  329. Liste. Die Bestimmung von Datensatz- und Datenfeld-Nummer bleibt nach dem Schlie▀en des
  330. Fensters erhalten, um mit ihnen ggf. weiterzuarbeiten, indem man z.B. das selektierte
  331. Datenfeld mittels {/DB.FIELD.SEND} an eine Anwendung sendet.
  332.  
  333. Die m÷glichen Fenster-Einstellungen findet der Anwender durch Probieren sicher
  334. schnell heraus.
  335. Ein Wort zu "Auto": Diese Einstellung ermittelt, Σhnlich wie in Excel, durch Prⁿfen
  336. sΣmtlicher Datenfelder die maximal erforderliche Spaltenbreite.
  337. EinstellungsΣnderungen werden - auch beim Klick auf Cancel - im Verlauf der Session
  338. weiter benutzt. Gespeichert hingegen werden sie nur durch Klick auf OK und stehen
  339. sodann automatisch in der kommenden Session zur Verfⁿgung.
  340. Text-Files besitzen nur ein Datenfeld (0), weswegen die meisten Funktionen hier deaktiviert
  341. sind.
  342.  
  343. Example: {/DB.REC.SELECT}
  344.  
  345. --> Tip
  346. Wird der Dialog durch "Abbrechen" geschlossen, so kann die Skript-Abarbeitung
  347. an dieser Stelle durch den Command "BTCH.EXIT-ON-CANCEL" (siehe dort) beendet
  348. werden.
  349.  
  350. --> Tip
  351. Die Listenbreiten lassen sich durch drag & drop verΣndern, indem man den Balken zwischen
  352. den Listen greift und verschiebt.
  353.  
  354. --> Tip
  355. Neben den windows-seitigen Steuerungsm÷glichkeiten in den Listen (CRSR-DOWN/UP) sind
  356. zusΣtzlich verfⁿgbar:
  357.  
  358. [CRSR-RIGHT] : aktiviert die rechte Liste (zwecks CRSR-DOWN/UP)
  359. [CRSR-LEFT]  : aktiviert die linke  Liste
  360. [Enter] .....: entspricht Klick auf OK-Knopf
  361. [Space] .....: entspricht Klick auf OK-Knopf
  362.  
  363.  
  364. /DB.REC.SET nmb .......: To set record number to <nmb>
  365. ------------------------
  366. Der Datensatz besteht aus einer Gruppe zusammengeh÷render Datenfelder, z.B.
  367. Anrede, Nachname, Vorname, Ort etc. Im Falle von Excel ist der Datensatz eine
  368. Zellen-Zeile und das Datenfeld die einzelne Zelle.
  369.  
  370. Example: {/DB.REC.SET 155}
  371.  
  372.  
  373. /DB.REC.VIEW [len] ....: To show all fields in the int. text viewer, optional max. length [len]
  374. ------------------------
  375.  
  376. Example: {/DB.REC.VIEW}
  377. Example: {/DB.REC.VIEW 75}
  378.  
  379. Im letzten Beispiel werden 75 Zeichen (von links) sΣmtlicher Datenfelder (Kette) des aktuellen
  380. Datensatzes angezeigt.
  381.  
  382. -> Beachte!
  383. FunktionsΣnderung des Parameters zu RK v7.0. Ggf. Parameter anpassen.
  384.  
  385.  
  386. /DB.TABLE.ASK-N .......: To set table number, defined from user while script is in process
  387. /DB.TABLE.ASK-S .......: To set table name, defined from user while script is in process
  388. ------------------------
  389.  
  390. Example: {/DB.TABLE.ASK-N}
  391. Example: {/DB.TABLE.ASK-S}
  392.  
  393.  
  394. /DB.TABLE.SELECT ......: To select table from list
  395. ------------------------
  396. Bei ge÷ffneter Datenbank kann so zwischen verschiedenen Tabellen hin- und hergeschaltet werden.
  397.  
  398. Example: {/DB.TABLE.SELECT}
  399.  
  400.  
  401. /DB.TABLE.SET-N nmb ...: To set table number <nmb>
  402. /DB.TABLE.SET-S str ...: To set table name <str>
  403. ------------------------
  404.  
  405. Example: {/DB.TABLE.SET-N 4}
  406. Example: {/DB.TABLE.SET-S profit$}