delphi编程问题 晕 见鬼了

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:12:02
procedure TForm6.FormCreate(Sender: TObject);
var
csql,time,yhm:string;
begin
yhm:=trim(login_form.username_edit.Text);
time:=formatdatetime('yyyy-mm-dd',DateTimePicker1.Date);
with ADOQuery1 do
begin
close;
sql.Clear;
csql:='select * from info where (用户名='''+yhm+''') and (提醒时间>='''+time+''')';
sql.Add(csql);
ADOQuery1.Active:=true;
prepared;
open;
end;
with ADOQuery2 do
begin
close;
sql.Clear;
csql:='select * from info where 用户名='''+yhm+''' and 提醒时间<'''+time+'''';
sql.Add(csql);
ADOQuery1.Active:=true;
prepared;
open;
end;
DateTimePicker1.Date:=date();
end;

不知道为什么连接数据库的DBGrid1一直出现不了数据???我又加了几句调试了下,发现 ADOQuery1.RecordCount和 ADOQuery2.RecordCount都为0!!
可是明明有数据啊!!!
后来发现是 用户名='

字段为什么是中文的?

试试这样:
csql:='select * from info where (用户名='+quotedstr(yhm)+') and (提醒时间>='+quotedstr(time)+')';

直接用csql:='select * from info';试试

yhm:=trim(login_form.username_edit.Text);//在这句后面加上
showmessage(yhm);//来检查一下这个变量的当前值,可能的原因是当login_form已经调用过free方法之后,会无法获得原有的值