C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Подключение клиента с MSSQL
VilgelmKaizer
Отправлено: 03.10.2006, 17:38


Дежурный стрелочник

Группа: Участник
Сообщений: 38



Вопрос не праздный.
Суть его в следующем. Есть клиентская программа, написанная в Builder c использование ADOQuery(посылает простенький запрос на сервер — другой комп).
Если на клиентской машине установлен SQL сервер или хотя бы его клиент то программа работает нормально(т.е. посылает запрос на сервер — другую машину и получает ответ), но если клиент на этой машине не установлен то при попытке подключиться к серверу — на другом компе и выполнить запрос ничего не происходит.
Машина физически подключена к серваку и имеет логический доступ но мое приложение на ней работает не хочет. Ставлю на нее SQL server — все работает.
Возможно нужно скомпилить клиентскую прогу с какой-нибудь dll-кой.
Подскажите с какой(название и где ее найти и как воткнуть в проект).
olegenty
Отправлено: 04.10.2006, 08:28


Ветеран

Группа: Модератор
Сообщений: 2412



всё проще намного — MDAC (MDAC_TYP.EXE) ставь на те машины, где запускаешь прогу.
VilgelmKaizer
Отправлено: 04.10.2006, 10:40


Дежурный стрелочник

Группа: Участник
Сообщений: 38



Можно ли ничего на эти машины не ставить, а дополнить мою приграмму чем-нибудь? Если можно то чем именно?
olegenty
Отправлено: 04.10.2006, 11:05


Ветеран

Группа: Модератор
Сообщений: 2412



1. начиная с определённой версии OS MDAC входит в поставку
2. можно написать инсталлятор, в который зашить свою прогу и MDAC_TYP и ставить MDAC_TYP при необходимости (что я и делаю)
VilgelmKaizer
Отправлено: 05.10.2006, 17:16


Дежурный стрелочник

Группа: Участник
Сообщений: 38



Исходные данные:
Имеется СЕРВЕР — машина на которой установлен и работает SQL Server 2000, СЕРВЕР работает под управлением
Windows2003.
Имеется офисная сеть примерно из 50 машин на которых установлена Windows XP.
По умолчанию пользователи офисных компьютеров не имеют доступа к серверу на прямую, и не должны его иметь -
этого требует безопасность, т.е. диск сервера они подключать не могут.
Клиенты SQL Сервера на их машинах тоже не установлены.

Можно ли получить доступ из киентской программы к SQL серверу(имея login и pass пользователя от SQL SERVER`a)
установленному на СЕРВЕРЕ минуя доступ к самому серверу? Или нужно обязательно иметь доступ к СЕРВЕРУ?

Если можно то как это реализовать программно и какой логический механизм?
Миshук
Отправлено: 05.10.2006, 18:40


Дежурный стрелочник

Группа: Участник
Сообщений: 36



Приветствую!
QUOTE
Или нужно обязательно иметь доступ к СЕРВЕРУ?
Вообще не обязательно. если знаешь имя SQL-сервера, попробуй на одном из компов сети создать udl-файл, в котором укажи имя SQL-сервера, а также имя и пароль. потом поробуй выбрать какую нибудь базу(ниже в выпадающем списке). если не заругается и пройдет проверка соединения — юзай эту udl-ку в своей клиентской программе для соединеия с базой.
P.S. что-то мне сначала показалось что у тебя есть администраторский логин и пароль SQL-сервера. Однако, вся эта байда будет работать если учетная запись СКЛ сервера, логин и пароль которой у тебя есть, содержит права юзера того компа, с которого ты хочешь получить доступ к SQL-серверу

olegenty
Отправлено: 09.10.2006, 09:29


Ветеран

Группа: Модератор
Сообщений: 2412



без клиентской части нихрена работать не будет.
клиентская часть — ничто иное, как OLEDB провайдер MSSQL, либо его ODBC драйвер. вот они-то и содержатся во MDAC_TYP.EXE. отсюда вывод: если в системе отсутствует провайдер либо драйвер, то никакое знание паролей не поможет.
Миshук
Отправлено: 09.10.2006, 11:09


Дежурный стрелочник

Группа: Участник
Сообщений: 36



Приветствую!
Ну если VilgelmKaizer грит что
QUOTE
Имеется офисная сеть примерно из 50 машин на которых установлена Windows XP.
и как было отмечено выше
QUOTE
1. начиная с определённой версии OS MDAC входит в поставку
, то проблем не должно возникнуть...

Вернуться в Работа с базами данных в C++Builder