1. Erstellen Sie eine temporäre Tabelle
Die Dateneingabe ist ein unvermeidlicher Link bei der Entwicklung von Datenbankprogrammen. In der Client/Server -Struktur muss der Client möglicherweise eine Stapel von Daten eingeben, bevor sie in die Backend -Datenbank des Servers eingereicht werden Löschen Sie die Daten, nachdem Sie übermittelt wurden. Die Vorteile dieser Methode sind: Verbesserung der Input -Effizienz und Reduzierung der Netzwerkbelastung.
Da die Datenmenge, die von einem Benutzer gleichzeitig eingegeben wurden, im Allgemeinen gering ist (nicht mehr als wenige hundert Datensätze), können temporäre Tabellen im Speicher eingebaut werden, was die Verarbeitung schneller macht.
Methode 1: Verwenden Sie die Abfragesteuerung (TQuery)
Schritt 1: Setzen Sie die Abfragesteuerung (TQUERY) in das Formular und setzen Sie die angeschlossene Datentabelle.
Schritt 2: Machen Sie die TQuery.
TQuery
Schritt 3: Fügen Sie nach der ursprünglichen SQL -Anweisung einen Where -Substatement hinzu und bitten Sie, dass das SQL -Abfrageergebnis nach dem Hinzufügen von Substatement leer ist.
Zum Beispiel:
Wählen Sie Biolife. "Spezies no", Kategorie, Common_Name, Biolife. "Spezies Name", Biolife. "Länge (cm)", Länge, Notizen, Grafik
Von "biolife.db" biolife
wobei Biolife.Category = 'A' und Biolife.Category = 'B'
Auf diese Weise wird die temporäre Tabelle festgelegt.
Methode 2: Erstellen Sie temporäre Tabellen mit Code
Der Code ist wie folgt:
Funktion createTableInmemory (const afielddefs: tfieldDefs): tdataset;
var
Versuchbar: tclientDataset;
Beginnen
Versuchbar: = nil;
Ergebnis: = nil;
Wenn Afielddefs $#@60; $#@62; NIL dann
Beginnen
versuchen
Versuchbar: = tclientDataset.create (Anwendung);
TUPTABLE.FIELDDEFS.Sign (AFIELDDEFS);
Versuchbar.Createdataset;
Ergebnis: = (als tdataset vorgezogen);
Außer
Wenn vorgefertigbar $#@60; $#@62; NIL dann
Versuchbar.Free;
Ergebnis: = nil;
erheben;
Ende
Ende
Ende;
Verwenden Sie es im Programm wie folgt:
Procedure tform1.button1click (Absender: tobject);
var
Adataset: tdataset;
Beginnen
Adataset: = tdataset.create (self);
mit adataset.fieldDefs tun
Beginnen
Add ('name', ftstring, 30, false);
Add ('ue', ftinteger, 0, falsch);
Ende;
mit DataSource1 tun
Beginnen
Datensatz: = createTableInmemory (adataset.fieldDefs);
Dataset.open;
Ende;
Adataset.free;
Ende;
Die Erstellung der temporären Tabellen ist abgeschlossen.
Methode 1 ist einfach zu bedienen, aber da die Abfragesteuerung zum Abfragen der Server -Backend -Datenbank beim Löschen von Daten verwendet wird, ist die Geschwindigkeit etwas langsamer und für Situationen, in denen jedes Feld in einer temporären Tabelle mit mehreren Daten zusammengesetzt wird, nicht geeignet ist Tischfelder. Methode 2 verfügt über eine breite Palette von Anwendungen und schnelle Geschwindigkeit, erfordert jedoch ein Schreibcode. (Die Nutzungsmethode von tfieldDefs im Code ist sehr einfach. Siehe Delphis Online -Hilfe).
2. Konfigurieren Sie die Data Engine (BDE, SQL Link)
Beim Verteilen von Datenbankprogrammen müssen Sie eine Datenmotor (BDE, SQL -Link) tragen. Nachdem der Client das Programm installiert, müssen Sie auch eine Datenmotor konfigurieren, z. B. Benutzername, Kennwort (Passwort) usw. Wenn man manuell konfiguriert ist, ist die Arbeitsbelastung relativ groß (abhängig von der Anzahl der Clients).
[Idapi alias]
useName = sysdba
Passwort = MasterKey
Nach der Installation des Programms wird die Data Engine automatisch konfiguriert.
3. Verwenden Sie Funktionen in der Interbase -Datenbank
Programmierer fühlen sich möglicherweise unpraktisch (nur vier), wenn sie Interbase als Hintergrunddatenbank verwenden, wenn sie zu wenige Funktionen (nur vier) bereitstellen, und können nicht problemlos komplexe gespeicherte Verfahren schreiben. Interbase selbst kann keine Funktionen schreiben, aber es kann externe Funktionen (Funktionen in DLL genannt) verwenden. Das folgende Beispiel zeigt, wie die Substr -Funktion in Interbase deklariert wird.
Deklarieren Sie externe Funktionssubstr
Cstring (80), Smallint, Smallint
Gibt Cstring zurück (80)
Eintrag_Point "ib_udf_substr" module_name "ib_udf"
Wo: module_name ist der Name der DLL und der Eintragung_Point der Funktionsname.
Es kann beispielsweise nach der Erklärung verwendet werden:
Wählen Sie Substr (Land) aus
aus Land
In diesem Beispiel wird die IBLOCAL -Datenbank verwendet, die mit der Delphi -Installation geliefert wird. Benutzer können auch Funktionen selbst schreiben, um die Interbase zu erweitern. Weitere Inhalte finden Sie in den datenbankbezogenen Artikelthemen oder