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:用于设定批操作时的列映射关系;

 

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