我做的一个添加用户的程序,其中EDIT是动态生成的,添加第一个用户的时候不会出错,顺利的注册用户同时给用户单独建立一个收件箱(一个单独以“用户名+收件箱”命名的表),添加完所有EDIT都清空(EDIT.text:='')。但是在继续添加的时候就出错了:前面根据EDIT.text里的值来判断用户名是否重复这里是正常的,能准确的判定;但是在生成用户的收件箱的时候却发现出错,原因是这里建立的收件箱还是以上一个用户名来命名的收件箱!求解!
判定用户名重复的程序如下:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.sql.add('select * from 用户 where name=' +quotedstr(edit1.Text)) ;
ADOQuery2.Open;
if ADOQuery2.RecordCount<>0 then
begin
messagebeep(0); //报警声
MessageDlg('帐号已经被注册,请更换!',mtWarning,[mbok],0);
exit;
end注册收件箱的程序如下:
////////////////////////为用户创建收件箱
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.SQL.add('Create Table "'+TRIM(edit1.Text)+'收信箱'+'" (ID bigint primary key identity,发信人 char(10),发信内容 varchar(5000),时间 datetime,已读 char(4))');
ADOQuery1.ExecSQL; ////////////////////////为用户创建发件箱
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.SQL.add('Create Table "'+TRIM(edit1.Text)+'发信箱'+'" (ID bigint primary key identity,收信人 char(10),发信内容 varchar(5000),时间 datetime)');
ADOQuery1.ExecSQL;错误如上图,提示出错那里的EDIT的值是我上一个添加的用户名,可是实际上这次我注册的用户名不是那个
判定用户名重复的程序如下:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.sql.add('select * from 用户 where name=' +quotedstr(edit1.Text)) ;
ADOQuery2.Open;
if ADOQuery2.RecordCount<>0 then
begin
messagebeep(0); //报警声
MessageDlg('帐号已经被注册,请更换!',mtWarning,[mbok],0);
exit;
end注册收件箱的程序如下:
////////////////////////为用户创建收件箱
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.SQL.add('Create Table "'+TRIM(edit1.Text)+'收信箱'+'" (ID bigint primary key identity,发信人 char(10),发信内容 varchar(5000),时间 datetime,已读 char(4))');
ADOQuery1.ExecSQL; ////////////////////////为用户创建发件箱
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.SQL.add('Create Table "'+TRIM(edit1.Text)+'发信箱'+'" (ID bigint primary key identity,收信人 char(10),发信内容 varchar(5000),时间 datetime)');
ADOQuery1.ExecSQL;错误如上图,提示出错那里的EDIT的值是我上一个添加的用户名,可是实际上这次我注册的用户名不是那个
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货