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

Delphi 兩個Query不同登入者的驗證,與基本元件用法

缺席
toyota362
一般會員


發表:2
回覆:1
積分:0
註冊:2011-08-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-08-13 15:50:19 IP:118.167.xxx.xxx 訂閱
請問大大們,我現在要驗證  登入者是否與該 課長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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-08-15 00:41:48 IP:114.25.xxx.xxx 訂閱
是不是邏輯上的錯誤
你文件中寫課長「或」稽核
但是你SQL卻寫
SELECT ''X'' '
' FROM V02A_VIEW_PA '
' WHERE V02AEMPID = ''' Paramstr(1) ''' ' //登入使用者
' AND V02AEPTN = ''課長'' '
' AND V02ASORGIN = ''稽核組'' ' ;
應該是 or 吧

以上
因為我不是很清楚你問啥
發問功力請在加強
------
======================
昏睡~
不昏睡~
不由昏睡~
toyota362
一般會員


發表:2
回覆:1
積分:0
註冊:2011-08-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-08-15 23:24:32 IP:118.167.xxx.xxx 訂閱
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, 註解 無‧
系統時間:2024-04-24 5:46:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!