procedure TLoginForm.LoginButtonClick(Sender: TObject);
var
host, username,passwd,sql :String;
ssql :TStrings;
begin
host := 'HostName='+DataSysComB.Text;
sql :='select * from user_login';
//登陆校验
//动态绑定hostIP
ssql :=Tstringlist.Create;
ssql.Add('DriverName=MySQL');
//ssql.Add('HostName=localhost');
ssql.Add(host);
ssql.Add('Database=va');
ssql.Add('User_Name=root');
ssql.Add('Password=');
ssql.Add('BlobSize=-1');
ssql.Add('ErrorResourceFile=');
ssql.Add('LocaleCode=0000'); DMdata.avConnection.Params :=ssql;
DMdata.avConnection.Connected :=true;
DMdata.LoginQuery.SQLConnection :=DMdata.avConnection;
Dmdata.LoginQuery.Close;
DMdata.LoginQuery.SQL.Add(sql);
DMdata.LoginQuery.Open;
if DMdata.LoginQuery.FieldByName('UserName').AsString =UserNameEdit.Text then
begin
showmessage('ok'); end
else
showmessage('false');按第一次时候可以验证正常,但以后就有问题啦,不知道怎么搞.谢谢大家帮忙.
var
host, username,passwd,sql :String;
ssql :TStrings;
begin
host := 'HostName='+DataSysComB.Text;
sql :='select * from user_login';
//登陆校验
//动态绑定hostIP
ssql :=Tstringlist.Create;
ssql.Add('DriverName=MySQL');
//ssql.Add('HostName=localhost');
ssql.Add(host);
ssql.Add('Database=va');
ssql.Add('User_Name=root');
ssql.Add('Password=');
ssql.Add('BlobSize=-1');
ssql.Add('ErrorResourceFile=');
ssql.Add('LocaleCode=0000'); DMdata.avConnection.Params :=ssql;
DMdata.avConnection.Connected :=true;
DMdata.LoginQuery.SQLConnection :=DMdata.avConnection;
Dmdata.LoginQuery.Close;
DMdata.LoginQuery.SQL.Add(sql);
DMdata.LoginQuery.Open;
if DMdata.LoginQuery.FieldByName('UserName').AsString =UserNameEdit.Text then
begin
showmessage('ok'); end
else
showmessage('false');按第一次时候可以验证正常,但以后就有问题啦,不知道怎么搞.谢谢大家帮忙.
解决方案 »
- “北京IT之夜”大型Party
- 为何结束不了程序
- 如何使被点击的tstringgrid 的单元格背景颜色改变,而且不变,直到双击才恢复?
- 就这么一句都没法执行,一旦执行,cpu就占到99%左右,然后就是等待,没结果,咋弄?
- 问个SQL问题
- TStringGrid 控件,当从一行移动到另外一行的时候,希望触发一个事件,来处理先前行上的数据。
- RPC服务器不可用,可能是什么原因?
- 怎么查询在两个日期之间的数据?
- 我今寫一個component 它inherit TWincontrol, 但我要欄截IME 的Unicode INPUT
- 专业难度问题:如何用TrackBar控制(或者表示)MCI的播放进度?
- 怎样调用默认windows邮件客户端发电子邮件?
- 100分求够源码
begin
showmessage('ok');
ssql.Clear;
end
else
showmessage('false');
ssql.Clear;
都不行..........
Dmdata.LoginQuery.Close;
DMdata.LoginQuery.SQL.Add(sql);改为:
Dmdata.LoginQuery.Close;
Dmdata.LoginQuery.Clear;
DMdata.LoginQuery.SQL.Add(sql);最后别忘了:ssql.free;
Dmdata.LoginQuery.Clear;//此方法找不到?谢谢回复.
应该是Dmdata.LoginQuery.SQL.Clear; :)
你再试试。
同样有异常抛出,
avConnection: Cannot perform this operation on an open connection. 谢谢.
DMdata.avConnection.Params :=ssql;
DMdata.avConnection.Connected :=true;
DMdata.LoginQuery.SQLConnection :=DMdata.avConnection;
Dmdata.LoginQuery.Close;
Dmdata.LoginQuery.SQL.Clear;
DMdata.LoginQuery.SQL.Add(sql);
DMdata.LoginQuery.Open;最好加上Try ..Except..什么的。
再有错就加断点跟一下再哪出错的。
还有我猜[是第一次连接已经有了,第二次再连接的时候以有连接没有释放所以有冲突,那怎么释放连接同时可使其连接也是动态生成,令我费解]非常感谢 wwwxing(孤独的海洋,蓝色的月光) ( ) 你的回复.希望多多跟你学习.
try
...
except
application.MessageBox('数据库连接错误!','登录失败!',MB_OK);
end;
而且要用Dmdata.LoginQuery.SQL.Clear; 清除一下
DMdata.avConnection.Connected :=false;实际上你像是犯了重复连接的错,第二次连接时应把上次的连接关闭。
顺便说一句你这段程序的结构不行。异常处理Try.. Except..你按F1看看帮助,有现成的例子和用法,
程序的调式是基本的操作,任何参考书都有的。遇到问题自己多琢磨,多看帮助和资料,只有自己亲手解决的才提高的快,
别人帮你的,你可能改得快学得快但也忘得快。顺便调查一下你现在上班了吗?在哪儿?你那儿的程序员一般能拿多少钱(水平一般的)?
谢谢您的提醒,我在烦恼中呢,刚进公司做了一个java的小项目,现在又上马搞Delphi,只好硬上,以前是搞过VB但Delphi还是头一次,边学边做,需求分析也要自己来代码界面不用说都是一个人做D.
现在薪水1.7->转正后2.5.按提成.