Управление наборами данных
Компонент TSQLConnection позволяет выполнять некоторые операции с подключенными наборами данных и следить за их состоянием.
Свойство:
property DataSetCount: Integer;
…возвращает число подключенных через данное соединение наборов данных.
Но это только активные наборы данных, переданные в связанные компоненты. Общее число выполняющихся в настоящий момент запросов возвращает свойство:
property ActiveStatements: LongWord;
Если сервер БД установил для данного соединения максимальное число одновременно выполняющихся запросов, то оно доступно в свойстве:
property MaxStmtsPerConn: LongWord;
Поэтому перед открытием набора данных можно выполнять следующий код, который повысит надежность приложения:
if MyQuery.SQLConnection.ActiveStatements <= MyQuery.SQLConnection.MaxStmtsPerConn their MyQuery.Open else MessageDlg ('Database connection is busy', mtWarning, [mbOK], 0);
В случае возникновения непредвиденной ситуации все открытые через данное соединение наборы данных можно быстро закрыть методом:
procedure CloseDataSets;
…без разрыва соединения.
При необходимости компонент TSQLConnection может самостоятельно выполнять запросы SQL, не прибегая к помощи компонента TSQLQuery или TSQLDataSet. Для этого предназначена функция:
function Execute(const SQL: string; Params: TParams; ResultSet:Pointer=nil): Integer;
Если запрос должен содержать параметры, то необходимо сначала создать объект – список параметров TParams и заполнить его. При этом, т. к. объект TParams еще не связан с конкретным запросом, важен порядок следования параметров, который должен совпадать в списке TParams и в тексте SQL.
Если запрос возвращает результат, метод автоматически создает объект типа TCustomSQLDataSet и возвращает указатель на него в параметр Resultset. Функция возвращает число обработанных запросом записей.