Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
ВнизВерсия SQL клиента и сервера - узнать Найти похожие ветки
← →
Gu (2011-02-20 07:46) [0]Как узнать версию Sql сервера и\или клиента, который установлен в системе, желательно без TQuery и TSqlQuery? Интересует строка, типа "10.5 R2"
Rad 2010, W7
← →
Palladin © (2011-02-20 08:02) [1]зачем?
← →
Anatoly Podgoretsky © (2011-02-20 10:35) [2]> Gu (20.02.2011 07:46:00) [0]
Этих SQL серверов, как Бразилии диких обезьян
← →
АН (2011-02-20 13:49) [3]Функции есть и хранимые процедуры системные, про MS SQL расскажу, на других серверах наверное аналогично
← →
clickmaker © (2011-02-20 13:52) [4]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
← →
Плохиш © (2011-02-20 13:53) [5]
> желательно без TQuery и TSqlQuery
Возьми TAdoDataset.
← →
АН (2011-02-20 14:17) [6]>Возьми TAdoDataset.
или Command
← →
Gu (2011-02-21 01:37) [7]TAdoDataset неподходит, задача не при подключении к БД это выяснить а на локальном ПК, там где запущена прога, определить установлен ли sql сервер и его версию.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
не подходит, вы оттуда пробовали ключи читать? Кроме sqlexpress остальные прочитать нельзя (те, которые как раз за серваки отвечают - из проги не прочитываются).
например OpenKeyReadOnly("SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS") даст false, хотя через регедит ключ видно.
и в GetKeyNames(MyList) он не попадает приRootKey:=HKEY_LOCAL_MACHINE;
if OpenKeyReadOnly("Software\Microsoft\Microsoft SQL Server")=True then
GetKeyNames(MyList);
еще идеи?
← →
Anatoly Podgoretsky © (2011-02-21 09:57) [8]> Gu (21.02.2011 01:37:07) [7]
Те которые, за серваки отвечают находятся на серверах.
← →
Гость (2011-02-21 10:59) [9]>>Как узнать версию Sql сервера
sqlcmd -L
Servers:
DBS
DBSERVER
FORWARD
KRS-029
RZV-110
SCOM
SQLSERVER2
STORM3
UKTDB2
VTRM2
которого?
← →
Gu (2011-02-21 12:46) [10]2 Anatoly Podgoretsky
куда поставишь там и находятся. если допустим на обычный пк ставится sql server compact, который 5 метров весит, что, ПК серваком становится?
http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx
и даже если на серваках, что, там другой метод определения?
2 Гость.
и чего мне из проги командную строку дергать, я про дельфи спрашиваю.
← →
sniknik © (2011-02-21 12:59) [11]> и в GetKeyNames(MyList) он не попадает при
у тебя ошибка в прог... в правах.
← →
Gu (2011-02-21 13:04) [12]прога должна запускаться от имени пользователя. кроме того на ключах разрешение для пользователя стоит на чтение, так что читать должен, причем он из этой ветки все ключи читает нормально кроме нужных.
кроме реестра никак чтоли? по файлам лазить не хочется, т.к. может быть установлен не по умолчальному пути. может библиотеки его где в системе прописаны с версией?
← →
Гость (2011-02-21 13:28) [13]>> и чего мне из проги командную строку дергать, я про дельфи спрашиваю.
а я говорю, что вот столько серверов. От 2000 до 2008.
Какой из них проге определять?
← →
Gu (2011-02-21 13:37) [14]неважно какой. какой(кие) есть. вот если запустить msSql managment studio (из стандартной поставки sql server, даже в express она есть), там в начале выводится окошко, к чему подключаться, в нем если в имени сервера выбрать "обзор" то она показывает имена всех локальных и сетевых серваков + их версии. вот что то подобное надо. по 1433 локалхост если опрашивать, а чего туда посылать то чтобы он все это выдал?
нашел тут вот это http://www.delphisources.ru/pages/faq/base/srvs_list.html но sql серваки она невидит хотя в константах они есть в начале. и версию сервака определяет а не самого сервера-приложения. обратно нето.
← →
sniknik © (2011-02-21 13:49) [15]> но sql серваки она невидит хотя в константах они есть в начале.
это настройка безопасности в самом мс сервере, у нас в сети тоже видится от силы пяток, хотя стоят чуть ли не на каждой машине т.е. где то 200-250 должно быть.
← →
Gu (2011-02-21 14:01) [16]пока сделал поиск через реестр, через список унинстала, там анализирую строки на "sql",
{}Procedure GetSqlVer;
var MyList: TStringList;MyRegistry: TRegistry;i: Integer;Str: string;i7:integer;
begin
Act("Microsoft SQL Server\Client\AddOn:",clblack,true);i7:=0;
MyRegistry:=TRegistry.Create;MyList:=TStringList.Create;
with MyRegistry do begin RootKey:=HKEY_LOCAL_MACHINE;
if OpenKeyReadOnly("Software\Microsoft\Windows\CurrentVersion\Uninstall")=True then GetKeyNames(MyList);
CloseKey;if MyList.Count=0 then begin Act("Ошибка получения списка"#10,clmaroon);MyList.Free;exit;end;
for i:=0 to MyList.Count-1 do begin
OpenKeyReadOnly("Software\Microsoft\Windows\CurrentVersion\Uninstall\"+MyList[i]);
Str:=ReadString("DisplayName");
if (Str<>"")and(pos("SQL",Uppercase(Str))>0) then begin inc(i7);Act(" "+inttostr(i7)+". "+Str+#10);
end;CloseKey;end;end;MyList.Free;if i7=0 then Act(" не установлен"#10,clmaroon);Act(" "#10);
end;
// act - аналог messagebox
получаю вот такое
1. Системные типы Microsoft SQL Server System CLR Types
2. Visual Studio 2010 Tools for SQL Server Compact 3.5 SP2 RUS
3. Microsoft SQL Server Compact 3.5 SP2 RUS
4. Объекты SMO Microsoft SQL Server 2008 R2
5. Microsoft SQL Server 2008 R2 Transact-SQL Language Service
6. Microsoft SQL Server Compact 3.5 SP2 Query Tools RUS
7. Microsoft SQL Server 2008 R2 Data-Tier Application Project
8. Microsoft SQL Server Browser
9. Microsoft SQL Server Database Publishing Wizard 1.4
10. Платф. прилож. уровня данных для Microsoft SQL Server 2008 R2
11. Политики Microsoft SQL Server 2008 R2
12. Microsoft SQL Server 2005 Compact Edition [ENU]
уже хотябы понятно что установлен. но хотелось бы чтото понаряднее чтобы было..
← →
Gu (2011-02-21 14:03) [17]а вот это не фурычит..
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 begin
if (Length(trim(dmo.Item(i))) > 0) and (CompareText(dmo.Item(i),"(LOCAL)")<>0) then Strings.Add(AnsiUpperCase(dmo.Item(i)));end;
except
end;
end;
← →
sniknik © (2011-02-21 14:28) [18]> а вот это не фурычит..
а оно у тебя стоит? и потом что значит "не фурычит"? может там просто нет того чего ты от него ждешь. может он тебе вместо имени сервера определенный в настройках алиас возвращает...
← →
Anatoly Podgoretsky © (2011-02-21 14:30) [19]> Gu (21.02.2011 12:46:10) [10]
Поставили на сервер, а ты ищешь там где светло и при этом обижаешься
← →
Gu (2011-02-21 14:33) [20]да, нету такого в системе вроде и оппираца на него нельзя для всех пк.. и дмошную библиотеку не хочется с прогой таскать.
← →
sniknik © (2011-02-21 14:33) [21]> алиас
кстати...
> if (Length(trim(dmo.Item(i))) > 0) and (CompareText(dmo.Item(i),"(LOCAL)")<>0) then
два из них ты сам обрезаешь.
← →
Гость (2011-02-21 14:34) [22]http://www.sql.ru/forum/actualthread.aspx?tid=7068&hl=sqldmo
← →
Palladin © (2011-02-22 14:38) [23]дауны отакэ, то в системе, то в сети...
← →
Gu (2011-02-22 19:08) [24]короче полезной инфы 0
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c