home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / database / unitdb / dokument.doc < prev    next >
Encoding:
Text File  |  1993-07-27  |  24.2 KB  |  549 lines

  1.               ╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗
  2.               ╠╬╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╬╣
  3.               ╠╣                                                             ╠╣
  4.               ╠╣        █  █▀▀▀▀█▄         █▀▀▀▀█▄   ▄█▀▀▀▀█▄  █         █   ╠╣
  5.               ╠╣        █  █     ▀█        █     ▀█  █      █   █       █    ╠╣
  6.               ╠╣        █  █      █        █      █  █      █    █     █     ╠╣
  7.               ╠╣        █  █      █        █      █  █      █     █   █      ╠╣
  8.               ╠╣        █  █    ▄█▀        █    ▄█▀  █      █      █ █       ╠╣
  9.               ╠╣  ▄▀▀▀▀▀█  █▀▀▀▀█▄         █▀▀▀▀█▄   █      █      ▄▀▄       ╠╣
  10.               ╠╣  █     █  █     ▀█        █     ▀█  █      █     ▄▀ ▀▄      ╠╣
  11.               ╠╣  █     █  █      █        █      █  █      █    ▄▀   ▀▄     ╠╣
  12.               ╠╣  █     █  █      █        █      █  █      █   ▄▀     ▀▄    ╠╣
  13.               ╠╣  █     █  █     ▄█        █     ▄█  █      █  ▄▀       ▀▄   ╠╣
  14.               ╠╣  ▀▄▄▄▄▄█  █▄▄▄▄█▀  ▄▄▄▄▄  █▄▄▄▄█▀   ▀█▄▄▄▄█▀ ▄▀         ▀▄  ╠╣
  15.               ╠╣                                                             ╠╣
  16.               ╠╬╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╬╣
  17.               ╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝
  18.  
  19.  
  20.               File 'DOKUMENT.DOC'
  21.  
  22.  
  23.               ╔══════════════════════════════════════════════════════════════╗
  24.               ║ Programm: dB_BOX                           SHAREWARE-VERSION ║
  25.               ║                                                              ║
  26.               ║ Version:  1.1 (Juni 1992)                                    ║
  27.               ║                                                              ║
  28.               ║ Autor:    Dipl.-Ing. Helmut Klüber                           ║
  29.               ║           Bergkieferweg 15                                   ║
  30.               ║           W - 8011 Kirchheim b. München                      ║
  31.               ╚══════════════════════════════════════════════════════════════╝
  32.  
  33.  
  34.  
  35.               Bedienungsanweisung:
  36.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  37.  
  38.  
  39.               1. dB_BOX 1.0 im Überblick:
  40.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  41.  
  42.               Mit dieser UNIT haben Sie ein leisungsstarkes Werkzeug
  43.               für Turbo-Pascal 5.5 und Turbo-Pascal 6.0 erworben.
  44.               Sie können damit sowohl Ihre Daten im dBase-Format speichern,
  45.               als auch auf vorhandene dBase-Dateien zugreifen.
  46.               Sogar vorhandene dBase- und Clipper-Index-Dateien können
  47.               ausgewertet werden.
  48.               Die UNIT soll jedoch kein Ersatz für dBase sein.
  49.  
  50.               Besondere Leistungsmerkmale:
  51.  
  52.               - Größe der dBase-Dateien nicht durch den Hauptspeicher Ihres
  53.                 Rechners begrenzt, d.h. beliebig viele Datensätze
  54.  
  55.               - bis zu 128 Datenfelder je Datensatz
  56.  
  57.               - Datensatzlänge nicht eingeschränkt
  58.  
  59.               - komfortable Anwendung durch objektorientierte Programmierung
  60.                 der UNIT
  61.  
  62.               - Verhalten der UNIT durch SET-Parameter steuerbar
  63.  
  64.               - die Datenbankobjekte können sowohl im Datensegment eines
  65.                 Programms als auch auf dem Heap angelegt werden
  66.  
  67.               - vollautomatische Ein-/Ausgabepufferung mit einstellbarer
  68.                 Puffergröße (0-64 KByte), damit sehr schnell, weil nahezu
  69.                 unabhängig von der Arbeitsgeschwindigkeit des Massenspeichers
  70.  
  71.               - Der Anwender muß sich nicht um Bits und Bytes der dBase-
  72.                 Dateien kümmern, die Datenintegrität wird von der Unit
  73.                 gewährleistet
  74.  
  75.  
  76.               Sie können neue Datenbanken anlegen, ihren Inhalt oder auch nur
  77.               ihre Struktur kopieren und durch Packen als gelöscht markierte
  78.               Datensätze volständig entfernen. Beim Kopieren kann die Reihen-
  79.               folge der Datensätze einer dBase- oder Clipper-Index-Datei ent-
  80.               nommen werden.
  81.               Auf jeden einzelnen Datensatz kann zugegriffen werden, er kann
  82.               gesucht werden und auch verändert werden. Neue Datensätze können
  83.               hinzugefügt werden. Datensätze können gelöscht und auch wieder-
  84.               hergestellt werden.
  85.               Der Zugriff auf einzelne Datenfelder innerhalb eines Datensatzes
  86.               ist auf vielfältige Weise möglich.
  87.               Memodateien werden in dieser Version noch nicht unterstützt.
  88.               Die folgende Einführung geht nicht auf alle Funktionen und
  89.               Prozeduren der UNIT ein. Dazu gibt es den vollständigen
  90.               Referenzteil (siehe Datei REFERENZ.DOC).
  91.  
  92.  
  93.               2. Einbinden der UNIT in Ihre Programme:
  94.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  95.  
  96.               Sie programmieren mit Turbo-Pascal 5.5:
  97.  
  98.                         PROGRAM Test;
  99.                         USES dB_BOX55;
  100.                         BEGIN
  101.                           (* Ihr Programm *)
  102.                         END.
  103.  
  104.  
  105.               Sie programmieren mit Turbo-Pascal 6.0:
  106.  
  107.                         PROGRAM Test;
  108.                         USES dB_BOX60;
  109.                         BEGIN
  110.                           (* Ihr Programm *)
  111.                         END.
  112.  
  113.               Im Übrigen ist die Verwendung der UNIT absolut gleich für
  114.               beide Turbo-Pascal-Versionen.
  115.  
  116.  
  117.               3. Benutzung von Datenbankobjekten:
  118.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  119.  
  120.               Anlegen von Datenbankobjekten im Datensegment:
  121.  
  122.                         PROGRAM Test;
  123.                         USES dB_BOX60;
  124.                         VAR db1, db2, db3: dB;
  125.                         (* jetzt können 3 verschiedene Datenbanken  *)
  126.                         (* gleichzeitig geöffnet werden             *)
  127.                         BEGIN
  128.                           WITH db1 DO
  129.                             BEGIN
  130.                               (* Ihr Programmteil für die 1. Daten- *)
  131.                               (* bank                               *)
  132.                             END
  133.                         END.
  134.  
  135.  
  136.               Anlegen von Datenbankobjekten auf dem Heap:
  137.  
  138.                         PROGRAM Test;
  139.                         USES dB_BOX60;
  140.                         VAR db1, db2, db3: ^.dB;
  141.                         (* jetzt können 3 verschiedene Datenbanken  *)
  142.                         (* gleichzeitig geöffnet werden             *)
  143.                         BEGIN
  144.                           New(dB1);     (* Heapspeicher anfordern   *)
  145.                           WITH db1^ DO
  146.                             BEGIN
  147.                               (* Ihr Programmteil für die 1. Daten- *)
  148.                               (* bank an dieser Stelle              *)                               *)
  149.                             END;
  150.                           Dispose(db1); (* Heapspeicher freigeben   *)
  151.                         END.
  152.  
  153.               Wie sie sehen geht das mühelos, und Sie können sich so
  154.               Ihr Datensegment für eigene Daten freihalten.
  155.  
  156.  
  157.               3. Öffnen und Schließen von Datenbanken:
  158.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  159.  
  160.               Zum Öffnen und Schließen von dBase-Datenbanken benötigen Sie
  161.               nur die beiden Befehle "Use" und "CloseDbf".
  162.  
  163.                         PROGRAM Test;
  164.                         USES dB_BOX60;
  165.                         VAR db1: ^.dB;
  166.                         BEGIN
  167.                           New(dB1);     (* Heapspeicher anfordern   *)
  168.                           WITH db1^ DO
  169.                             BEGIN
  170.                               Use('C:\DATEI1.DBF');
  171.                                         (* und schon geöffnet       *)
  172.                               (* Ihr Programmteil für die 1. Daten- *)
  173.                               (* bank an dieser Stelle              *)
  174.                               CloseDbf; (* und das Schließen nicht  *)
  175.                                         (* vergessen                *)
  176.                             END;
  177.                           Dispose(db1); (* Heapspeicher freigeben   *)
  178.                         END.
  179.  
  180.               Beachten Sie bitte, um nach Aufruf von "CloseDbf" eine
  181.               andere Datenbank zu öffnen, brauchen Sie keine 2. Variable
  182.               vom Typ "dB" oder vom Typ "^dB" zu definieren. Es genügt,
  183.               wenn Sie nach dem Aufruf von "CloseDbf" erneut z.B.
  184.               "USE(C:\DATEI2.DBF);" verwenden. Mehrere Datenbankvariablen
  185.               sollten nur definiert werden, wenn Sie gleichzeitigen Zugriff
  186.               auf mehrere Datenbanken gewährleisten wollen.
  187.  
  188.  
  189.               4. Anlegen von Datenbanken:
  190.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  191.  
  192.               Das Anlegen von dBase-Datenbanken erfolgt in zwei Schritten,
  193.               zuerst wird die Grundstruktur der Datei mit "Create" erzeugt,
  194.               danach werden die einzelnen Datenfelder mit "AddField" hinzu-
  195.               gefügt.
  196.  
  197.                         PROGRAM Test;
  198.                         USES dB_BOX60;
  199.                         VAR db1: ^.dB;
  200.                         BEGIN
  201.                           New(dB1);     (* Heapspeicher anfordern     *)
  202.                           WITH db1^ DO
  203.                             BEGIN
  204.                               Create('C:\DATEI1.DBF');
  205.                                         (* und schon angelegt, aber   *)
  206.                                         (* noch ohne Datenfelder      *)
  207.                               AddField('VORNAME',  'C', 15, 0);
  208.                               AddField('NACHNAME', 'C', 20, 0);
  209.                               AddField('TEL_NR',   'C', 10, 0);
  210.                                         (* und schon ist die Telefon- *)
  211.                                         (* datei fertig               *)
  212.                               CloseDbf; (* und das Schließen nicht    *)
  213.                                         (* vergessen                  *)
  214.                             END;
  215.                           Dispose(db1); (* Heapspeicher freigeben     *)
  216.                         END.
  217.  
  218.  
  219.               5. Kopieren von Datenbanken:
  220.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  221.  
  222.               Es gibt fünf verschiedene Kopiermöglichkeiten:
  223.  
  224.               a) Kopieren der vollständigen Datei: ("CopyTo")
  225.                  Dabei werden sowohl die Struktur der Datei kopiert als
  226.                  auch alle Datensätze. Als gelöscht markierte Datensätze
  227.                  werden jedoch nur kopiert, wenn Sie vorher den Befehl
  228.                  "DeletedOn:= TRUE;" angewendet haben. Sie haben mit "CopyTo"
  229.                  die Möglichkeit, Ihre Dateien nach Lösch- und Pack-Vorgängen
  230.                  physikalisch zu verkleinern.
  231.  
  232.                         PROGRAM Test;
  233.                         USES dB_BOX60;
  234.                         VAR db1: ^.dB;
  235.                         BEGIN
  236.                           New(dB1);     (* Heapspeicher anfordern   *)
  237.                           WITH db1^ DO
  238.                             BEGIN
  239.                               Use('C:\DATEI1.DBF');
  240.                               CopyTo('C:\DATEINEU.DBF');
  241.                               CloseDbf; (* und das Schließen nicht  *)
  242.                                         (* vergessen                *)
  243.                             END;
  244.                           Dispose(db1); (* Heapspeicher freigeben   *)
  245.                         END.
  246.  
  247.               Beachten Sie bitte, daß Sie als Ziel des Kopiervorgangs
  248.               keine neue Datenbankvariable definieren müssen. Das wäre ggf.
  249.               nur erforderlich, wenn Sie anschließend im selben Programm
  250.               damit weiterarbeiten wollen.
  251.  
  252.               b) Kopieren der vollständigen Datei unter Berücksichtigung
  253.                  einer dBase-Index-Datei: ("CopybyNDX")
  254.                  Dabei werden sowohl die Struktur der Datei kopiert als
  255.                  auch alle Datensätze und zwar in der Reihenfolge wie sie
  256.                  in der zugehörigen dBase-Index-Datei *.NTX festgelegt ist.
  257.                  Als gelöscht markierte Datensätze werden jedoch nur kopiert,
  258.                  wenn Sie vorher den Befehl "DeletedOn:= TRUE;" angewendet
  259.                  haben.
  260.  
  261.                         PROGRAM Test;
  262.                         USES dB_BOX60;
  263.                         VAR db1: ^.dB;
  264.                         BEGIN
  265.                           New(dB1);     (* Heapspeicher anfordern   *)
  266.                           WITH db1^ DO
  267.                             BEGIN
  268.                               Use('C:\DATEI1.DBF');
  269.                               CopybyNDX('C:\DATEI1.NDX', 'C:\DATEINEU.DBF');
  270.                               CloseDbf; (* und das Schließen nicht  *)
  271.                                         (* vergessen                *)
  272.                             END;
  273.                           Dispose(db1); (* Heapspeicher freigeben   *)
  274.                         END.
  275.  
  276.               Beachten Sie bitte, daß Sie als Ziel des Kopiervorgangs
  277.               keine neue Datenbankvariable definieren müssen. Das wäre ggf.
  278.               nur erforderlich, wenn Sie anschließend im selben Programm
  279.               damit weiterarbeiten wollen.
  280.  
  281.               c) Kopieren der vollständigen Datei unter Berücksichtigung
  282.                  einer Clipper-Index-Datei: ("CopybyNTX")
  283.                  Dabei werden sowohl die Struktur der Datei kopiert als
  284.                  auch alle Datensätze und zwar in der Reihenfolge wie sie
  285.                  in der zugehörigen Clipper-Index-Datei *.NTX festgelegt ist.
  286.                  Als gelöscht markierte Datensätze werden jedoch nur kopiert,
  287.                  wenn Sie vorher den Befehl "DeletedOn:= TRUE;" angewendet
  288.                  haben.
  289.  
  290.                         PROGRAM Test;
  291.                         USES dB_BOX60;
  292.                         VAR db1: ^.dB;
  293.                         BEGIN
  294.                           New(dB1);     (* Heapspeicher anfordern   *)
  295.                           WITH db1^ DO
  296.                             BEGIN
  297.                               Use('C:\DATEI1.DBF');
  298.                               CopybyNTX('C:\DATEI1.NTX', 'C:\DATEINEU.DBF');
  299.                               CloseDbf; (* und das Schließen nicht  *)
  300.                                         (* vergessen                *)
  301.                             END;
  302.                           Dispose(db1); (* Heapspeicher freigeben   *)
  303.                         END.
  304.  
  305.               Beachten Sie bitte, daß Sie als Ziel des Kopiervorgangs
  306.               keine neue Datenbankvariable definieren müssen. Das wäre ggf.
  307.               nur erforderlich, wenn Sie anschließend im selben Programm
  308.               damit weiterarbeiten wollen.
  309.  
  310.               d) Kopieren der Datei ohne Datensätze: ("CopyStruTo")
  311.                  Dabei wird nur die Struktur der Datei kopiert. Die Ziel-
  312.                  datei bleibt aber leer, es wird also nur eine leere Datei
  313.                  gleicher Struktur erzeugt. Sie brauchen dazu im obigen
  314.                  Beispiel (siehe a) nur den Befehl "CopyTo" durch den Befehl
  315.                  "CopyStruTo" zu ersetzen.
  316.  
  317.               e) Erzeugen einer Datei mit Strukturbeschreibung:
  318.                  ("CopyStruExteTo")
  319.                  Dabei wird eine neue Datei mit den Datenfeldern
  320.                  'FIELD_NAME', 'FIELD_TYPE', 'FIELD_LEN 'und 'FIELD_DEC '
  321.                  erzeugt und für jedes Datenfeld der Quelldatei ein Datensatz
  322.                  mit der Beschreibung dieses Feldes hinzugefügt. Sie brauchen
  323.                  dazu im obigen Beispiel (siehe a) nur den Befehl "CopyTo"
  324.                  durch den Befehl "CopyStruExteTo" zu ersetzen.
  325.  
  326.  
  327.               6. Auswahl eines Datensatzes:
  328.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  329.  
  330.               Zu jeder Datenbank merkt sich die zugehörige Datenbankvariable
  331.               im sogenannten Satzzeiger, auf welchen aktuellen Datensatz gerade
  332.               zugegriffen werden kann. Unmittelbar nach dem Öffnen einer
  333.               Datenbank hat der Satzzeiger den Wert 1, d.h. er zeigt auf den
  334.               ersten Datensatz.
  335.  
  336.               Der Wert des Satzzeigers kann mit der Funktion
  337.  
  338.                         RecNo
  339.  
  340.               abgefragt werden. Mit der Prozedur
  341.  
  342.                         Go(RecNr:LongInt)
  343.  
  344.               kann jeder beliebige (auch gelöschte) Datensatz angewählt
  345.               werden. Mit der Prozedur
  346.  
  347.                         GoTop
  348.  
  349.               wird bei "DeletedOn=TRUE" der erste nicht gelöschte Datensatz
  350.               angewählt, sonst der 1. Datensatz der Datenbank. Mit der Prozedur
  351.  
  352.                         GoBottom
  353.  
  354.               wird bei "DeletedOn=TRUE" der letzte nicht gelöschte Datensatz
  355.               angewählt, sonst der letzte Datensatz (auch wenn er gelöscht
  356.               ist). Mit der Prozedur
  357.  
  358.                         Next
  359.  
  360.               wird bei "DeletedOn=TRUE" der nächste nicht gelöschte Datensatz
  361.               angewählt, sonst der nächste Datensatz, ob gelöscht oder nicht.
  362.  
  363.               Mit der Prozedur
  364.  
  365.                         Prev
  366.  
  367.               wird bei "DeletedOn=TRUE" der vorhergehende nicht gelöschte
  368.               Datensatz angewählt, sonst der vorhergehende Datensatz, ob
  369.               gelöscht oder nicht.
  370.               Mit der Prozedur
  371.  
  372.                         Skip(Anzahl: LongInt)
  373.  
  374.               wird wie bei dBase der Satzzeiger entsprechend "Anzahl" vor-
  375.               oder (falls negativ) zurückgesetzt. Mit der Funktion
  376.  
  377.                         Locate(FeldName: String; VAR Schluessel)
  378.  
  379.               wird der Satz angewählt, bei dem der Inhalt des Feldes "FeldName"
  380.               mit der Variablen "Schlüssel" übereinstimmt.
  381.  
  382.  
  383.               7. Löschen und Wiederherstellen von Datensätzen:
  384.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  385.  
  386.               Mit der Prozedur
  387.  
  388.                         Delete
  389.  
  390.              können Sie den aktuell angewählten Datensatz als gelöscht
  391.              markieren, ansonsten bleibt er unverändert, d.h. er wird nur
  392.              logisch gelöscht. Mit der Prozedur
  393.  
  394.                         Recall
  395.  
  396.               können Sie die Löschmarkierung des aktuell angewählten Daten-
  397.               satzes wieder entfernen. Mit der Prozedur
  398.  
  399.                         RecallAll
  400.  
  401.               wird die Löschmarkierung bei allen Datensätzen in der Datenbank
  402.               gleichzeitig entfernt. Ob ein Datensatz als gelöscht markiert
  403.               ist können Sie mit der Variablen "Deleted" abfragen. Z.B.
  404.  
  405.                         IF Deleted THEN WriteLn('Datensatz gelöscht')
  406.                         ELSE WriteLn('Datensatz nicht gelöscht');
  407.  
  408.               Beachten Sie jedoch, daß durch Änderung von "Deleted" keinerlei
  409.               Änderung an der Datenbank erfolgt, Sie müssen dafür "Delete"
  410.               oder "Recall" verwenden. Mit der Prozedur
  411.  
  412.                         Pack
  413.  
  414.               können Sie die als gelöscht markierten Datensätze endgültig aus
  415.               der Datenbank entfernen.
  416.  
  417.               Mit der Prozedur
  418.  
  419.                         Zap
  420.  
  421.               entfernen Sie alle Datensätze (auch die nicht als gelöscht
  422.               markierten) endgültig aus der Datenbank. Die Datei wird dadurch
  423.               jedoch physikalisch nicht verkleinert, das ist nur durch
  424.               anschließendes Kopieren (siehe 5.) möglich.
  425.  
  426.  
  427.               8. Hinzufügen von Datensätzen:
  428.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  429.  
  430.               Das Hinzufügen von Datensätzen am Datenbankende erfolgt wie bei
  431.               dBase in zwei Stufen. Zuerst wird mit der Prozedur
  432.  
  433.                         AppendBlank
  434.  
  435.               ein leerer Datensatz angehängt, danach werden seine Datenfelder
  436.               mit den Prozeduren zum Ändern von Datenfeldern (siehe 9.)
  437.               nach Wunsch geändert.
  438.  
  439.  
  440.               9. Lesen und Ändern von Datenfeldern:
  441.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  442.  
  443.               Zum Lesen und Ändern von Datenfeldern können sie die folgenden
  444.               Funktionen und Prozeduren verwenden:
  445.  
  446.                         FieldNo
  447.                         FieldName
  448.                         GetByNr
  449.                         FieldInform
  450.                         Get
  451.                         GetbyNr
  452.                         GetbyNrT
  453.                         GetT
  454.                         Replace
  455.                         ReplacebyNr
  456.                         ReplacebyNrT
  457.                         ReplaceT
  458.  
  459.               Die genaue Arbeitsweise dieser Routinen ist ausführlich im
  460.               Referenzteil beschrieben (siehe Datei REFERENZ.DOC).
  461.  
  462.  
  463.               11. Auswerten von dBase- und Clipper-Index-Dateien:
  464.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  465.  
  466.               Mit den Funktionen "GetKeyNDX" bzw. "GetKeyNTX" können Sie
  467.               ermitteln, welcher Schlüssel von dBase bzw. Clipper beim
  468.               Indizieren einer Datenbank verwendet wurde.
  469.  
  470.               Mit den Prozeduren "CopybyNDX" bzw. "CopybyNTX" können Sie
  471.               eine neue Datenbank erstellen, die entsprechend der in der
  472.               Index-Datei festgelegten Reihenfolge sortiert ist.
  473.               (siehe Kapitel 5)
  474.  
  475.  
  476.               12. Einstellen von Parametern:
  477.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  478.  
  479.               Dafür gibt es drei Parameter, die die Funktion bekannter
  480.               dBase-Set-Parameter nachbilden:
  481.  
  482.                         CarryOn
  483.                         DeletedOn
  484.                         ExactOn
  485.  
  486.               Durch Zuweisung von TRUE oder FALSE entsprechend der
  487.               Beschreibung im Referenzteil (siehe Datei REFERENZ.DOC) kann
  488.               die gewünschte Einstellung vorgenommen werden.
  489.  
  490.               Mit der Prozedur
  491.  
  492.                         SetBuf(Size: Word)
  493.  
  494.               kann die Größe des internen Ein-/Ausgabepuffers eingestellt
  495.               werden (0 bis 64 KByte). Diese Einstellung wird ab dem nächsten
  496.               Aufruf von "Use" wirksam und kann so für verschiedene Datenbanken
  497.               unterschiedlich eingestellt werden. Der Puffer ist auf die
  498.               maximal mögliche Größe voreingestellt.
  499.  
  500.               Mit der Funktion
  501.  
  502.                         GetBuf
  503.  
  504.               kann die Größe des internen Eingabepuffers abgefragt werden.
  505.  
  506.  
  507.               10. Fehlerbehandlung und Fehlermeldungen:
  508.               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  509.  
  510.               Bei jedem Datenbankzugriff setzt die UNIT die globale Variable
  511.               "Error". Bei Fehlerfreiheit gilt "Error = 0", bei internen
  512.               Fehlern (z.B. angegebene Satznummer außerhalb des gültigen
  513.               Bereiches) gilt "Error < 0", bei DOS-Ein-/Ausgabefehlern (z.B.
  514.               Datei nicht gefunden) gilt "Error > 0".
  515.  
  516.               Sie können sich den zugehörigen Fehlertext wie folgt ausgeben
  517.               lassen:
  518.  
  519.                         WriteLn(ErrorText);
  520.  
  521.               Der Fehler wird so weit wie möglich durch die UNIT aufgefangen.
  522.               Ihr Programm wird jedoch nicht abgebrochen, um die Möglichkeit
  523.               zur Fehlersuche zu belassen.
  524.  
  525.               Folgende Fehler werden gemeldet:
  526.  
  527.               Error:  Bedeutung:
  528.               ------------------------------------------------------
  529.                  0    kein Fehler  (dBok = 0)
  530.                 -1    Feldname existiert nicht
  531.                 -2    Feld mit der angegebenen Nr. existiert nicht
  532.                 -3    dBase-Datei enthält keine Datensätze
  533.                 -4    dBase-Datei enthält keine Felder
  534.                 -5    Datensatz-Nummer nicht im gültigen Bereich
  535.                 -6    Datei nicht leer bei Hinzufügen von Feldern
  536.                 -7    keine dBase-Datei, dBase-Kennung falsch
  537.                 -8    keine dBase-Datei, mehr als FeldNrMax Felder
  538.                 -9    keine dBase-Datei,
  539.                       Header-Ende-Kennung $0D fehlt
  540.                -10    Feld mit dem angegebenen Namen existiert nicht
  541.                -11    zu viele Datenbanken geöffnet
  542.                -12    Datenbank bereits geschlossen
  543.                -13    Datenbank war nicht geöffnet oder ist bereits
  544.                       wieder geschlossen
  545.                -14    Datenfeld nicht vom Typ "N" oder "F"
  546.                -15    Datenbankname fehlt
  547.                -16    Indexdatei wurde nicht gefunden
  548.  
  549.