Delphi连接Oracle控件

Delphi连接Oracle控件

安装ODAC控件包

安装后注意将Source目录添加到Library下,否则会提示"File not found: 'DBAccess.res'"的错误

 

组件介绍:

TOraSession

设定与控制与Oracle数据库的连接。

User、Password、Server属性设置好以后,你可以通过调用Connect方法或者设定Connected属性为True来建立一个与数据库的连接。

ODAC包含了以下组件:

所有要有数据访问的组件,像TOraQuery、TOraSQL、TOraScript,必须有他们的被赋予一个TOraSession实例的Session属性。

ODAC有两种连接Oracle的方式:在 Client 模式下,使用Oracle Client 软件, 或者在 Direct 模式下,通过 TCP/IP连接,这种方式发布程序的时候不需要客户端安装Oracle Client 软件。

推荐使用Direct模式

方法:在OraSession的Option中选择Direct,连接的服务器写为“IP:端口:全局服务器名”,例如:

OraSession1.Options.Direct:=True

OraSession1.Username:='system';

OraSession1.Password:='888';

OraSession1.Server:='192.168.10.23:1521:MyDataBase';

OraSession1.Connected;

TOraQuery

利用DML SQL语句更新数据库的表。将SQL语句放入SQLInsert,SQLDelete和SQLUpdate属性。

SQLInsert,SQLDelete,SQLUpdate,SQLLock,SQLRefresh属性支持自动绑定参数。要获得操作之前的字段值可以在字段名前加“OLD_”前缀。

如果没有设定SQLInsert,SQLDelete,SQLUpdate属性TOraQuery,TOraQuery会执行只读访问。

TSmartQuery

TSmartQuery是TOraQuery的另一种选择。它通过动态生成SQL语句,提供对记录insert,delete和update的操作。你也可以履行记录的自动阻塞(blocking),他们的修改前检查、提交后刷新。

为了修改TSmartQuery的记录集,在SQL属性中的SELECT语句应该获得更新表的RowID。当KeyFields属性被指定时,TSmartQuery也可被修改。TSmartQuery只能修改一个Oracle的表。所修改的表是UpdatingTable属性中的表或者是在From子句中的第一个表。

为了编辑Dept表中的数据,你可以在SQL属性中写:

SELECT D.*,D.ROWID FROM Scott.Dept D

ODAC包含了以下组件:

TOraSession:控制服务连接;

TOraQuery:执行查询,操作记录集,灵活地更新数据库表;

TSmartQuery:与TOraQuery功能类似,可自动创建Insert、Delete、Update查询,自动锁定及更新记录;

TOraSQL:执行SQL语句,PL/SQL块,存储过程;

TOraPackage:允许执行包中的过程及函数以及变量;

TOraTable:允许不需要使用SQL语句来读取及更新单个表;

TOraStoredProc:执行存储过程和函数,允许编辑游标并可作为参数返回;

TOraNestedTable:控制嵌套表数据;

TOraProvider:提供从客户数据集进行数据及应用更新;

TOraScript:执行SQL及PL/SQL语句;

TOraAlerter:允许在两个会话中传送消息;

TOraLoader:快速装载Oracle数据库;

TOraSQLMonitor:允许监视执行基于ODAC应用程序中的动态SQL语句;

TOraErrorHandler:传送错误信息;

TBDESession:允许将ODAC集成到基于BDE的应用程序中;

TConnectDialog:用来输入用户名,口令及服务名;

TCRDBGrid:增强的TDBGrid,提供可视化的数据过滤及增量查询;

TVirtualTable:数据存储在内存中。    

posted @   蛤蜊皮  阅读(414)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示