我在用Insert into语句向数据表插入数据,其中数据表时在定义时有很多字段是允许空的,但是我在插入数据时values里的值却说不能为空,假设我有个edit1,现在对应数据表中的'名字'字段是允许空的,当edit1为空时不给字段值,当edit1不为空时'名字'字段的值就为edit1.text,请问用insert语句怎么实现,如果光考虑插入一个值在当edit1为空时给'名字'字段一个空格就行了,可以还要方便以后查询及更新数据,用空格代替以后计算字段值时是不是会不方便?
解决方案 »
- 用鼠标点击DBgrid以后,再点“增加”按钮,这个时候会使DBgrid中的最后一条记录处于编辑状态,只有点“取消”后再点“增加”才能增加新的记录,怎样避免这种情况,先谢了
- 请教:用UltraEdit修改exe文件问题
- 如何查找某个目录中的所有文件,并将它们拷贝到另一个目录中?
- 请问:我如何在Delphi里调用一段JAVA程序?(分不够再加,最多可以加到200分)
- 我现在正在学习Delphi,但我不知道以后的路该怎么走?该学什么?
- 谁用过Async Professional的控件发传真呀?还可以加分的哟!!!
- 求助:解决存储过程超期的问题。在线等待。
- 用FILEWRITE写文本文件怎么写的乱七八糟的???
- 如何动态的得到ADOconnection中的provider?
- 关于消息捕捉(WM_SIZE)
- TIdHTTP组件的问题
- 《娘,大哥他回来了!》
query1.close;
query1.sql.clear;
query1.sql.add(sqlstr);
query1.execSQL;
query1.sql.add('insert into 表名 字段名 values :AA')
if(trim(edit1.text)='')then
parameterbyname('aa'):=null
else
parameterbyname('aa'):=trim(edit1.text);
isnull(字段, 0) 数值型
edit2输入int字段值,字段名F2一般可以这样做
var
sf1,sf2,sqlstr: string;
begin
sf1:= trim(edit1.text);
if trim(edit2.text)='' then
sf2:='null'
else
sf2:=trim(edit2.text); //假设edit2中输入的是合法的数字 sqlstr:= 'insert into tabname(f1,f2) values('+quotedstr(sf1)+','+sf2+')';
query1.close;
query1.sql.clear;
query1.sql.add(sqlstr);
query1.execSQL;
end;