给数据值字段赋空值

zhangpuqing 2007-12-28 11:29:31
最近在写一个程序在delphi中使用如下语句
query1.sql.add('insert into a (b,c) values (null,null)')
这句话是能通过的但改成
query1.sql.add('insert into a (b,c) values (:p_b,:p_c)');
query1.parambyname('p_b').value:=null;
query1.parambyname('p_c').value:=null;
就通不过,应该怎么写呢.
...全文
344 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangpuqing 2007-12-30
  • 打赏
  • 举报
回复
我后来又试了试,用ACCESS+ADO的方式都能行的.
zhangpuqing 2007-12-29
  • 打赏
  • 举报
回复
怪了,难道是BUG?不会呀,从报错的对话框看不像是BUG
LSZERP 2007-12-29
  • 打赏
  • 举报
回复
这样写在SQLSERVER2000中是可以的
query1.sql.add('insert into a (b,c) values (:p_b,:p_c)');
query1.parambyname('p_b').value:=null;
query1.parambyname('p_c').value:=null;
simonhehe 2007-12-28
  • 打赏
  • 举报
回复
sql中和delphi中的null的用法是有区别的
你的第一句是执行sql语句,后边的是pascal语句了
你的标题是空值,那么就是'',null不是空值的意思
coll119 2007-12-28
  • 打赏
  • 举报
回复
query1.sql.add('insert into a (b,c) values (:p_b,:p_c)');
query1.parambyname('p_b').value:='';
query1.parambyname('p_c').value:='';
wj198555 2007-12-28
  • 打赏
  • 举报
回复
jf
zhangpuqing 2007-12-28
  • 打赏
  • 举报
回复
试过的,不行呀,我用的是INTERBASE的数据库,如果直接写
insert into a (b,c) values (null,null)是没问题的,关键是用parambyname('a').value:=null
就不行了,提示要报错说值为空.但我的字段是设置为允许为空的.
cjrj2008 2007-12-28
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear ;
sql.Text:='insert into jx(user_id,user_name)values(:user_id,:user_name)';
// Parameters.ParamByName('user_id').Value:='';
Parameters.ParamByName('user_id').Value:=null;
Parameters.ParamByName('user_name').Value:='f';
ExecSQL ;
end;
end;
用null或''到数据库的值是不同的 楼主你试下 这是我测试的代码 没有问题
hsmserver 2007-12-28
  • 打赏
  • 举报
回复
3楼说的对
用insert into a (b,c) values (null,null)就可以了
zhangpuqing 2007-12-28
  • 打赏
  • 举报
回复
因为我那个字段 是数值型,我用STRTOINT('')也不行。
zhangpuqing 2007-12-28
  • 打赏
  • 举报
回复
我用''试过的,不行。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧