![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL DMO
Hooch © (2004-04-06 08:00:00)День добрый !
Господа, столкнулся с проблемой, суть такая: импортировал библиотеку типов SQL DMO 8.0, пытаюсь соединится с сервером:
with TSQLServer2.Create(Self) do
begin
Connect;
DefaultInterface.LoginTimeout := -1;
DefaultInterface.LoginSecure := true;
DefaultInterface.AutoReConnect := false;
DefaultInterface.Connect('(local)', EmptyParam, ptyParam);
.....
end;
на строке Connect получаю ошибку [SQL DMO] code execution exception: EXCEPTION_ACCESS_VIOLATION
если написать так:
CreateOleObject('SQLDMO.SQLServer').QueryInterface(IID__SQLServer, int);
int.LoginTimeout := -1;
int.LoginSecure := true;
int.AutoReConnect := false;
int.Connect('(local)', EmptyParam, EmptyParam);
...
то соединение успешно, проблема в том что нужно сделать через компонет оболочку, в чем может быть пролема неработоспособности кода ?
Hooch (2004-04-06 15:08:00) [1]При вызове Connect подключаются события. Но что есть Connect что его нет ошибка все равно лезет. Сделал без враппера, "прилепил" события, вроди все работает.
Всем спасибо ! :-)
nikkie (2004-04-06 14:09:00) [2]у меня на D6 AV не возникает. а в чем смысл вызова Connect? это ведь вовсе не подключение к SQLServer-у (тот метод переименован дельфийским генератором TLB->PAS в Connect1).
лично я, если нет нужды работать с событиями COM-объектов, предпочитаю библиотеку типов импортировать, убирая галочку "Generate components wrapper". в этом случае код выглядит так
var
server: _SQLServer2;
begin
server := CoSQLServer2.Create;
server.Connect('(local)', EmptyParam, EmptyParam);
...
Hooch (2004-04-06 08:02:00) [3]во втором примере вместо IID__SQLServer -> IID__SQLServer2