string x1, x2,x3,x4
x3=trim(sle_1.text)
x4=trim(sle_2.text)
select *
into :x1,:x2
from yh
where user1= :x3 and pass = :x4;
if sqlca.sqlcode = 0 then
open(w2)
close(w1)
else
messagebox("錯誤","用戶名或密碼錯誤")
end if
(登錄視窗的代碼,在open事件中有連接資料庫的代碼,那個沒問題)
在沒生成exe之前,在PB中,沒有問題,但生成執行檔案,問題就來了。
pb生成可執行檔案后,登錄視窗可以打開,資料庫也可以連接上,當點擊登錄按鈕之后,如果用戶名和密碼不是資料表中預定的,那會提示錯誤,但輸入正確的用戶名和密碼后,點擊登錄按鈕,結果程式就死了,沒反應了。求教這是怎么回事,實在看不懂。
uj5u.com熱心網友回復:
看這段代碼沒問題,是不是其他地方斷開資料庫連接了?uj5u.com熱心網友回復:
加點測驗陳述句在里面除錯下吧,你怎么能肯定錯誤不是在open(w_2)里面發生的呢?另外樓主的select * 不是好習慣,在代碼明確寫出欄位名比較好。
uj5u.com熱心網友回復:
不是代碼的問題,PB本身的問題?uj5u.com熱心網友回復:
select *
into :x1,:x2
from yh
where user1= :x3 and pass = :x4;
這句有問題,表yh如果列數超過2列怎么賦值。可以用下邊陳述句來判斷用戶名密碼是否存在。
int li_count
select count(*)
:li_count
from yh
where user1= :x3 and pass = :x4;
if li_count>1 then
//用戶密碼正確
else
//用戶密碼不正確
end if
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/71860.html
標籤:數據庫相關
上一篇:關于連鎖總部同分部資料交換的問題
