永发信息网

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

答案:2  悬赏:30  手机版
解决时间 2021-07-16 21:18
  • 提问者网友:浮克旳回音
  • 2021-07-16 04:28

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

就会报 maximun open cursors exceeded

如何解决!

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

最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-07-16 04:56

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


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


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


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



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


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


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

全部回答
  • 1楼网友:像个废品
  • 2021-07-16 06:19
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组件,接下来的工作就与开发本地数据库应用程序相同了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯