建主从表,ado+oracle(50分)

  • 主题发起人 主题发起人 hyhy
  • 开始时间 开始时间
H

hyhy

Unregistered / Unconfirmed
GUEST, unregistred user!
我采用的是最一般的例子,都用默认参数:
adoconnection1:
参数:
connectionstring: Provider=OraOLEDB.Oracle.1;Password=archive;Persist Security Info=True;User ID=archive;Data Source=ora1;Extended Properties=""
结果:链接成功
adoquery1(主表);
参数:
sql: select * from table1
connection: adoconnection1
结果:可以打开
Datasource1
参数:
dataset: adoquery1

adoquery2(从表);
参数:
sql: select * from table2 where ID = :ID
connection: adoconnection1
Datasource: Datasource1
ID是table1的关键字,table2的外键
结果:打开时冒出以下错误
‘Parameter 对象被不正确地定义。提供了不一致或不完整的信息。‘

我用的是Delphi6,客户端oracle8.1.6,服务器端oracle9i,我用BDE构件TQuery时就是好的,
想问一下是怎么回事
 
给参数赋值了吗?
注意不能为空串,即‘’,若为空,应写为is Null
with ADOQuery1 do
begin
close;
sql.clear;
if Length(edit1.text)>0 then
begin
sql.add('select * from table2 where ID = :ID );
parameters[0].value:=edit1.text;
end
else
begin
sql.add(’select * from table2 where ID = :ID is null');
end;
open;
end;
 
to mlzhou:
你上面的例子是单表,我要建的是Master/Detail表,用delphi自带的例子测试,
连本地表时没事,连Oracle时就出上面的错。
 
我是说对于oracle,参数的值不能为空串。
 
to mlzhou:
测试通过,可以再问一个笨问题吗?主表为空时,又要冒错,怎样控制最好。因为查询
时结果经常是空的,例如只过滤当天的数据。
 
该问题我已自己解决了,把参数类型设成olestr就行了。

 
接受答案了.
 

Similar threads

回复
0
查看
848
不得闲
D
回复
0
查看
834
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
后退
顶部