![]() |
![]() |
![]() |
Интерфейс
ISQLConnection
Интерфейс ISQLConnection обеспечивает работу соединения. Он передает запросы серверу и возвращает результаты, создавая экземпляры интерфейса iSQLCommand; управляет транзакциями; поддерживает передачу метаданных при помощи интерфейса ISQLMetaData.
Для открытия соединения используется метод
function connect(ServerName: PChar; UserName: PChar; Password: PChar): SQLResult; stdcall;
где ServerName — имя базы данных, UserName И Password — имя и пароль пользователя.
Закрывает соединение метод
function disconnect: SQLResult; stdcall;
Параметры соединения управляются методами
function SetOption(eConnectOption: TSQLConnectionOption; lvalue: Longlnt): SQLResult; stdcall;
function GetOption(eDOption: TSQLConnectionOption; PropValue: Pointer; MaxLength: Smalllnt; out Length: Smalllnt): SQLResult; stdcall;
Для обработки запроса, проходящего через соединение, создается интерфейс ISQLCommand
function getSQLCommand(out pComm: ISQLCommand): SQLResult; stdcall;
Обработка транзакций осуществляется тремя методами:
function beginTransaction(TranID: LongWord): SQLResult;
stdcall; function commit(TranID: LongWord): SQLResult;
stdcall; function rollback(TranID: LongWord): SQLResult; stdcall;
При помощи метода
function getErrorMessage(Error: PChar): SQLResult; overload; stdcall;
организована обработка исключительных ситуаций в компоненте TSQLConnection. В нем реализована защищенная процедура SQLError, которую можно использовать в собственных компонентах и при необходимости дорабатывать.
Например, можно написать собственную процедуру контроля ошибок примерно по такому образцу:
procedure CheckError(IConn: ISQLConnection);
var FStatus: SQLResult;
FSize:SmallInt;
FMessage: pChar;
begin
FStatus := IConn.getErrorMessageLen(FSize);
if (FStatus = SQL_SUCCESS)and(FSize > 0) then
begin
FMessage := AllocMem(FSize + I);
FStatus := IConn.getErrorMessage(FMessage);
if FStatus = SQL_SUCCESS
then MessageDlg (FMessage, mtError, [rnbOK] , 0)
else
MessageDlg('Checking error', mtWarning, [mbOK], 0) ;
if Assigned(FMessage)
then FreeMem(FMessage);
end;
end;
Доступ к интерфейсу isQLConnection можно получить через свойство
property SQLConnection: ISQLConnection;
компонента TSQLConnection.
![]() |
![]() |
![]() |
Понятие же "физического вакуума" в релятивистской квантовой теории поля подразумевает, что во-первых, он не имеет физической природы, в нем лишь виртуальные частицы у которых нет физической системы отсчета, это "фантомы", во-вторых, "физический вакуум" - это наинизшее состояние поля, "нуль-точка", что противоречит реальным фактам, так как, на самом деле, вся энергия материи содержится в эфире и нет иной энергии и иного носителя полей и вещества кроме самого эфира.
В отличие от лукавого понятия "физический вакуум", как бы совместимого с релятивизмом, понятие "эфир" подразумевает наличие базового уровня всей физической материи, имеющего как собственную систему отсчета (обнаруживаемую экспериментально, например, через фоновое космичекое излучение, - тепловое излучение самого эфира), так и являющимся носителем 100% энергии вселенной, а не "нуль-точкой" или "остаточными", "нулевыми колебаниями пространства". Подробнее читайте в FAQ по эфирной физике.
|
![]() |