線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1968
推到 Plurk!
推到 Facebook!

有關ADODataSet1.eof資料頭尾邊界問題 & com+asp

答題得分者是:jieshu
o.s
一般會員


發表:39
回覆:36
積分:15
註冊:2003-05-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-09 12:32:35 IP:210.70.xxx.xxx 未訂閱
妳好我們在asp哪碰到個問題就是再web端輸入帳號密碼都錯誤或者密碼錯誤的時候都會一直執行下去而這個問題是我在com哪端寫了一個if adodataset1.eof then ok:=0 else ok:=1;也就是說當帳號密碼正確時會出現1的判斷式否則就是0了而這地方下的判斷式是要給asp哪做判斷用以便去判斷帳號密碼是否正確 用的但為何下哪樣子asp端還是會一直出錯呢?我要如何下定義呢能否解釋一下 謝謝 各位好ㄚ 原碼如下 //----------------------------------------------------User1資料表查詢開始 procedure Tadddata.queryaaaa(var qqqqqcount, qqqqqarr, qqqqqretstr, ok: OleVariant); var ttErrStr, ttSQLStr : string; ttCount : integer; begin ttErrStr := ''; //************************************************************************** try ttSQLStr :='SELECT UserID,UserName,UserPW from User1 where UserID like ''' qqqqqcount ''' and UserPW like ''' qqqqqretstr ''''; ADODataSet1.Close; ADODataSet1.CommandText := ttSQLStr; ttCount := 0; try ADODataSet1.Open; ADODataSet1.First; if ADODataSet1.Eof then ok:=0 else ok:=1 ;//-- 重點處 ttCount := ADODataSet1.RecordCount; //ok:=ttCount; except on E:Exception do ttErrStr := ttErrStr '-' ttSQLStr ':' E.Message; end; if ttCount>0 then begin qqqqqarr := VarArrayCreate([0,2,0,ttCount-1], VarVariant); ttCount := 0; while not ADODataSet1.Eof do begin qqqqqarr[0, ttCount] := ADODataSet1.FieldByName('UserID').AsString; qqqqqarr[1, ttCount] := ADODataSet1.FieldByName('UserName').AsString; qqqqqarr[2, ttCount] := ADODataSet1.FieldByName('UserPW').AsString; inc(ttCount); ADODataSet1.Next; end; end; qqqqqcount := ttCount; //************************************************************************** if ttErrStr='' then begin qqqqqretstr := 'OK' qqqqqretstr; SetComplete; end else begin qqqqqretstr := '-' qqqqqretstr '-xQry-E' ttErrStr; SetAbort; end; Except on E:Exception do begin qqqqqretstr := '-' qqqqqretstr '-xQry-X' E.Message; SetAbort; end; end; end; //----------------------------------------------------User1資料表查詢結束 發表人 - o.s 於 2004/09/09 16:51:26
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-09 14:01:15 IP:203.204.xxx.xxx 未訂閱
引言: 妳好我們在asp哪碰到個問題就是再web端輸入帳號密碼都錯誤或者密碼錯誤的時候都會一直執行下去而這個問題是我在com哪端寫了一個if adodataset1.eof then ok:=0 else ok:=1;也就是說當帳號密碼正確時會出現1的判斷式否則就是0了而這地方下的判斷式是要給asp哪做判斷用以便去判斷帳號密碼是否正確 用的但為何下哪樣子asp端還是會一直出錯呢?我要如何下定義呢能否解釋一下 謝謝 各位好ㄚ
請列出您的程式碼? 這樣才知道您的問題出在哪裡. <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
o.s
一般會員


發表:39
回覆:36
積分:15
註冊:2003-05-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-09 16:53:00 IP:210.70.xxx.xxx 未訂閱
引言:
引言: 妳好我們在asp哪碰到個問題就是再web端輸入帳號密碼都錯誤或者密碼錯誤的時候都會一直執行下去而這個問題是我在com哪端寫了一個if adodataset1.eof then ok:=0 else ok:=1;也就是說當帳號密碼正確時會出現1的判斷式否則就是0了而這地方下的判斷式是要給asp哪做判斷用以便去判斷帳號密碼是否正確 用的但為何下哪樣子asp端還是會一直出錯呢?我要如何下定義呢能否解釋一下 謝謝 各位好ㄚ
請列出您的程式碼? 這樣才知道您的問題出在哪裡. //----------------------------------------------------User1資料表查詢開始 procedure Tadddata.queryaaaa(var qqqqqcount, qqqqqarr, qqqqqretstr, ok: OleVariant); var ttErrStr, ttSQLStr : string; ttCount : integer; begin ttErrStr := ''; //************************************************************************** try ttSQLStr :='SELECT UserID,UserName,UserPW from User1 where UserID like ''' qqqqqcount ''' and UserPW like ''' qqqqqretstr ''''; ADODataSet1.Close; ADODataSet1.CommandText := ttSQLStr; ttCount := 0; try ADODataSet1.Open; ADODataSet1.First; if ADODataSet1.Eof then ok:=0 else ok:=1 ;//-- 重點處 ttCount := ADODataSet1.RecordCount; //ok:=ttCount; except on E:Exception do ttErrStr := ttErrStr '-' ttSQLStr ':' E.Message; end; if ttCount>0 then begin qqqqqarr := VarArrayCreate([0,2,0,ttCount-1], VarVariant); ttCount := 0; while not ADODataSet1.Eof do begin qqqqqarr[0, ttCount] := ADODataSet1.FieldByName('UserID').AsString; qqqqqarr[1, ttCount] := ADODataSet1.FieldByName('UserName').AsString; qqqqqarr[2, ttCount] := ADODataSet1.FieldByName('UserPW').AsString; inc(ttCount); ADODataSet1.Next; end; end; qqqqqcount := ttCount; //************************************************************************** if ttErrStr='' then begin qqqqqretstr := 'OK' qqqqqretstr; SetComplete; end else begin qqqqqretstr := '-' qqqqqretstr '-xQry-E' ttErrStr; SetAbort; end; Except on E:Exception do begin qqqqqretstr := '-' qqqqqretstr '-xQry-X' E.Message; SetAbort; end; end; end; //----------------------------------------------------User1資料表查詢結束 //-------------------------- <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
各位好ㄚ
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-09 17:17:26 IP:203.204.xxx.xxx 未訂閱
引言: //----------------------------------------------------User1資料表查詢開始 procedure Tadddata.queryaaaa(var qqqqqcount, qqqqqarr, qqqqqretstr, ok: OleVariant); var ttErrStr, ttSQLStr : string; ttCount : integer; begin ttErrStr := ''; //************************************************************************** try ttSQLStr :='SELECT UserID,UserName,UserPW from User1 where UserID like ''' qqqqqcount ''' and UserPW like ''' qqqqqretstr ''''; ADODataSet1.Close; ADODataSet1.CommandText := ttSQLStr; ttCount := 0; try ADODataSet1.Open; ADODataSet1.First; if ADODataSet1.Eof then ok:=0 else ok:=1 ;//-- 重點處 ttCount := ADODataSet1.RecordCount; //ok:=ttCount; except on E:Exception do ttErrStr := ttErrStr '-' ttSQLStr ':' E.Message; end; if ttCount>0 then begin qqqqqarr := VarArrayCreate([0,2,0,ttCount-1], VarVariant); ttCount := 0; while not ADODataSet1.Eof do begin qqqqqarr[0, ttCount] := ADODataSet1.FieldByName('UserID').AsString; qqqqqarr[1, ttCount] := ADODataSet1.FieldByName('UserName').AsString; qqqqqarr[2, ttCount] := ADODataSet1.FieldByName('UserPW').AsString; inc(ttCount); ADODataSet1.Next; end; end; qqqqqcount := ttCount; //************************************************************************** if ttErrStr='' then begin qqqqqretstr := 'OK' qqqqqretstr; SetComplete; end else begin qqqqqretstr := '-' qqqqqretstr '-xQry-E' ttErrStr; SetAbort; end; Except on E:Exception do begin qqqqqretstr := '-' qqqqqretstr '-xQry-X' E.Message; SetAbort; end; end; end; //----------------------------------------------------User1資料表查詢結束
程式碼看起來應該沒問題, 您是指asp收到的回傳值不正確嗎? 還是帳號密碼不正確時, 程式還是往下執行? 如是後者, 您可能得下停止的命令, 好像是SetAbort;. <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
o.s
一般會員


發表:39
回覆:36
積分:15
註冊:2003-05-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-09 18:09:46 IP:218.170.xxx.xxx 未訂閱
引言:
引言: //----------------------------------------------------User1資料表查詢開始 procedure Tadddata.queryaaaa(var qqqqqcount, qqqqqarr, qqqqqretstr, ok: OleVariant); var ttErrStr, ttSQLStr : string; ttCount : integer; begin ttErrStr := ''; //************************************************************************** try ttSQLStr :='SELECT UserID,UserName,UserPW from User1 where UserID like ''' qqqqqcount ''' and UserPW like ''' qqqqqretstr ''''; ADODataSet1.Close; ADODataSet1.CommandText := ttSQLStr; ttCount := 0; try ADODataSet1.Open; ADODataSet1.First; if ADODataSet1.Eof then ok:=0 else ok:=1 ;//-- 重點處 ttCount := ADODataSet1.RecordCount; //ok:=ttCount; except on E:Exception do ttErrStr := ttErrStr '-' ttSQLStr ':' E.Message; end; if ttCount>0 then begin qqqqqarr := VarArrayCreate([0,2,0,ttCount-1], VarVariant); ttCount := 0; while not ADODataSet1.Eof do begin qqqqqarr[0, ttCount] := ADODataSet1.FieldByName('UserID').AsString; qqqqqarr[1, ttCount] := ADODataSet1.FieldByName('UserName').AsString; qqqqqarr[2, ttCount] := ADODataSet1.FieldByName('UserPW').AsString; inc(ttCount); ADODataSet1.Next; end; end; qqqqqcount := ttCount; //************************************************************************** if ttErrStr='' then begin qqqqqretstr := 'OK' qqqqqretstr; SetComplete; end else begin qqqqqretstr := '-' qqqqqretstr '-xQry-E' ttErrStr; SetAbort; end; Except on E:Exception do begin qqqqqretstr := '-' qqqqqretstr '-xQry-X' E.Message; SetAbort; end; end; end; //----------------------------------------------------User1資料表查詢結束
程式碼看起來應該沒問題, 您是指asp收到的回傳值不正確嗎? 還是帳號密碼不正確時, 程式還是往下執行? 如是後者, 您可能得下停止的命令, 好像是SetAbort;. 是帳號密碼錯誤或者是帳號對密碼錯會遇到這個問題還是一直執行停不下來所以說我們要是判斷為假的還是不會指到我們所需的網頁上 另外一點是我setabort;參數應是下到我這段if判斷式後摟?我試看看摟 <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
各位好ㄚ 發表人 - o.s 於 2004/09/09 18:13:18
系統時間:2024-04-20 1:35:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!