Народ, подскажите...
FW 1.1, интерфейс IDbConnection, нужно получить имя сервера для передачи во внешнюю утилиту в качестве параметра. Из настроек вытащить нельзя, т.к. неизвестно, как называется там параметр и есть ли он там вообще. Свойства такого у IDbConnection нет, что лежит под коннекшеном я не знаю. Соединение всегда открыто. Попробовал RTFM Books Online, нашёл только @@servername, но это не оно. Это сетевое имя машины на которой установлен сервер, а не имя сервера. Как с сервера пусть будет DEV установленного на машине \\MAIN получить строчку "DEV" ??? Или из коннекшена, вобщем какого цвета бубен заюзать?
IDbConnection - имя серевера где девали?
От:
Аноним
Дата:
28.02.06 09:57
Оценка:
@@servername вернет как раз MAIN\DEV, можно распарсить потом эту строку.
Здравствуйте, Lelikeks, Вы писали:
L>@@servername вернет как раз MAIN\DEV, можно распарсить потом эту строку.
Открываем QA и смотрим, что возвращает запрос select @@servername. Это будет просто MAIN. Я удосужился проверить, перед тем как написать вопрос, и ещё раз сейчас. Может, как-то исправить запрос?
Re: IDbConnection - имя серевера где девали?
От:
Аноним
Дата:
28.02.06 11:13
Оценка:
Странно, у меня его поведение полностью согласуется с описанием в BOL. Возвращается имя машины для дефолтного сервера и имя_машины\имя_инстанса для второго.
Здравствуйте, Lelikeks, Вы писали:
L>Странно, у меня его поведение полностью согласуется с описанием в BOL. Возвращается имя машины для дефолтного сервера и имя_машины\имя_инстанса для второго.
Вот оно! Следовательно, MAIN\DEV это дефолтный сервер, и получаю я по нему MAIN. Но когда пытаюсь коннектится к MAIN, получаю отлуп — правов нету... и что мне теперь делать?
Re[2]: IDbConnection - имя серевера где девали?
От:
Аноним
Дата:
28.02.06 12:26
Оценка:
Насколько я знаю, дефолтный сервер не может называться MAIN\DEV, его имя = имя машины, без всяких слэшей. У вас сколько инстансов сервера вообще установлено на машине MAIN? И к какому нужно коннектиться?
Здравствуйте, Lelikeks, Вы писали:
L>Насколько я знаю, дефолтный сервер не может называться MAIN\DEV, его имя = имя машины, без всяких слэшей. У вас сколько инстансов сервера вообще установлено на машине MAIN? И к какому нужно коннектиться?
Я не знаю, как там настроен сервер. Это не мой сервер...
Я знаю, что в QA коннекчусь к DEV, а select @@servername возвращает MAIN. Что это всё значит, я пытался понять, но неудачно. Мне нужно каким-то образом получить от него DEV.
Re[3]: IDbConnection - имя серевера где девали?
От:
Аноним
Дата:
28.02.06 12:59
Оценка:
Здравствуйте, Lelikeks, Вы писали:
L>Кстати, если у вас под IDbConnection всегда скрывается SqlConnection, можно посмотреть у него DataSource.
Ну во-первых, в приличном обществе так не делают. А во-вторых, там чаще бывают OleDb и Odbc коннекшены, чем Sql. И никто не мешает юзеру засунуть туда, например, какой-нибудь OracleConnection.
Re[3]: IDbConnection - имя серевера где девали?
От:
Аноним
Дата:
28.02.06 13:03
Оценка:
>Ну во-первых, в приличном обществе так не делают. А во-вторых, там чаще бывают OleDb и Odbc коннекшены, чем Sql. И никто не мешает юзеру засунуть туда, например, какой-нибудь OracleConnection.
Если через OleDb, например, установлена связь с акцессовской базой, неясно тогда что понимать под сервером.
>Я не знаю, как там настроен сервер. Это не мой сервер...
Я знаю, что в QA коннекчусь к DEV, а select @@servername возвращает MAIN. Что это всё значит, я пытался понять, но неудачно. Мне нужно каким-то образом получить от него DEV.
Пишут что:
Although the @@SERVERNAME function and the SERVERNAME property of SERVERPROPERTY function may return strings with similar formats, the information can be different. The SERVERNAME property automatically reports changes in the network name of the computer.
In contrast, @@SERVERNAME does not report such changes. @@SERVERNAME reports changes made to the local server name using the sp_addserver or sp_dropserver stored procedure.
т.е. получается что можно изменить имя машины, а @@servername будет возвращать старое значение. Может у Вас тот случай как раз.
Здравствуйте, Lelikeks, Вы писали:
L>т.е. получается что можно изменить имя машины, а @@servername будет возвращать старое значение. Может у Вас тот случай как раз.
Вполне возможно. А рядом там наверное стоит машина с именем MAIN, на которой либо нет сервера, либо у меня к нему нет доступа... а я тут мучаюсь.
Кстати, serverproperty вылечила меня, спасибо, я её сам как-то не нашёл....