最近在写一个程序在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;
就通不过,应该怎么写呢.
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;
就通不过,应该怎么写呢.
解决方案 »
- 如何同时查找多个类型的文件
- 请问哪有cxgrid和dxdbgrid控件下载?
- 请问webservice客户端如何通过代理服务器连接webservice服务
- 主从表中从表如何根据过滤结果自动调整DBGrid/DBGridEh的列宽,在何处事件或过程中处理?
- 请教windows media player 风格的调节音量的控件,(就是三角型的那种,非标准的TTrachbar), 有解决思路也给分
- 多线程的问题,子线程和主线程并没有并列运行?
- 用流将数据库里的文件导出到文件夹里
- 如何删除自动生成的按钮
- installshield安装程序?
- 请教:如何能禁止显示数据库程序中BDE的用户登录对话框?
- 大家帮忙啊!!在线等!
- 关于自动登陆的问题
query1.parambyname('p_b').value:='';
query1.parambyname('p_c').value:='';
你的第一句是执行sql语句,后边的是pascal语句了
你的标题是空值,那么就是'',null不是空值的意思
用insert into a (b,c) values (null,null)就可以了
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或''到数据库的值是不同的 楼主你试下 这是我测试的代码 没有问题
insert into a (b,c) values (null,null)是没问题的,关键是用parambyname('a').value:=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;