ODAC使用2 —— TOraDataSource组件

既然要搬家,就要逐步把原来blog中用得到的内容慢慢搬过来。

 

        由于工作需要,现在要学习在C++ Builder中使用ODAC(Oracle Data Access Components)的数据库操作,因为我一直以来都是做Java方面工作的,所以对C++,尤其是C++ Builder不是太熟悉。

        但是,Google了一下,现在网上有关ODAC使用的内容非常少(不知道是什么原因,在网络上C++的资源要比Java资源少得多,有知道资源朋友推荐一下,谢谢)。

        后来,对照了部分ODAC组件和C++ Builder自带数据库组件的方法,发现一个神奇的问题,ODAC组件和C++ Builder自带数据库组件的方法大部分是类似的,于是我找来一本《C++ Builder 6程序设计教程》(陆为中 刘文亮 等 编著,第7章7.3数据访问组件)。

        ODAC使用的文章主要以《C++ Builder 6程序设计教程》为参考,甚至摘录部分内容。

整理一下,加强记忆,方便以后查阅。

名词:
        数据集组件:通过设置其属性能够连接数据库,如:TOraQuery、TOraTable、TOraStoredProc组件;
        数据控制组件:略

TOraDataSource组件:
        TOraDataSource组件联系数据集组件和数据控制组件;

1.属性说明

        AutoEdit属性
        AutoEdit属性用于控制用户是否能对与之连接的数据集中的数据进行修改。

        DataSet属性
        上面说过的“TOraDataSource组件联系数据集组件和数据控制组件”,这个DataSet属性就是指定数据源组件引用哪个数据集组件的。
该属性可以在程序设计时指定,也可以在程序运行时赋值。

        Enabled属性
        Enabled属性控制与TOraDataSource组件相连的数据控制组件是否显示数据。Enabled属性值为true时,数据控制组件显示数据;Enabled属性值为false时,数据控制组件则不显示任何数据。
        Enabled属性默认值为true。

        State属性
        State属性返回与TOraDataSource组件相连的数据集组件的当前状态。

        ODAC使用2 —— TOraDataSource组件

        当Enabled属性为false或者没有指定DataSet属性时,无论数据集组件的实际状态如何,State属性总是为dsInactive。否则,State属性值与数据集的当前状态相符。

2.方法说明
        Edit方法,该方法允许用户对与该数据源组件相关联的数据库表进行编辑修改。Edit方法首先检查AutoEdit的属性值是否为true,State 属性是否处于dsBrowse状态。然后,再调用数据集Edit方法。检查这些状态的目的是保证数据集组件处于支持编辑的状态。

3.事件说明
        OnDataChange :暂不做描述
        OnStateChange :暂不做描述
        OnUpdateData :暂不做描述

例子:

        新建一个Application项目,在Form1中一个TLabel、三个按钮,再添加TOraSession、TOraQuery、TOraDataSource三个对象;

        双击TOraSession对象,在填出窗口中分别填入Username、Password、Server、Home,然后关闭窗口;设置三个按钮分别为连接、断开和关闭;

        双击连接按钮,写入以下内容:

void __fastcall TForm1::connectClick(TObject *Sender)
{
        OraSession1->Connect();
        OraQuery1->Session = OraSession1;
        OraQuery1->SQL->Clear();
        OraQuery1->SQL->Add("select a,b,c from test");
        OraQuery1->Open();
        OraDataSource1->DataSet = OraQuery1;
}
 


        双击断开按钮,写入以下内容:

void __fastcall TForm1::disconnectClick(TObject *Sender)
{
        OraSession1->Disconnect();
}

 

        双击关闭按钮,写入以下内容:

void __fastcall TForm1::Button3Click(TObject *Sender)
{
        Form1->Close();      
}

 

        选择TOraDataSource对象,在左边的Object Inspector窗口选择Events卡片,双击OnStateChange,写入以下内容:

void __fastcall TForm1::OraDataSource1StateChange(TObject *Sender)
{
      Label1->Caption = OraDataSource1->State;
}

 

        点击“F9”运行。

你可能感兴趣的:(oracle,C++,c,C#,C++Builder)