全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2962
推到 Plurk!
推到 Facebook!

SQLQuery.RecordCount报错,如何修正?(

 
boreas
一般會員


發表:2
回覆:3
積分:1
註冊:2007-01-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-08 17:17:26 IP:59.33.xxx.xxx 訂閱
if Query.RecordCount = 0 then
ShowMsg('登录失败,请检查一下用户名和密码是否正确!')
else
ShowMsg('登录成功!');

本人菜鸟,在做用户登录界面时,用到SQLQuery,在对用户名、密码和Oracle9i中的资料进行核查时,报错:表或视图不存在(如截图)。数据库连接无问题。
我只在登录界面用了一个SQLQuery组件,其SQLConnection属性是uses另一个DataModule中的SQLConnection。

看到论坛里有人说用SQLQuery+DataSetProvider+ClientDataSet,但本人是新手,还是不清楚如何解决。

请各位指点一下,谢谢!
附加檔案:45efd4a68ec53_Snap3.gif
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-08 20:32:27 IP:211.22.xxx.xxx 未訂閱
檢查Query裡面的SQL敘述,所要連結的資料表或檢視表不存在!
boreas
一般會員


發表:2
回覆:3
積分:1
註冊:2007-01-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-09 08:28:31 IP:59.33.xxx.xxx 訂閱
我已声明“数据库连接无问题”,表存在,登录用户名也对,直接用SQL语句测试过。

源码如下:
PUser := UpperCase(edtLander.Text);
PPwd := edtPwd.Text;
PPwd := Encrypt(PPwd);
Str := 'select * from sm_inf_lander where upper(landercode)=''' PUser ''' '
'and password=''' PPwd '''';
Query.Close;
Query.SQL.Text := Str;
Query.Open;
if Query.RecordCount > 0 then
//if Query.IsEmpty then
//if Query.Eof then
//ShowMsg('登录失败,请检查一下用户名和密码是否正确!')
ShowMsg('登录成功!')
else
//ShowMsg('登录成功!');
ShowMsg('登录失败,请检查一下用户名和密码是否正确!');
end;

boreas
一般會員


發表:2
回覆:3
積分:1
註冊:2007-01-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-03-09 10:05:20 IP:59.33.xxx.xxx 訂閱
关键是SQLQuery.RecordCount有问题,如果是ADOQuery.RecordCount就没有问题。
因为是用dbExpress连接oracle数据库,所以不用ADOQuery。
网上有人说可能是SQLQuery的BUG,用SQLQuery+DataSetProvider+ClientDataSet可以解决,但我不知道具体怎么操作。我用的是Delphi7.0,已打过所有补丁。
minjiu
中階會員


發表:27
回覆:119
積分:69
註冊:2002-06-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-03-09 14:35:39 IP:220.130.xxx.xxx 訂閱
Query.Last; <== 加上這一行吧
if Query.RecordCount = 0 then
ShowMsg('登录失败,请检查一下用户名和密码是否正确!')
else
ShowMsg('登录成功!');
boreas
一般會員


發表:2
回覆:3
積分:1
註冊:2007-01-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-03-09 14:37:55 IP:59.33.xxx.xxx 訂閱
minjiu
先qry.Last,再用recordcount,报错:Query:Operation not allowed on a unidirectional dataset.
不允许单向数据集。
Query.Close;
Query.SQL.Text := Str;
Query.Open;
Query.Last;
if Query.RecordCount = 0 then
……
系統時間:2024-04-28 18:14:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!