delphi使用ODAC控制元件常用功能
阿新 • • 發佈:2020-08-07
Macro 巨集使用
說明
ODAC將所有巨集名稱替換為其值,並在請求執行SQL時將SQL語句傳送到伺服器。
使用
property Macros: TMacros stored False; function MacroByName(const Value: string): TMacro;
可以使用Macros[巨集順序]方式獲取(依賴於條目的順序,容易出錯)
也可以使用MacroByName('巨集名稱')的方式
property AsDateTime: TDateTime; //使用TDataTime值設定為巨集。 property AsFloat: double; //使用float值分配給巨集。property AsInteger: integer; //使用integer值分配給巨集。 property AsString: string; //使用字串值分配給巨集。 property Value: string; //用於將值設定為巨集。
AsString與Value的區別是,Value會將內容直接替換,AsString會將內容都轉為字串(自動加引號)
//替換後的結果是一樣的 Query1.MacroByName('StringMacro').Value := '''A string'''; Query1.MacroByName('StringMacro').AsString := 'A string';
property Active: boolean default True;
設定為True時,將使用巨集中的內容替換,否則巨集定義將替換為空字串。預設值是true。
列子
1.替換表名
Query1.SQL.Text := 'SELECT * FROM &TableName'; Query1.MacroByName('TableName').Value := 'Dept'; Query1.Open;
2.替換條件
OraQuery.SQL.Text := 'SELECT * FROM Dept WHERE &Where > 20'; OraQuery.Macros[0].Value := 'DeptNo';
3.替換值
OraQuery.SQL:= 'SELECT * FROM Dept ORDER BY &Order'; OraQuery.MacroByName('Order').Value:= 'DeptNo'; OraQuery.Open;
3.批量授權
Script1.SQL.Add('CREATE USER &Username IDENTIFIED BY &Password;'); Script1.SQL.Add('GRANT &Privileges TO &Username;');