Содержание
DirectQuery(SqlRequest : String) : Dataset
Выполнить SQL-запрос на языке базы данных
Функция DirectQuery выполняет SQL-запрос на внешнем языке запросов (на языке запросов базы данных).
При использовании этой функции, а точнее внешнего языка запросов, ваша программа теряет переносимость между различными типами баз данных (СУБД).
Пример:
Procedure OnCreate;
Var
D : Dataset;
i : Integer;
Begin
DirectQuery('Set @c:=1');
D := DirectQuery('Select Name, @c:=@c*2 From Table1');
For i:=0 To D.Count-1 Do
Warning(D[i,0] AS String + ', ' + D[i,1] AS String);
End;
Функция DirectQuery так же доступна в хранимых процедурах, но там она не возвращает датасет.
Пример хранимой процедуры:
// Хранимая процедура StoredProcedure
Procedure StoredProcedure(TableName:String; Id:Integer);
Begin
DirectQuery('Update '+TableName+' Set Name=Concat(Name, ''!'') Where Id='+ToStr(Id));
End;
// Программный модуль StoredProcedureTest
Procedure OnCreate;
Begin
Warning('До ' + (Single Name From Table1 Where Id=2));
(Call StoredProcedure('Table1', 2));
Warning('После ' + (Single Name From Table1 Where Id=2));
End;
Смотри функции: TableChanged, DirectDate, Query.
справка