1.データベースエイリアスのステータス
Delphiの組み込みデータベースエンジンBDE(Borland Database Engine)は、強力なデータベース処理機能を提供し、BDEはDelphiのデータベース関数の中心部分です。
スタンドアロンマシンによってのみ使用されるローカルデータベースを例として使用すると、DelphiプログラムはBDEを介してデータベースデータのアクセスを直接制御できます。このアクセスコントロールは、BDEパラメーターの構成に基づいています特定のデータベーステーブル。したがって、データベーステーブルを作成する場合、1つはBDEを介して存在しない場合、対応するデータベースエイリアスを最初に検出する必要があります(つまり、DataBasename)データベースエイリアス(つまり、データベースネーム)では、確立する必要があるデータベーステーブルがあるかどうか、存在しない場合は確立されます。このようにして、元の表のデータは損失から保護されています。
2。セッションコンポーネント:DelphiデータベースプログラムとBDEの間のインターフェース
Delphiは、データベースアプリケーションのセッションコンポーネントを自動的に提供します。これは、BDEとのアプリケーションのインターフェイスの鍵です。以下は、BDEインターフェイスに関するセッションコンポーネントのいくつかのプロセスのプロトタイプの説明です。
1.GetAliaSNames(リスト:TSTRINGS)。
2.AddStandAliAS(const Name、Path、DefaultDriver:String);たとえば、CNTSSAMPという名前のエイリアスを追加し、デフォルトのデータベースドライバーはパラドックスで、ストレージパスはC:/DELPHP11です。
session.addstandardalias(cntssamp、c:/delphp11、paradox);
3.GetTableNames(const databaseName、パターン:string、extensions、systemtables:boolean; list:tstrings);
4.SaveConFigFile;
さらに、list.indexof(指定された文字列)の値を使用して、文字列リストに必要な文字列があるかどうかを判断して、新しいデータベースエイリアスとデータベーステーブルを確立する必要があるかどうかを判断します。
3。例
フォームで次のコードを作成します。 CNTSSAMPではない場合は、テーブルを自動的に作成します。
手順tform1.formcreate(sender:tobject
var
AP:tstringlist;
回答:整数;
始める
AP:= TSTRINGLIST.CREATE;
session.getaliasnames(ap);
if(ap.indexof(cntssamp)= -1)then {エイリアスが存在するかどうかを判断}
始める
回答:= application.messageBox(エイリアスCNTSSAMPは存在しません、それは今作成されていますか?、BDE情報ウィンドウ、MB — OKCANCEL); {cngzsampという名前のデータベースエイリアスを追加}
回答= idcancelの場合
始める
ap.free;
出口;
終わり;
session.addstandardalias(cntssamp、c:/delphp11、paradox);
session.saveconfigfile;
終わり ;
ap.clear; {エイリアスのすべてのテーブル名のリストを取得}
SESSION.GETTABLENAMES(CNTSSAMP 、、 false、false、ap);
if(ap.indexof(tsk)= -1)then {テーブルが存在するかどうかを判断}
始める
回答:= application.messageBox(テーブルTSKはエイリアスCNTSSAMPには存在しません。今作成されていますか?、テーブル情報ウィンドウ、MB -OKCANCEL);
回答= idcancelの場合
ap.free;
出口;
終わり;
Table1を使用してください
始める
アクティブ:= false;
Databasename:= cntssamp;
TableName:= tsk;
Tabletype:= ttparadox;
fielddefsを使用します
{add field}
クリア;
追加(sh、ftstring、30、false);
add(sm、ftstring、30、false);
add(cbs、ftstring、20、false);
add(cbrq、ftdate、0、false);
add(ys、ftinteger、0、false);
終わり;
indexDefsを使用します
{indexを追加}
clear;
add(shsy、sh、[プライマリ、ixunique]);
終わり;
createTable {Create Table}
終わり;
終わり ;
ap.free;
終わり;