我用的是三层结构:
with ClientDataset1 do
begin
  Close;
  Params.CLear;
  CommandText := 'insert into test(aaa, bbb) values(:aaa, :bbb)';
  Params.CreateParams(ftString, 'aaa', ptInput);
  Params.CreateParams(ftString, 'bbb', ptInput);
  Params.ParamByName('aaa').Value := 'aaa';
  Params.ParamByName('bbb').Value := '';  Execute;
end;这句代码程序会报错:Params.ParamByName('bbb').Value := '';
好象这么写也不对:Params.ParamByName('bbb').Value := null;请问应该怎么写????????急?????????????

解决方案 »

  1.   

    我一般不用Params.ParamByName
    直接写成这种CommandText := 'insert into test(aaa, bbb) values('aaa', '')'试试
      

  2.   

    直接写成这种CommandText := 'insert into test(aaa, bbb) values('aaa', '')'当然是可以的了但我现在其实是要调用一个存储过程,对存储过程的参数赋值就要用:
    params.ParamByname('').Value := ...........
      

  3.   

    你是在赋空值的时候出错啊,运行的时候在Excute前,把SQL语句取出来看看先
      

  4.   

    你用 value IS NULL 试一试。