//userrecord有3列(no自动加1为主键int型,starttime endtime都是8位的datetime型)
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select top 1 starttime from userrecord where operator='''+UserName+''' order by starttime desc');
Open;
end;
j:=DateTimeToStr(ADOQuery1.FieldValues['starttime']);
//j:=DateTimeToStr(ADOQuery1.FieldByName('starttime'));
//j:=DateTimeToStr(ADOQuery1.Fields[2]);编译不能通过
为什么我的j都是空的?有时还报错说类型转换有问题
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select top 1 starttime from userrecord where operator='''+UserName+''' order by starttime desc');
Open;
end;
j:=DateTimeToStr(ADOQuery1.FieldValues['starttime']);
//j:=DateTimeToStr(ADOQuery1.FieldByName('starttime'));
//j:=DateTimeToStr(ADOQuery1.Fields[2]);编译不能通过
为什么我的j都是空的?有时还报错说类型转换有问题
//j:=DateTimeToStr(ADOQuery1.FieldByName('starttime'));
//j:=DateTimeToStr(ADOQuery1.Fields[2]);编译不能通过你后面都丢掉了.asdatetime啊FIELDBYNAME().ASDATETIME
表中的字段operator
各是什么类型?J是空的话,只能是你的sql语句根本没返回合适的记录。你可以看下AdoQuery1.RecordCount是不是0
ShowMessage(j);
ShowMessage(IntToStr(CheckUserForm.ADOQuery1.RecordCount));
运行后j=1899-12-30 CheckUserForm.ADOQuery1.RecordCount=0 什么原因啊?
j是String
operator在数据库中是varchar型
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into userrecord (operator,starttime) values ('''+Edit1.Text+''','''+DateTimeToStr(Now())+''')');
ADOQuery1.ExecSQL;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select max(no) from userrecord');
ADOQuery1.Open;
LoginNo:=IntToStr(ADOQuery1.Fields[0].AsInteger);
ShowMessage(LoginNo);
====================================================上面代码是登陆窗体中的
with CheckUserForm.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select top 1 starttime from userrecord where operator='''+Main.UserName+''' order by starttime desc');
Open;
end;
j:=CheckUserForm.ADOQuery1.FieldValues['starttime'].AsString;
ShowMessage(j);
ShowMessage(IntToStr(CheckUserForm.ADOQuery1.RecordCount));
StatusBar1.Panels[0].Text:=' '+'¡¾Óû§¡¿£º'+i+' ';
StatusBar1.Panels[1].Text:=' '+'¸ÃÕʺÅÉϴεĵǽʱ¼äÊÇ£º '+j+' ';
=================================这段是Main中的
j:=CheckUserForm.ADOQuery1.FieldValues['starttime'].AsString;
改成
j:=DateTimeToStr(CheckUserForm.ADOQuery1.FieldByName('starttime').AsDateTime);