Delphi 兩個Query不同登入者的驗證,與基本元件用法 |
缺席
|
toyota362
一般會員 發表:2 回覆:1 積分:0 註冊:2011-08-13 發送簡訊給我 |
請問大大們,我現在要驗證 登入者是否與該 課長V02AEMPID或 稽核者PA_MAIN_AUDITOR 才可以登入 否則show出不能登入等訊息
以下是我的程式碼 不知道是否能這樣寫 與Query元件等用法 我在button內寫了驗證等訊息,如果是 稽核者可以打開qryTemp1做存取 如果是課長可以打開qryTemp2做存取,否則show出非該主辦稽核員或課長不可修改 ,我不知道我語法是否有錯 大大們能幫我看一下嗎 begin if qryTemp1.PA_MAIN_AUDITOR = ''' Paramstr(1) ''' then begin with qryTemp1, SQL do begin Close; Clear; Open; else if qryTemp2.V02AEMPID = ''' Paramstr(1) ''' then begin with qryTemp2, SQL do begin Close; Clear; Open; else begin Close; ShowMessage('此案件已核定完成,非該主辦稽核員或課長不可修改!'); Abort; end; end; end; end; 在兩個Query元件內SQL語法分別寫了,我的想法是有先下語法選擇連到資料庫的Table才能做上面那段程式的判別 SELECT ''X'' ' ' FROM PA_AUDIT_D A, PA_AUDIT_M B ' ' WHERE B.PA_MAIN_AUDITOR = ''' Paramstr(1) ''' ' //登入使用者 ' AND A.RESERVE_NO = B.PA_RESERVE_NO '; SELECT ''X'' ' ' FROM V02A_VIEW_PA ' ' WHERE V02AEMPID = ''' Paramstr(1) ''' ' //登入使用者 ' AND V02AEPTN = ''課長'' ' ' AND V02ASORGIN = ''稽核組'' ' ; |
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
是不是邏輯上的錯誤
你文件中寫課長「或」稽核 但是你SQL卻寫 SELECT ''X'' ' ' FROM V02A_VIEW_PA ' ' WHERE V02AEMPID = ''' Paramstr(1) ''' ' //登入使用者 ' AND V02AEPTN = ''課長'' ' ' AND V02ASORGIN = ''稽核組'' ' ; 應該是 or 吧 以上 因為我不是很清楚你問啥 發問功力請在加強
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
toyota362
一般會員 發表:2 回覆:1 積分:0 註冊:2011-08-13 發送簡訊給我 |
ko大大 真不好意思 是我沒把上述list清楚 讓你看清楚
我上述分段比較清處,以下 現在是有兩張表格 分別是 PA_AUDIT_M 以qryPA_AUDIT_M元件帶出 V02A_VIEW_PA 以qryV02A_VIEW_PA元件帶出 這兩張表格 V02A_VIEW_PA 我要從這取出課長編號 PA_AUDIT_M 我要從這取出主辦稽核員編號 而 Paramstr(1) 就是登入者所帶的編號 再來是 我要用 if 主辦稽核員編號 = 登入者所帶編號 就進入開啟資料庫修改 else if 課長編號 = 登入者所帶編號 就進入開啟資料庫修改 else ShowMessage('此案件已核定完成,非該主辦稽核員或課長不可修改!'); 我要問的是 怎麼只能登入 主辦稽核員編號 的帳號可以修改 而登入課長編號 則不行 以下為程式內語法 begin if (qryPA_AUDIT_MPA_MAIN_AUDITOR = Paramstr(1)) then begin with qryTemp1, SQL do begin Close; Clear; ' SELECT * ' ' FROM PA_AUDIT_D A, PA_AUDIT_M B ' //PA_AUDIT_D 與PA_AUDIT_M B比對該案件編號 並帶出該案件 主辦稽核員 ' WHERE B.PA_MAIN_AUDITOR = Paramstr(1) // 主辦稽核員=登入使用者 ' AND A.RESERVE_NO = B.PA_RESERVE_NO '; Open; end; end else if (qryV02A_VIEW_PAV02AEMPID = Paramstr(1)) then begin with qryTemp2, SQL do begin Close; Clear; ' SELECT * ' ' FROM V02A_VIEW_PA ' ' WHERE V02AEMPID = Paramstr(1) ' //登入使用者只要是課長且是稽核組無論第幾課都可以修改 ' AND V02AEPTN = ''課長'' ' ' AND V02ASORGIN = ''稽核組 '' ' ' AND V02ASORGIN like ''第%課'' '; Open; end; end else begin ShowMessage('此案件已核定完成,非該主辦稽核員或課長不可修改!'); Abort; end; end;
編輯記錄
toyota362 重新編輯於 2011-08-15 09:26:19, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |