G
guanyue7613
Unregistered / Unconfirmed
GUEST, unregistred user!
客户端使用TClientDataSet 控件
sql语句如下
CommandText := 'SELECT AB002, AB003 FROM TAB01 WHERE AB001=:AB001';
Params.ParamByName('AB001').AsString := sAB001;
Open;
当字段sAB001 为空字符串 '' 时
执行就会报错,用sqlserver的事件探察器跟踪如下:
declare @P1 int
set @P1=NULL
exec sp_prepexec @P1 output, N'@P1 text', N'SELECT AB002,AB003 FROM TAB01
WHERE AB001=@P1', ''
select @P1
发现@P1 为text 类型
在字段sAB001 不为空 一切正常,跟踪如下:
declare @P1 int
set @P1=NULL
exec sp_prepexec @P1 output, N'@P1 varchar(6) ', N'SELECT AB002,AB003 FROM TAB01
WHERE AB001=@P1', 'TEST01'
select @P1
请各位大侠帮忙给出好的解决方案。
主要时@P1的类型有问题。
sql语句如下
CommandText := 'SELECT AB002, AB003 FROM TAB01 WHERE AB001=:AB001';
Params.ParamByName('AB001').AsString := sAB001;
Open;
当字段sAB001 为空字符串 '' 时
执行就会报错,用sqlserver的事件探察器跟踪如下:
declare @P1 int
set @P1=NULL
exec sp_prepexec @P1 output, N'@P1 text', N'SELECT AB002,AB003 FROM TAB01
WHERE AB001=@P1', ''
select @P1
发现@P1 为text 类型
在字段sAB001 不为空 一切正常,跟踪如下:
declare @P1 int
set @P1=NULL
exec sp_prepexec @P1 output, N'@P1 varchar(6) ', N'SELECT AB002,AB003 FROM TAB01
WHERE AB001=@P1', 'TEST01'
select @P1
请各位大侠帮忙给出好的解决方案。
主要时@P1的类型有问题。