Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.06;
Скачать: CL | DM;

Вниз

как работать с SQL-DMO   Найти похожие ветки 

 
victor_ch   (2003-09-14 14:26) [0]

Добрый день Всем!!!

нашел я как то кусок кода который вытаскивает список MSSQL серверов в локальной сети, но к нему была приписка что этот код будет работать при установленном SQL-DMO
я попробовал, у меня не получилось и вот теперь не понятно установлен ли на моей машине этот самый SQL-DMO (подскажите как это можно узнать) и если установлен то надо ли его как то подключать в Delphi (как это делается в Visual Basic)


 
sniknik ©   (2003-09-14 16:33) [1]

var Application: OleVariant;
begin
try
try
Application:= CreateOleObject("SQLDMO.Application");
except
on E: Exception do //неустановлен // или просто глючит
end;
finally
Application:= Unassigned;
end;
end;


 
victor_ch   (2003-09-14 17:34) [2]

при проверке кодом от
> sniknik © (14.09.03 16:33) [1]


получилось что SQLDMO установлен, но почему тогда
не выдается список серверов в сети
код для этого использую следующий

procedure GetServerList(Strings: TStrings);
var dmo:OleVariant;
i:Integer;
begin
Strings.Clear;
try
dmo:=CreateOleObject("SQLDMO.SQLServer");
dmo:=dmo.Application;
dmo:=dmo.ListAvailableSQLServers;
for i:=1 to dmo.Count do
if (Length(trim(dmo.Item(i))) > 0) and (CompareText(dmo.Item(i),"(LOCAL)")<>0)
then Strings.Add(AnsiUpperCase(dmo.Item(i)));
except
end;
end;


 
sniknik ©   (2003-09-14 19:04) [3]

может потому что нет установленных SQL серверов в сети? убери условие хотя бы себя видеть будеш если конечно имеемся MSSQL на локали.

и кстати поправь немного код (мне кажется так будет лутше)

procedure GetServerList(Strings: TStrings);
var app, dmo:OleVariant;
i:Integer;
begin
Strings.Clear;
app:=CreateOleObject("SQLDMO.Application");
try
dmo:=app.ListAvailableSQLServers;
for i:=1 to dmo.Count do
if (Length(trim(dmo.Item(i))) > 0) and (CompareText(dmo.Item(i),"(LOCAL)")<>0)
then Strings.Add(AnsiUpperCase(dmo.Item(i)));
finally
app:= Unassigned;
end;
end;


 
victor_ch   (2003-09-15 23:54) [4]

код подправил
но у меня цикл for не выполняется не разу
потому что dmo.count=0 хотя в локальной сети точно есть 2 MSSQL сервера, может дело в версии MSSQL у нас стоит 7 версия?


 
Плохиш_   (2003-09-16 00:10) [5]

К сожалению, ДМО выдаёт список только SQL-серверов своей версии :-(


 
victor_ch   (2003-09-16 00:36) [6]


> К сожалению, ДМО выдаёт список только SQL-серверов своей
> версии :-(

а от чего зависит версия DMO? как я понимаю она должна поставляться вместе с клиентом MSSQL, но у нас тогда одинаковая версия, клиента и сервера потому что мы ставили все с одного диска


 
jocko ©   (2003-09-16 10:47) [7]

Попробуй импортировать саму библиотеку в дельфи,
возможно в ранней версии dmo ListAvailableSQLServers по другому назыался, или может есть альтернативный метод...



Страницы: 1 вся ветка

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
8-18485
pole
2003-06-09 11:23
2003.10.06
как в мультимедиа в Дельфи проиграть список MP3-файлов


14-18579
S.A.S.
2003-09-18 14:56
2003.10.06
---|Ветка была без названия|---


1-18396
BigVova
2003-09-25 17:46
2003.10.06
Правильный подход


1-18339
BanderLog
2003-09-23 12:44
2003.10.06
Работа с ACad


1-18309
ah
2003-09-23 23:03
2003.10.06
почему так происходит - открываю файл при закрывании дает ошибку