Delphi數據庫編程之BDE組件二(已不常用)

1.TDatabase組件

1.1 AliasName

用於描述連接所用的數據庫別名。

1.2 Connected

用於確定數據庫連接是否是活動的。

1.3 DatabaseName

用來指定DataBase組件所用的數據庫的名字。

1.4 Exclusive(只適用於Paradox或dBase)

確定當前的應用程序可否獨佔地訪問數據庫。

1.5 KeepConnection

確定在沒有數據集打開的情況下應用程序是否保持數據庫連接。

1.6 TransIsolation

確定BDE管理下的事務隔離等級。

tiDirtyRead:允許讀其他併發事務未提交的更新;

tiReadCommitted:允許讀其他併發事務提交的更新(默認);

tiRepeatableRead:只允許讀一次數據

1.7 CloseDataSets

關閉所有數據庫組件相關的數據集而不是採用與服務器斷開的方式。在關閉所有數據庫組件相關的數據集的同時與數據庫的連接也會斷開。(主要用在直接關閉數據集及與數據庫的連接而不需要重新連接的情況)

1.8 startTransaction、commit、roleback(用戶組件對數據庫事務的操作)

1.9 DataSets

提供數組形式存儲的Dataset數據集。

procedure TDataForm.INSERT_WithParam(Sender:TObject);
var
    SQLstmt : String;
    stmtParams : TParams;
begin
    //創建參數對象
   stmtParams := TParams.Create;
  try
    //激活連接
     Database1.Connected := true;
    //添加參數定義
     stmtParams.create(ftString,'StateParam',ptInput);
    //爲參數賦值
     stmtParams[0].AsString :='CA';
    //創建SQL語句
     SQLstmt := 'delete from Customer.db where state =(:StateParam)';
    //執行SQL語句
     Database1.Execute(SQLstmt,stmtParams,false,nil);
   finally
      //釋放動態產生的TParams對象
       stmtParams.Free;
   end;
end;

 

2.TSession組件

TSession組件用來在應用程序中管理一組數據庫連接。其有三種用法:1.標準用法;2.Paradox的多重網絡問卷;3.多線程數據庫應用程序。其主要屬性有:

2.1 Active

標誌TSession對象是否是活動的。如Active屬性設置爲真,則開始會話並觸發一個OnStartUp事件,並初始化NetFileDir、PrivateDir和ConfigMode屬性。

2.2 AutoSessionName

用來控制是否自動產生一個唯一的會化名(在多線程數據庫應用程序中可確保會化名的惟一性)

2.3 KeepConnections

確定是否創建一個臨時的TDataBase對象以保持同數據庫服務器的連接。

2.4 NetFileDir

確定包含BDE網絡控制文件PDOXUSRS.NET的目錄。

2.5 PrivateDir

確定存儲臨時表文件的目錄(爲BDE所用)。
2.6 Close

斷開所有databases和關閉所有session。

2.7 SessionName

指定一個唯一的會話名稱(該session能夠與database和dataset對象綁定)

常見的操作:

2.1 打開、關閉數據庫

var
  DemosDataBase :TDatabase;
begin
  DemosDataBase := Session.OpenDatabase('DBDEMOS');  //打開數據庫
 Session.CloseDatabase(DemosDatabase);  //關閉數據庫

2.2  確定和TSession對象關聯的TDatabase對象

var
    DB1 : TDataBase;
begin
    DB1 := Session.FindDataBase('DBDEMOS');
   if (DB1=nil) then
      DB1 := Session.OpenDatabase('DBDEMOS');
   if Assigned(DB1) and DB1.Connected then  //測試Assigned(DB1)是否爲nil
   begin
      DB1.StartTranslation;
      。。。
   end;
end;

2.3 建立會話對象

var 
   mySession : TSession;
begin
   mySession := TSession.create(Form1);
   with mySession do
   try
       SessionName := 'SecondSession';
       KeepConnections := False;  
       Open;  //啓動會話並把它作爲當前會話
       ....
   finally
       mySession.Free;
   end;
end;


3. TSessionList

用於管理一個或多個BDEsession。其主要屬性有:

3.1  Count

指定可用session的數量。

3.2  CurrentSession

返回一個指向當前session的指針(TSession)

3.3  Sessions

列出所有可用的session。

var

I: Integer;
begin
  for I := 0 to Sessions.Count - 1 do
    Sessions[I].KeepConnections := False;
end;

3.4 FindSeesion

在session列表裏查找指定的session(根據SessionName來查找),返回的是一個TSession對象。

3.5 GetSessionNames

在Session列表中得到一系列可用的session的名稱。

3.6 OpenSession

使一個存在的session可用或創建一個新的session並使其可用。

 4. TBatchMode組件

該組件用於複製數據庫表的結構和數據,通常用於將整個數據庫從一種格式轉換到另一種格式。具體用途有三種:1.將一個數據集中的記錄添加到另外一個數據庫的表格中;2.從一個數據庫的表格中刪除數據集中的記錄;3.複製數據集,以創建新的數據表或覆蓋已存在的表。

4.1 mode

用於確定期望的操作方式:1.batAppend(將記錄追加到目標表);2.batUpdate(使用源表中的匹配記錄更新目標表,其更新基於目標表當前的索引);3.batAppendUpdate(若目標表中存在匹配記錄,則更新他;否則將記錄追加到目標表中);4.batCopy(基於源表的結構創建目標表,若目標表已存在,則將被刪除和重新創建);5.batDelete(刪除目標表和源表相匹配的記錄)。

AbortOnKeyViol:當其值設置爲true,則操作引起目標表中數據完整性衝突和鍵衝突時就會自動取消批操作;

AbortOnProblem:當其值設置爲true,則源表中的字段類型和目標表中的字段類型不匹配時取消批操作;

CommitCount:用於確定字一次提交發生時處理多少條記錄;

ChangedTableName:用於確定一個本地Paradox表(用於存放在批操作中目標表中被修改的記錄的拷貝);

Mappings:用於設定批操作時的列映射關係;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章