Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо