procedure CloseDataSets; без разрыва соединения.
При необходимости компонент TSQLConnection может самостоятельно выполнять запросы SQL, не прибегая к помощи компонента TSQLQuery или TSQLDataSet. Для этого предназначена функция
function Execute (const SQL: string;
Params: TParams;
ResultSet:Pointer=nil): Integer;
Если запрос должен содержать параметры, то необходимо сначала создать объект - список параметров TParams и заполнить его. При этом, т. к. объект TParams еще не связан с конкретным запросом, важен порядок следования параметров, который должен совпадать в списке TParams и в тексте SQL.
Если запрос возвращает результат, метод автоматически создает объект типа TCustomSQLDataSet и возвращает указатель на него в параметр ResultSet. Функция возвращает число обработанных запросом записей. Следующий фрагмент кода иллюстрирует применение функции Execute.
procedure TForml.SendBtnClick(Sender: TObject);
var FParams: TParams;
FEataSet: TSQLDataSet;
begin
FParams := TParams.Create;
try
FParams.Items[0].AsInteger := 1234;
FParams.Items[1].Aslnteger := 6751;
MyConnection.Execute{'SELECT * FROM Orders WHERE OrderNo >= ;Ord AND EmpNo = :Emp', FParams, FDataSet);
if Assigned(FDataSet) then with FDataSet do begin Open;
while Not EOF do begin
Next;
end;
Close;
end;
finally
FParams.Free;
end;
end;
Если запрос не имеет настраиваемых параметров и не возвращает набор данных, можно использовать функцию
function ExecuteDirect(const SQL: string): LongWord;
которая возвращает 0 в случае успешного выполнения запроса или код ошибки.
Метод
procedure GetTableNames(List: TStrings;
SystemTables: Boolean = False);
возвращает список таблиц базы данных. Параметр SystemTables позволяет включать в формируемый список List системные таблицы.
Метод GetTableNames дополнительно управляется свойством
TTableScope = (tsSynonym, tsSysTable, tsTable, tsView) ;
TTableSccpes = set of TTableSccpe;
property TableScope: TTableScopes;
которое позволяет задать тип таблиц, имена которых попадают в список. Для каждой таблицы можно получить список полей, использовав метод
procedure GetFieldNames (const TableNarne: String; List: TStrings); и список индексов при помощи метода
procedure GetlndexNames (const TableNarne: string;
List: TStrings);
В обоих методах список возвращаемых значений содержится в параметре List.
Аналогичным образом метод
procedure GetProcedureNames(List: TStrings); возвращает список доступных хранимых процедур, а метод procedure GetProcedureParams (ProcedureName: String; List: TList) ; определяет параметры отдельной процедуры.
Транзакции
Подобно своим аналогам в В DE и ADO компонент TSQLConnection поддерживает механизм транзакций и делает это сходным образом.
Начало, фиксацию и откат транзакции выполняют методы
prœedure StartTransaction (TransDesc : TTransactionDesc);
prœeclure Commit (TransDesc: TTransactionDesc) ;
prœedure Rollback (TransDesc: TTransactionDesc);
При этом запись TTransactionDesc возвращает параметры транзакции:
TTransIsolatioilLevel = (xilDIETYRETO, xilREADCOMMITTED, xilEEPEÄTÄBLERFAD, xilŒSTOM) ; TTransactionDesc = packed record