(1) identifier redeclared : 'SysUtils' 代表 在uses區塊重覆宣告 SysUtils
(2) QDBCHECK 是Local 變數 未Create 就要使用 應該會產生Exception才對
(3) QDBCHECK 還在OPEN狀態 又要執行SQL Command 也會產生Exception
function 修改如下:
function WRITE_BMAN_PMS(BNENO,PMSFUN:STRING;VALUE:BOOLEAN):BOOLEAN ;
VAR QDBCHECK : TQUERY;
begin
TRY
QDBCHECK := TQUERY.CREATE(SELF);
QDBCHECK .DATABASE := YourDatabase; // or QDBCHECK.DataBaseName := YourDataBaseName;
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('select * From SYSPMS');
QDBCHECK.SQL.Add('WHERE BNENO = ''' BNENO ''' ');
QDBCHECK.SQL.Add('AND PMSFUN = ''' PMSFUN ''' ');
QDBCHECK.Open;
TRY
IF QDBCHECK.Eof = FALSE THEN
BEGIN //FOUND
QDBCHECK.Close
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('UPDATE SYSPMS SET ');
QDBCHECK.SQL.Add('PMSPMS = ''' BOOLEANTOSTR(VALUE) '''');
QDBCHECK.SQL.Add('WHERE BNENO = ''' BNENO '''');
QDBCHECK.SQL.Add(' AND PMSFUN = ''' PMSFUN '''');
QDBCHECK.ExecSQL;
END ELSE BEGIN
QDBCHECK.Close
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('INSERT INTO SYSMPS');
QDBCHECK.SQL.Add('(BNENO,PMSFUN,PMSPMS)');
QDBCHECK.SQL.Add('VALUES');
QDBCHECK.SQL.Add('(''' BNENO ''',');
QDBCHECK.SQL.Add(' ''' PMSFUN ''',');
QDBCHECK.SQL.Add(' ' BOOLEANTOSTR(VALUE) ')');
QDBCHECK.ExecSQL ;
END;
RESULT := TRUE ;
EXCEPT
RESULT := FALSE ;
END;
FINALLY
QDBCHECK.Free;
END;
end;
===================引 用 文 章===================
以下是我參考書上面的程式用的是DELPHI "7"
下面是將資料庫中的會員權限"讀"出來
BNENO是會員編號、PMSFUN是權限的名稱PMSPMS是權限的TRUE/FLASE的設定
而我RUN的時後BOOLEANTOSTR這個會出現在錯誤,然後我USE了SysUtils『論壇中找到的』
結果還是有錯誤identifier redeclared : 'SysUtils' 請問如何解決
這程式在一個頁面時,能打勾,選擇會員能否使用哪一項功能
他這個寫法是將功能跟會員編號連在一起
所以整個程式將會出現很多次"功能"的程式
是否有更簡潔的方式來寫
是否有高手能po個範例or說個大方向thx
function WRITE_BMAN_PMS(BNENO,PMSFUN:STRING;VALUE:BOOLEAN):BOOLEAN ;
VAR QDBCHECK : TQUERY;
begin
TRY
QDBCHECK.Close;
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('select * From SYSPMS');
QDBCHECK.SQL.Add('WHERE BNENO = ''' BNENO ''' ');
QDBCHECK.SQL.Add('AND PMSFUN = ''' PMSFUN ''' ');
QDBCHECK.Close ;
QDBCHECK.Open;
TRY
IF QDBCHECK.Eof = FALSE THEN
IF QDBCHECK.Eof = FALSE THEN
BEGIN //FOUND
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('UPDATE SYSPMS SET ');
QDBCHECK.SQL.Add('PMSPMS = ''' BOOLEANTOSTR(VALUE) '''');
QDBCHECK.SQL.Add('WHERE BNENO = ''' BNENO '''');
QDBCHECK.SQL.Add(' AND PMSFUN = ''' PMSFUN '''');
QDBCHECK.ExecSQL;
END ELSE BEGIN
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('INSERT INTO SYSMPS');
QDBCHECK.SQL.Add('(BNENO,PMSFUN,PMSPMS)');
QDBCHECK.SQL.Add('VALUES');
QDBCHECK.SQL.Add('(''' BNENO ''',');
QDBCHECK.SQL.Add(' ''' PMSFUN ''',');
QDBCHECK.SQL.Add(' ' BOOLEANTOSTR(VALUE) ')');
QDBCHECK.ExecSQL ;
END;
RESULT := TRUE ;
EXCEPT
RESULT := FALSE ;
END;
FINALLY
QDBCHECK.Free;
END;
end;