Содержание
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.