На главную страницу
Форум txt.version   




Статья :: Управление наборами данных

 

Управление наборами данных

Компонент 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. Функция возвращает число обработанных запросом записей. Следующий фрагмент кода иллюстрирует применение функции Execute.

procedure TForml.SendBtnClick(Sender: TObject); 

var FParams: TParams;

FDataSet: TSQLDataSet; 

begin

FParams := TParams.Create;

 try

FParams.Items[0].Aslnteger := 1234; FParams.Items[1].AsInteger := 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;

которая возвращает О в случае успешного выполнения запроса или код ошибки.

Метод

procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);

возвращает список таблиц базы данных. Параметр SystemTables позволяет включать в формируемый список List системные таблицы.

Метод GetTableNames дополнительно управляется свойством

TTableScope = (tsSynonym, tsSysTable, tsTable, tsView);

 TTableScopes = set of TTableScope; 

property TableScope: TTableScopes;

которое позволяет задать тип таблиц, имена которых попадают в список. Для каждой таблицы можно получить список полей, использовав метод

procedure GetFieldNames(const TableName: String; List: TStrings);

и список индексов при помощи метода

procedure GetlndexNames(const TableName: string; List: TStrings);

В обоих методах список возвращаемых значений содержится в параметре List.

Аналогичным образом метод

procedure GetProcedureNames(List: TStrings); 

возвращает список доступных хранимых процедур, а метод

procedure GetProcedureParams(ProcedureName: String; List: TList); 

определяет параметры отдельной процедуры.

 

Управление наборами данных

страницы в данном разделе 
 ГЛАВА 17  ГЛАВА 17Технология dbExpress
 Драйверы доступа к данным  Соединение с сервером баз данных
 Управление наборами данных  Транзакции
 Использование компонентов наборов данных  Класс TCustomSQLDataSet
 Компонент TSQLDataSet  Компонент TSQLTable
 Компонент TSQLQuery  Компонент TSQLStoredProc
 Компонент TSimpleDataSet  Способы редактирования данных
 Интерфейсы dbExpress  Интерфейс ISQLDriver
 Интерфейс ISQLConnection  Интерфейс ISQLCommand
 Интерфейс ISQLCursor  Отладка приложений с технологией dbExpress
 Распространение приложений с технологией dbExpress  Резюме


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста