永发信息网

Delphi 连Oracle 之后的错误!请高手看看!

答案:2  悬赏:30  手机版
解决时间 2021-07-16 21:18

使用TOraSession执行Sql语句 执行到300次的时候

就会报 maximun open cursors exceeded

如何解决!

别说用改配置文件的方法来暂时性的解决问题!

最佳答案

这个和oracle的设置以及你的使用方式有关。


在Oracle中,有个参数是设定同一个会话(也就是connection)中最大能够开启多少资源,默认值是300


你现在的情况就是超出了这个限制。


我个人认为应该是你查询以后没有关闭游标的问题,OraSession我没有用过,在Ado里面,最起码应该把Query或Table在用完了以后close掉



----------------------------


子线程数量有多少?还有就是子线程中是否关闭了游标?


这两者都有可能造成游标数超出300

全部回答
Delphi连接Oracle数据库的三种方式
本文概括性的介绍在Windows XP环境中Delphi7.0连接Oracle数据库的3种方式,它们分别是BDE、ADO、DbExpress。 这3种方式都需要安装Oracle客户端并配置tnsnames.ora文件。将Oracle客户端安装到本地计算机,打开c:\oracle\…\network\admin\tnsnames.ora文件,按照所要访问的数据库的配置,添加下面的内容 TEST =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.2.134)(PORT = 1521)) ) (CONNECT_DATA =(SID = test) ) ) 其中HOST,PORT,SID的值与所访问的数据库配置有关。 1传统的BDE BDE(Borland Database Engine)使用别名引用数据库文件或目录,需要在客户的计算机上与应用程序一起安装BDE。连接步骤: 1.1 安装BDE。在Delphi7.0的安装盘中含有BDE安装程序,按照默认方式安装的计算机,并配置好所要访问的Oracle数据库的别名,例如:test。 1.2 在Delphi7.0的程序中连接Oracle数据库。将BDE选项卡中的TDatabase组件将放入应用程序的主窗体,双击TDatabase,出现TDatabase组件编辑器,输入数据库别名、用户名和密码,点击OK按钮。在对象检视器中将TDatabase组件的LoginPrompt属性值设为False(避免出现登陆对话框,下同),将TDatabase组件的Connected属性值设为True,这样就成功的连接到Oracle服务器了。 1.3 使用TTable组件访问数据。将TTable组件放置到应用程序的主窗体,设置其DatabaseName属性值为test,再放入TdataSource和TDBGrid组件,接下来的工作就与开发本地数据库应用程序相同了。 2 Microsoft的ADO ADO(ActiveX Data Objects)是Microsoft的高级接口,基于Microsoft的数据访问OLEDB技术而实现。连接步骤: 2.1 在Delphi7.0的程序中连接Oracle数据库。将ADO选项卡中的TADOConnection组件放入应用程序的主窗体,双击TADOConnection,在出现的对话框中点选Use Connection String,在其下面的框中输入:Provider=MSDAORA.1;User ID=test;Data Source=test;Persist Security Info=False,其中test为Oracle服务器名和用户名。在对象检视器中将TADOConnection组件的LoginPrompt属性值设为False,将TADOConnection组件的Connected属性值设为True,这样就成功的连接到Oracle服务器了。 2.2 使用TADOCommand组件访问数据。将TADOCommand组件放置到应用程序的主窗体,设置其Connec tion属性值为Connection1,点击其CommandText属性值,在出现的对话框中输入SQL查询语句(本文以查询数据为例),再放入TdataSource和TDBGrid组件,接下来的工作就与开发本地型数据库应用程序相同了。 3 新一代夸平台的数据库访问引擎DbExpress DbExpress是一组新的组件,技术和驱动程序,具备了夸平台的能力,让程序员能够开发出更有效率的数据库应用程序,因此会成为以后Delphi和Kylix的核心数据访问技术。连接步骤: 3.1 在Delphi7.0的程序中连接Oracle数据库。将 dbExpress选项卡中的TSQLConnection组件放入应用程序的主窗体,双击TQLConnection,出现TSQLConnection组件编辑器,选择Oracle作为Driver Name,输入数据库名称、用户名和密码,点击OK按钮。在对象检视器中将TSQLConnection组件的LoginPrompt属性值设为False,将TSQLConnection组件的Connected属性值设为True,这样就成功的连接到Oracle服务器了。   3.2 使用TSQLDataSet组件访问数据。将TSQLDataSet组件放置到应用程序的主窗体,设置其SQLConne ction属性值为SQLConnection1,点击其CommandText属性值,在出现的对话框中输入SQL查询语句(本文以查询数据为例),再放入TdataSource和TDBGrid组件,接下来的工作就与开发本地数据库应用程序相同了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
问道1级3天技满成长猪猪多少钱?《老区》
火属性攻击的最低级的是什么刀?
公狗被车撞后下体流脓
苹果电脑下装XP系统 路由加密不能上
三星I900装什么导航软件不会花屏能全屏不拉伸
虎皮兰发黄是什么原因
雷州有没有昌大昌
求DN漫畫版全集
QQ红钻怎么点亮
cad中如何删除虚线
英华ok639开机密码忘了!怎么解锁?
椰子樹怎麼種的?
术士小鬼和地狱犬的光环数值是多少?
现在还是否有外星人存在
梦幻HS孩子打高级吸血有什么不好的?
推荐资讯
魔域上法师多少级可以练火旋风啊
怎么发强制技能?
橙汁和可乐,哪个对人体有好处?
七彩虹的主板行不行?
狂战太刀流和巨剑流哪个厉害?
实况2010怎么不能调高分辨率
广信手机F85型号初始密码是多少?
谁能帮我解答一下离婚后孩子的探视权的问题
求一段街舞视频
怎样画好暗面、亮面、灰面、高光、反光、还有
非官方QQ七钻加会员包月大概多少?
螺丝zp4.8x70x6.8克材料成本是多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?