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

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

SQL Server и Delphi [D6, MSSQL]


prorok2 ©   (2003-06-03 20:42:00) 

Вопрос у меня такой: есть прога, которая через ADO работает с базой данных на MS SQL Server. На клиентском компе настроил в ODBC алиас базы данных, находящейся на серверном компе. Через Enterprise manager клиентской части MS SQL Server на клиентском компе видно эту базу данных, все ее таблицы, все видно.... а прога говорит, что не может соединиться....
что я делаю не то???и что надо сделать?
СonnectionString в TConnection выглядит так: Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MyBase
Помогите, плиз....а то уже не знаю, что делать....


sniknik   (2003-06-05 12:32:00) [1]

интересующийся (05.06.03 11:30)
не придирайся. возможность есть, а пользоватся или нет решать в каждом конкретном случае. не нравится не пользуйся.

я например алиасами в BDE и ODBC не пользуюсь, но не говорю что они не нужны, комуто кажутся удобными.

p.s. часто рассылал udl-и просто для примера как должен быть сделан коннект. вместо долгих обьяснений, и проше поправить готовый чем заново делать.


интересующийся   (2003-06-05 11:30:00) [2]

>А при администрировании большой сетки, достаточно разослать udl, что бы изменить параметры подключения.

Кому? Юзерам? Может просто в проге обращаться в нужную папку и забирать его оттуда.
и вопрос: а если разослать скажем тхт-файл с ConnectionString, что меняется?




АлексейК   (2003-06-05 10:26:00) [3]

интересующийся
>я имел ввиду практическое применение
как часто вы пишите программы, которые потом без перекомпиляции
направляете на другую базу (кстати, это можно предусмотреть в программе заранее и без UDL - меняя в параметрах имя БД и сервера БД) и другой провайдер (используемый провайдер разонравился? или еще что?)
Все можно. Можно и в ini файл настройки прописать, только udl удобнее в данном случае. А при администрировании большой сетки, достаточно разослать udl, что бы изменить параметры подключения.


интересующийся   (2003-06-05 08:34:00) [4]

2sniknik ©
я имел ввиду практическое применение
как часто вы пишите программы, которые потом без перекомпиляции
направляете на другую базу (кстати, это можно предусмотреть в программе заранее и без UDL - меняя в параметрах имя БД и сервера БД) и другой провайдер (используемый провайдер разонравился? или еще что?)


sniknik   (2003-06-05 08:09:00) [5]

интересующийся (05.06.03 07:41)
> а зачем нужен этот UDL?
чето типа алиаса в BDE/DSN в ODBC(файловый), можно не перекомпилируя программу переподключится к другой базе и даже к базе другого провайдера (естественно если не используются особенности именно этого).


интересующийся   (2003-06-05 07:41:00) [6]

а зачем нужен этот UDL?


sniknik   (2003-06-05 00:55:00) [7]

anatolyk © (05.06.03 00:25)
> - вместо ожидаемого имени файла - готовый (или полуготовый) connectionstring

это только в "десигн тайме" тебе готовая строка показывается (типа удобнее), в "рантайме" все нормально будет именно из udl строку брать. проверь. собери к примеру програмку с конектом на udl и открытием одной таблицы, после перенастрой udl на другую базу без этой таблици и запусти exe-шник. будет ошибка (а судить по тому как ты пишеш не должно).


anatolyk   (2003-06-05 00:25:00) [8]

В ж.. ODBC! Когда собираешь connectionstring, D все равно переписывает по-своему. Видно, у него какой-то оптимизатор зашит.
Я, например, так и не смог сделать в свойствах соединения Active = true при указании UDL файла. Как только ставишь True - вместо ожидаемого имени файла - готовый (или полуготовый) connectionstring.


KSergey   (2003-06-04 08:11:00) [9]

Вот только если используете Provider=SQLOLEDB.1- при чем тут ODBC? Оно тут совсем ни при чем...


prorok2   (2003-06-03 21:55:00) [10]

Спасибо большое. Вы не представляете, как меня выручили!!!


anatolyk   (2003-06-03 21:41:00) [11]

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=...;

>>>Data Source=PC1;

Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;

>>>Workstation ID=PC1;

Use Encryption for Data=False;Tag with column collation when possible=False

Это два места, где фигурирует имя компа (с SQL Server-ом и клиентом)


prorok2   (2003-06-03 21:24:00) [12]

Имена компьютеров не меняли, это 100 %. А возник вопрос. А не надо в соединении указывать имя компа, на котором база находится???


anatolyk   (2003-06-03 21:12:00) [13]

У меня такое было, пока я вручную не проверил имена компов, клиента и того, не котором установлена база. Основной комп меняли, и изиенили его сетевое имя (идентификатор). Соединение перестроил. Потом все вернули, но в строке по-прежнему появлялся другой идентификатор. Полез ручками во все файлы (прямо по текстовому поиску в каталоге) и поменял идентификатор на нужный.


Наверх

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