是 用 ADOQuery 组件!!
我用
ADOQuery.Close;
ADOQuery.sql.clear;
ADOQuery.sql.Add('select * from user_info where user_name=:user_name');
ADOQuery.parameters.ParamByName('user_name').Values:='gushuheng';
ADOQuery.Prepares;
ADOQuery.Open;user_name 为gushuheng 的 在表 user_info 里面是 存在的,但是运行结果却是为空,不知道为什么?? 是不是哪里出了问题!! 请教
我用
ADOQuery.Close;
ADOQuery.sql.clear;
ADOQuery.sql.Add('select * from user_info where user_name=:user_name');
ADOQuery.parameters.ParamByName('user_name').Values:='gushuheng';
ADOQuery.Prepares;
ADOQuery.Open;user_name 为gushuheng 的 在表 user_info 里面是 存在的,但是运行结果却是为空,不知道为什么?? 是不是哪里出了问题!! 请教
ADOQuery.sql.clear;
ADOQuery.sql.Add('select * from user_info where user_name=:user_name');
ADOQuery.parameters.ParamByName('user_name').Value:='gushuheng';
ADOQuery.Open;
如果记录存在,不会为空的
如果是sqlserver数据库,列为char型的话!
'select * from user_info where rtrim(user_name)=:user_name'
strSQL,STR:string;
begin
STR:='gushuheng';
strSQL:='select * from user_info where user_name='+'''+STR+'''';
ADOQuery.Close;
ADOQuery.sql.clear;
ADOQuery.sql.Add(str);
ADOQuery.Open;......
改成 user_name varchar(20) not null; 运行结果就正确!!! 现在我想是不是ADOQuery.sql.Add('select * from user_info where user_name=:user_name');
ADOQuery.parameters.ParamByName('user_name').Value:='gushuheng';在传送 查询时 参数是 gushuheng\0!! 而用 char(20) 定义时 里面是
gushuheng\0\0\0\0\0\0\0\0\0\0\0 !!! 也就是说系统把它初始化为 0 然后在填入gushuheng!! 而 varchar(20) 定义时则没有初始化为0这一点,然后系统是 填入 gushuheng\0 !!! 两者的系统占用 都是 20 个字节!!!!
请教各位大哥!
改成 user_name varchar(20) not null; 运行结果就正确!!! 现在我想是不是ADOQuery.sql.Add('select * from user_info where user_name=:user_name');
ADOQuery.parameters.ParamByName('user_name').Value:='gushuheng';在传送 查询时 参数是 gushuheng\0!! 而用 char(20) 定义时 里面是
gushuheng\0\0\0\0\0\0\0\0\0\0\0 !!! 也就是说系统把它初始化为 0 然后在填入gushuheng!! 而 varchar(20) 定义时则没有初始化为0这一点,然后系统是 填入 gushuheng\0 !!! 两者的系统占用 都是 20 个字节!!!!
请教各位大哥! 有人回答 给分啊!!
UserName:='gushuheng';
SpaceString:='20个空格';
ADOQuery.Close;
ADOQuery.sql.Text:='select * from user_info where user_name=:user_name');
ADOQuery.parameters.ParamByName('user_name').Values:=UserName+Copy(SpaceString,1,20-Length(UserName));
ADOQuery.Prepares;
ADOQuery.Open;