首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

问题-delphi无法编辑oracle表

2023-11-09 来源:花图问答

在一次开发过程中,遇到了delphi无法编辑oracle表。

问题原因:原来是自己误操作控件的属性了。

问题处理: 

OraQuery1.ReadOnly:=False;

OraQuery1.LocalUpdate:=True;

问题-delphi无法编辑oracle表

标签:

小编还为您整理了以下内容,可能对您也有帮助:

oracle存储过程无法编译、表数据无法修改

在对数据的增、删、改操作时,有时会发现一直操作不成功,原因可能是表被锁死;或者存储过程无法编译。
--存储过程无法编译 SELECT V.OSUSER, V.PROCESS,V.PROGRAM,v.MACHINE,V.TERMINAL, V.MODULE,V.USERNAME,V.STATUS,V.SID,V.SERIAL#, 'alter system kill session ''' || V.sid || ',' || V.SERIAL# || ''';' as KILL_SESSION, V.PADDR FROM V$SESSION V WHERE V.USERNAME LIKE '%用户名%' AND V.STATUS in( 'INACTIVE','ACTIVE') and v.PROGRAM = 'plsqldev.exe';
--表无法修改,复制KILL_SESSION列的sql语句执行 SELECT object_name, machine, s.sid, s.serial# , 'alter system kill session ''' || s.sid || ',' || s.SERIAL# || ''';' as KILL_SESSION FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid;

oracle存储过程无法编译、表数据无法修改

在对数据的增、删、改操作时,有时会发现一直操作不成功,原因可能是表被锁死;或者存储过程无法编译。
--存储过程无法编译 SELECT V.OSUSER, V.PROCESS,V.PROGRAM,v.MACHINE,V.TERMINAL, V.MODULE,V.USERNAME,V.STATUS,V.SID,V.SERIAL#, 'alter system kill session ''' || V.sid || ',' || V.SERIAL# || ''';' as KILL_SESSION, V.PADDR FROM V$SESSION V WHERE V.USERNAME LIKE '%用户名%' AND V.STATUS in( 'INACTIVE','ACTIVE') and v.PROGRAM = 'plsqldev.exe';
--表无法修改,复制KILL_SESSION列的sql语句执行 SELECT object_name, machine, s.sid, s.serial# , 'alter system kill session ''' || s.sid || ',' || s.SERIAL# || ''';' as KILL_SESSION FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid;

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

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组件,接下来的工作就与开发本地数据库应用程序相同了。

用delphi查询oracle数据库只读数据时提示dataset not in edit or insert mode

最后这两句有问题:

DataSource1.DataSet:=ADOQuery1;

DBGrid1.DataSource:=DataSource1;

最好是在DataSource1和DBGrid1的属性中设置,也就是静态设置,设置完成以后,再将ADOQuery1.Open;

另外这句:ADOConnection1.ConnectionString:='Provider=MSDAORA.1;User ID=u1cs;Data Source=jqdb';

oracle的连接引擎最后用oracle自己的,Provider=OraOLEDB.Oracle.1;

显示全文