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


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс