求救使用者登入的問題 |
尚未結案
|
jayko
一般會員 發表:2 回覆:5 積分:1 註冊:2004-05-30 發送簡訊給我 |
程式部分: procedure TForm1.Button1Click(Sender: TObject);
begin
clientdataset1.First;
if not clientdataset1.eof then
begin
if ClientDataSet1.Locate('loginname',sUserName,[])then
begin
pwd:=ClientDataSet1.lookup('loginname',sUserName,'password');
edit1.Text :=VarToStr(pwd);
edit2.Text :=VarToStr(pwd);
if pwd <> sUserPWD then
begin
Application.MessageBox('輸入的用戶名或密碼不對,請您重新檢查','注意',MB_OK);
end
else if pwd = sUserPWD then
showmessage('OK');
end;
end;
end;
在上面的程式碼執行後,會出現一個問題-> 在第一次click後會先執行application.messagebox,在第二次click時才會執行showmessage,請問要如何解決(sUserName & sUserPWD的輸入均正確)??
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 改成這樣試試﹕
begin clientdataset1.First; if not clientdataset1.eof then begin if ClientDataSet1.Locate('loginname',sUserName,[])then begin pwd:=ClientDataSet1.lookup('loginname',sUserName,'password'); edit1.Text :=VarToStr(pwd); edit2.Text :=VarToStr(pwd); if pwd <> sUserPWD then Application.MessageBox('輸入的用戶名或密碼不對,請您重新檢查','注意',MB_OK) else showmessage('OK'); end; end; end;在上貼程式碼的時候﹐您可使用格式列中的[插入code]功能對程式碼進行縮排﹐以便觀察程式碼的流程﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================ 發表人 - cashxin2002 於 2005/04/06 12:09:10
------
忻晟 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 在改一下﹐因為您是利用Locate的方法先來判斷sUserName是否是正确的用戶名﹐若是的話﹐才會進入密碼正确与否的判斷中﹐所以可單獨顯示用戶名的錯誤還是密碼的錯誤﹐如下﹕
begin clientdataset1.First; if not clientdataset1.eof then begin if ClientDataSet1.Locate('loginname',sUserName,[])then begin pwd:=ClientDataSet1.lookup('loginname',sUserName,'password'); edit1.Text :=VarToStr(pwd); edit2.Text :=VarToStr(pwd); if pwd <> sUserPWD then Application.MessageBox('輸入的密碼不對,請您重新檢查','注意',MB_OK) else showmessage('OK'); end else begin Application.MessageBox('輸入的用戶名不對,請您重新檢查','注意',MB_OK); end; end; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
jayko
一般會員 發表:2 回覆:5 積分:1 註冊:2004-05-30 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
jayko
一般會員 發表:2 回覆:5 積分:1 註冊:2004-05-30 發送簡訊給我 |
所輸入的sUserName確實存在於資料錄中,仍然出現相同的問題。
目前採sUserName和sUserPWD同時check是可pass的,只是無法個別show出error是在username 或 password,我會再研究看看~~感謝你的回答!!^^
再請教大大~~
在開發OCX(ActiveForm)時,使用ClientDataSet1.Locate('loginname;password',VarArrayOf([sUserName,sUserPWD]),[])時會出現[Error] onlinetestImpl1.pas(405): Undeclared identifier: 'VarArrayOf'
此情形要如何解決呢?? 發表人 - jayko 於 2005/04/06 22:31:14
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |