首页 » Oracle » C++Builder下如何使用UniDAC控件访问ORACLE数据库

C++Builder下如何使用UniDAC控件访问ORACLE数据库

原文 http://blog.csdn.net/dlboy2018/article/details/78994084

2018-01-08 02:01:09阅读(556)

(同一个世界,同一个梦想,交流学习C++Builder XE10,传承c++builder的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。)

UniDAC数据库控件是一个通用的数据库访问控件,支持多线程,支持当前流行的所有数据库,最大的优点是发布时不需要打包数据库驱动。软件及版本:C++Builder 10.2.2 tokyo,ORACLE11g

一、安装配置UniDAC

1、(32位)将压缩包解压或者拷贝到C:\ProgramFiles (x86)\Embarcadero\Studio\19.0\UniDAC目录下,运行C:\ProgramFiles (x86)\Embarcadero\Studio\19.0\UniDAC\Source\Delphi25下的make.bat

 (64位)将压缩包解压或者拷贝到C:\Program Files\Embarcadero\Studio\19.0\UniDAC目录下,运行C:\ProgramFiles\Embarcadero\Studio\17.0\UniDAC\Source\Delphi25下的make.bat

编译最后的几个报错提示可以回车忽略.

2、(32位)将C:\Program Files\Embarcadero\Studio\19.0\UniDAC\Bin\Delphi25\Win32下的bpl文件拷贝到C:\Windows\system32下

(64位)将C:\Program Files (x86)\Embarcadero\Studio\19.0\UniDAC\Bin\Delphi25\Win32下的bpl文件拷贝到C:\Windows\SysWOW64下

3、XE10新建项目,project-》options,分别添加lib和include目录

(32位)

C:\Program Files(x86)\Embarcadero\Studio\19.0\UniDAC\Include\Delphi25\Win32

C:\Program Files(x86)\Embarcadero\Studio\19.0\UniDAC\Lib\Delphi25\Win32

 (64位)

C:\Program Files\Embarcadero\Studio\19.0\UniDAC\Include\Delphi25\Win32

C:\Program Files\Embarcadero\Studio\19.0\UniDAC\Lib\Delphi25\Win32

4、Component-》Installpackages添加bpl文件

(64位)在C:\Windows\SysWOW64目录下

(32位)在C:\Windows\System32目录下

 dclcrcontrols250.dpl

dcldac250.bpl

dclunidac250.bpl

dclunidacfmx250.bpl

二、创建项目添加控件

定义全局变量

AnsiString dbIp="22.36.12.17",dbSid="ORCL",dbUser="test",dbPass="test",dbPort="1521",mySql,rowId;

1、主窗口命名为FormMain,摆放UniConnection、UniQuery、UniDataSource、OracleUniProvider、DBGrid、Button控件.

C++Builder下如何使用UniDAC控件访问ORACLE数据库

DBGrid1的DataSource设为UniDataSource1

UniDataSource1的DataSet设为UniQuery1

UniQuery1的Connection属性设为UniConnection1

UniConnection1的ProviderName设为Oracle,LoginPrompt设为False

参考前面“一、3”:XE10新建项目,project-》options,分别添加lib和include目录

2、在FormMain的OnActivate事件中打开数据库

void __fastcall TFormMain::FormActivate(TObject *Sender)
{
UniConnection1->Disconnect();
UniConnection1->ProviderName="Oracle";
UniConnection1->SpecificOptions->Add("direct=true");
//UniConnection1->SpecificOptions->Add("Charset=ZHS16GBK");
UniConnection1->Username=dbUser;
UniConnection1->Password=dbPass;
UniConnection1->Server=dbIp+":"+dbPort+":"+dbSid;
//ShowMessage(UniConnection1->Server);
if(!UniConnection1->Connected)
    {
    try
        {
        UniConnection1->Connect();
        myLog("链接数据库["+dbIp+"]成功!");
        }
    catch(...)
        {
        myLog("因链接数据库["+dbIp+"]失败!");
        return;
        }
    }

}

3、向表格中插入数据

//---------------------------------------------------------------------------
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
AnsiString myName="张三";
int myAge=78;

UniQuery1->Close();
UniQuery1->SQL->Clear();

mySql="insert into mytable values(:p1,:p2)";

UniQuery1->SQL->Add(mySql);

UniQuery1->ParamByName("p1")->Value=myName;

UniQuery1->ParamByName("p2")->Value=myAge;
UniQuery1->ExecSQL();

if(UniQuery1->RowsAffected>0)
    {
    ShowMessage("插入成功!");
    }
}

4、查询数据

//---------------------------------------------------------------------------
void __fastcall TFormMain::Button2Click(TObject *Sender)
{
UniQuery1->Close();
UniQuery1->SQL->Clear();

mySql="select * from mytable";

UniQuery1->SQL->Add(mySql);

UniQuery1->Open();


}

C++Builder下如何使用UniDAC控件访问ORACLE数据库

三、已有项目升级

配置好以后打开已有项目编译,如果遇见“Can not find dac240.lib ”之类找不到原有旧版本的库文件时,可以用UE等文本编辑器,打开项目主文件XXX.cbproj,查找报错信息中找不到的各个lib文件,将文件名由xxx240.lib修改为xxx250.lib


最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹