Sowohl die Tabellensteuerung (Komponente) als auch die Abfragesteuerung in Delphi müssen über eine Datenbank -Eigenschaft verfügen. Die Datenbankname -Eigenschaft kann verwendet werden, um den von der Steuerung verwiesenen Datentabellenpfad anzugeben. Es gibt zwei Möglichkeiten, den Pfad für den Eigenschaftsdatenbankname festzulegen: Die erste Methode besteht darin, den Pfad direkt einzugeben, in dem sich die Datentabelle befindet, und die andere Methode besteht darin, die Datenbank alias (alias) zu verwenden. In Delphi wird der Datenbank -Alias in der Datenbank -Engine (BDE) eingestellt, und ein Alias entspricht einem Dateipfad. Sie können Alias wie folgt definieren: Ein Alias ist eine Zuordnung von Dateipfaden und ist die Abkürzung von Dateipfaden. Daher sind die Verwendung von Datenbank -Alias im Eigenschaftsdatenbanknamen und die Verwendung von Dateipfaden im Wesentlichen gleich, die beide als Stammpfad für das Finden der Datentabelle dienen. Bei der Datenbankanwendungsdesign, wenn es jedoch viele Steuerelemente und Abfragesteuerungen gibt, ist es sehr effizient, bequem und nicht anfällig für Fehler. Der Grund ist offensichtlich: Einerseits können Aliase direkt in der Liste zugegriffen werden, ohne wie der Dateipfad Eingaben von der Tastatur zu erfordern. .
Darüber hinaus können die SQL -Anweisungen der Tabellenelemente der Tabellensteuerung und der Abfragesteuerung die Pfadinformationen der Datentabelle enthalten. Da die Situation der Abfrage- und Tabellenkontrollen sehr ähnlich ist, ist Folgendes nur die Beschreibung der Tabellenkontrollen. Diese Pfadinformationen können entweder ein vollständiger Pfad oder der nachfolgende Teil eines vollständigen Pfades sein. Wenn Sie beispielsweise die Tabelleneigenschaft einer Tabellensteuerung zugewiesen haben, können Sie ihm C:/Delphi/Demo1/Data/Abonnent zuweisen, oder Sie können ihnen Daten/Abonnenten zuweisen. Das heißt, ein absoluter Weg kann verwendet werden oder ein relativer Weg kann verwendet werden.
Um die Programmportierung zu erleichtern, müssen Sie normalerweise nur den Pfad der Datentabelle im Eigenschaftsdatenbankname angeben und keine Pfadinformationen in TableName aufnehmen. Geben Sie im Allgemeinen nicht den vollständigen Pfad im Tischlunnamen des Eigenschaft an.
Die Migration von Datenbankanwendungen ist ein wichtiges Problem. Denn in einer Datenbankanwendung zum Zugriff auf eine Datenbank- oder Datentabelle muss der Pfad zur Datendatei beteiligt sein. Im Allgemeinen muss die Datenbankanwendung für die Verwendung nach der Entwicklung auf andere Maschinen portiert werden, sodass sich der Datendateipfad bei der Ausführung der Datenbankanwendung wahrscheinlich von der Entwicklungszeit unterscheidet. Daher muss der Pfad der Datendatei für die Systemmigration effektiv verwaltet werden. Im Folgenden finden Sie drei Methoden zum Verwalten von Datendateipfaden. 1. Erstellen Sie die Datendatei in einem Unterverzeichnis des Verzeichnisses, in dem sich die Anwendung befindet. Der spezifische Prozess ist (1) für die Bequemlichkeit des Designs, ein Datenbank -Alias kann während des Designs verwendet werden, und der Datenbank -Alias verweist auf den Pfad, auf dem sich die Anwendung befindet. Fügen Sie den Unterfassamamen der Table -Eigenschaft der Tabellensteuerung hinzu. (2) Setzen Sie vor der Ausgabe der Anwendung alle Tabellensteuerelemente und Abfrageberätigungsmerkmale auf False und löschen Sie alle Zeichen in der Attributdatenbank (d. H. Leer). Standardmäßig ist das aktuelle Verzeichnis, in dem die Anwendung ausgeführt wird, das Verzeichnis, in dem sich die Anwendung befindet. Wenn der Prozess wie Chdir nicht in der Anwendung aufgerufen wird, um das aktuelle Verzeichnis zu ändern, müssen der dritte Schritt nicht ausführen, da sonst die dritte Schrittverarbeitung durchführen.
(3) Im OnCreate -Ereignis des Formulars, bei dem die Tabellensteuerung und Abfragesteuerung verwendet wird, weisen Sie den Pfad zu, an dem die Anwendung jeder Tabellensteuerung und Abfrageregelung auf dem Formular gefunden wird. Tabelle 1.Databasename: = extractFilepath (application.exename); Verwenden Sie Konfigurationsdateien, um Datenpfade zu speichern. Diese Methode schreibt Datenbankpfadinformationen während der Installation des Anwendungssystems oder in der ersten Ausführung in die Konfigurationsdatei. In Zukunft werden die Pfadinformationen aus der Konfigurationsdatei ausgelesen. Das Lesen und Schreiben von Konfigurationsdateien werden mithilfe von Methoden implementiert, die von der Klasse Tinifile, der Klasse TEGINIFILE und der Klassen -Tregistry bereitgestellt werden. Die Grundidee dieser Methode ist: (1) Verwenden Sie zum Entwurf den Datenbank -Alias während des Designs. (2) Setzen Sie vor der Ausgabe der Anwendung alle Tabellensteuerelemente und Abfrageberätigungsmerkmale auf False und löschen Sie alle Zeichen in der Attributdatenbank (d. H. Leer).
(3) Im OnCreate -Ereignis des Formulars, bei dem Tabellensteuerung und Abfragesteuerungen verwendet werden, weisen Sie den Pfad zu, in dem sich die Anwendung auf jede Tabellensteuerung und Abfragekontrolle auf dem Formular befindet.
Tabelle 1.Databasename: = extractFilepath (application.exename);
3. Verwenden Sie den Datenbank -Alias, um Datenbankpfade zu speichern
Um die Sitzung zu verwenden, um einen Datenbank -Alias dynamisch zu erstellen, müssen Sie dem Formular eine Session1 -Komponente hinzufügen. Was wir verwenden werden, wenn Datenbank -Alias dynamisch erstellt und gelöscht werden, ist eine von der Einheit definierte globale Sitzungsvariable und nicht die Session1 -Komponente, die dem Formular hinzugefügt wurde. Während der Erstellung des Testbanksystems haben wir die Session1 -Komponente auf das Formular gelöscht, was keinen Einfluss auf die Implementierung der Funktion hat.
Der folgende Code zeigt, wie ein Alias mit dem Namen "Teilnehmer" erstellt wird. Der Datenbankpfad lautet "e:/subscriber" und sein Datenbanktyp ist Paradox.
Session.configMode: = cmall; // Geben Sie den Konfigurationsmodus der Sitzung an
Session.AddStandardalias ('net', 'e:/subscriber', 'paradox');
Wenn Sie einen Alias löschen müssen, müssen Sie zuerst überprüfen, ob der Alias existiert. Der folgende Code zeigt, wie Sie überprüfen, ob der Datenbank -Alias "Abonnent" vorhanden ist, und wenn ja, löschen Sie sie.
Variable definieren: var stralias: tstringlist;
Code: Stralias: = tstringlist.create; // generieren Sie eine Instanz der TStringlist -Klasse
Session.getaliasnames (Stralias); // Erhalten Sie derzeit alle Datenbank -Alias
// Finden Sie, ob der Abonnent existiert.
if (stralias.indexof ('subscriber') <> -1) dann
Beginnen
Session.deletalias ('Abonnent'); // Löschen Sie den Datenbank -Alias -Abonnenten
Session.SaveConFigFile;
Ende;