1. 程式人生 > 實用技巧 >delphi使用ODAC控制元件常用功能

delphi使用ODAC控制元件常用功能

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;');