给TQuery的ParambyName赋值时是不是不能为空?(100分)

  • 主题发起人 主题发起人 jarm
  • 开始时间 开始时间
J

jarm

Unregistered / Unconfirmed
GUEST, unregistred user!
sql := 'Insert into table Values(:ID,:Number)
Query1.ParamByName('Number').AsString := 'xxx';
Query1.ParamByName('Number').AsString := Edit1.Text;
Query1.SQL.Add(sql);
Query1.ExecSQL;
当Edit1.Text为空时出错(数据库中这个字段是非必填字段)
 
如果用SQL Server 时就不能直接用等号,而只能用is NULL or is not NULL,而PARADOX
应行的。
 
好像可以,我也这么用过,没问题。
 
你的xxx外面有引号,edit1.text外面却没有引号。
ParambyName('a').AsString:=''是对的。
 
给出的错误信息是'table.Num'cannot be a zero-length string;
我用的是Access数据库
 
如果静态的语句 insert into table values('1',NULL) 执行时没问题,但使用动态的参数
时这样赋值: Query1.ParamByName('Number').Value := null 会出错,我试了不赋值却
能正确执行:
Query1.Sql.Text := 'Insert into table Values(:ID,:Number)';
Query1.ParamByName('Number').AsString := 'xxx';
if Edit1.Text <> '' then //不为空串时才赋值
Query1.ParamByName('Number').AsString := Edit1.Text;
Query1.ExecSQL;
 
只好这样了,给分。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
791
import
I
I
回复
0
查看
599
import
I
后退
顶部