怎样使用Tadodataset进行动态查询,在程序里(不是object explorer)给出commandtext后,怎么给出参数的属性,值。。(150分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
和Tquery差不多,可以前都是在object inspector里搞定的。。。没经验
比如下面程序:
b:=datamodulework.MGdindataSTYPEONENO.Value;
with datamodulework.DGdindata do //Dgindata:TADODataset
begin
close;
commandtext:='select * from gdtypetow where stypeone:=c';//c是参数
open;
end;
b是个integer类型(参数c也是)。
如果要把b的值赋予c,
1)应该怎么给呢?
2) 语句放到哪里(顺序)?

 
》在程序里(不是object explorer)
object inspector
 
commandtext:='select * from gdtypetow where stypeone:=c';//c是参数
// unprepare;
parameters.ParamByName('c').value:=b;
// prepare;
open;
------错误提示:Dgdindata(tadodataset控件):parameter 'c' not found
 
应该这么赋值吧:commandtext:='select * from gdtypetow where stypeone=:c'?
是=:不是:=
 
改了以后还不行。MGindata是主表的Tadodataset数据集,
dgindata 是细表的tadodatset数据集,有引用完整性。
删除主表的时候,要先删除细表里与之有关联的数据。
程序的设想:commandtext里执行select 后数据集dgindata里只有与要删除
主表里数据相关的内容,然后
datamodulework.DGdindata.First;
while not datamodulework.dGdindata.Eof do
begin
datamodulework.DGdindata.Delete;
datamodulework.dgdindata.Next;
end;
if (datamodulework.MGdindata.State<>dsedit) then
datamodulework.MGdindata.Edit;
datamodulework.MGdindata.Delete;------在该处报错误!!
说是sql server 服务器上有引用完整性在
我想是没有能删除细表(dgdindata)的数据的原因。
 
发财:)
 
后退
顶部