![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при подключении к БД [D7, MSSQL]
CruiserD © (2007-10-24 11:20:00)Здравствуйте.
Есть програмуля, собственноручно написанная и успешно работающая в моей организации. Продал ее в другую организацию. В одном месте программы происходит подключение к БД через компонент ADOConnection. Формируется ConnectionString на основе введенных пользователем логина и пароля и прочитанных из ини файла имени сервака и имени БД, потом свойству Connected присваивается TRUE. И в этом месте прога выдает ошибку: "Недопустимое значение свойства. Убедитесь, что значение введено правильно". У меня на работе такого не происходит, все гладко работает. Платформы одни и теже. И у меня и там сервак вин2003 сервер и MSSQL Server 2000 SP3 проинсталены с одного компакта, лицензионные.
Подскажите, что за свойство может так себя проявлять, а то ехать к ним далековато и вести Дельфу и исходники к ним не очень хочется.
CruiserD (2007-10-26 14:35:00) [1]Проблема решена.
В свойстве ДефаултДатабейз проблемного АДОКонекшена было указано имя БД, которая есть у меня, а у клиента такого нет. Очистил и все пошло.
CruiserD (2007-10-25 18:14:00) [2]Проверил. Точно такая же, как и ожидалось:
Provider=SQLOLEDB.1;Persist Security Info=True;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=localhost;Data Source=192.168.0.1;Initial Catalog=Bron_Mr;User ID=Admin;Password=nimda
Почему ж на какое то свойство плюется?
CruiserD (2007-10-25 17:11:00) [3]Хорошая, удобная процедурка.
Но она делает все тоже самое, что я делаю и без процедуры.
Вообщем попробовал я с этой функцией, все тоже самое.
Сейчас попрошу клиента выслать скрин с сформированной коннекшнстринг.
ЮЮ (2007-10-25 06:35:00) [4]Всегда хватало этого:
function BuildConnectionStringForMSSQL(
const AServer, ADatabase, AUser, APassword: string
): string;
begin
Result :=
'Provider=SQLOLEDB.1;Persist Security Info=False;';
if (AUser = '') and (APassword = '') then
Result := Result + 'Integrated Security=SSPI;'
else
Result := Result + 'User ID=' + AUser + ';Password=' + APassword + ';';
Result := Result +
'Initial Catalog=' + ADatabase + ';' +
'Data Source=' + AServer;
end;
при пустом логине и пароле формируется строка для Win-аутентификации, с заполненными - для SQL аутентификации
CruiserD (2007-10-24 19:01:00) [5]сам писал в ини файле латиницей
Правильный_Вася (2007-10-24 18:05:00) [6]имена не юникодные случайно?
русские буквы не вклеились?
CruiserD (2007-10-24 17:07:00) [7]ну неужели такого ни у кого не было? :-(
я даже не знаю с какой стороны копать
потому что в одной локалке все идеально, а в другой такая фигня :-(
CruiserD (2007-10-24 15:48:00) [8]ну понимаю я понимаю
вообще-то я везде всегда выставляю в настройках алиасов алиас по тисипи и убираю пайпесы
но здается мне дело не в этом
у меня в проге используется 2 БД, с первой без проблем тем же способом подключается
а вот при попытке подключения ко второй вылетает такая фигня (описанная выше)
И самое интересное есть другая прога, которая работает также с двумя этими базами и подключается без проблем
Я просто хотел узнать, кто и на что ругается, говоря "Недопустимое значение свойства. Убедитесь, что значение введено правильно"
megabyte (2007-10-24 15:40:00) [9]
> CruiserD © (24.10.07 14:27) [8]
> тисипи даже не при чем тут, на самом их серваке, где стоит
> СУБД таже херня выскакивает
Если Клиент и БД на одной машине - это не значит, что они не работают по TCP/IP-протоколу...
CruiserD (2007-10-24 14:27:00) [10]тисипи даже не при чем тут, на самом их серваке, где стоит СУБД таже херня выскакивает
А строка сформированная вот такая, как я и указывал:
DM1.Bron_DB.ConnectionString:='Provider=SQLOLEDB.1;Persist '+
'Security Info=True;Use Procedure for Prepare=1;Auto '+
'Translate=True;Packet Size=4096;Workstation ID=localhost;'+
'Data Source='+MainDlg.IniServer_bu+';Initial Catalog='+
MainDlg.IniDatabase_bu+';User ID='+MainDlg.CurUser+';Password='+
MainDlg.CurPass;
+ подставить значения, которые я указал выше
чудеса какие то
Stanislav (2007-10-24 13:06:00) [11]Какая сформированная строка получается?
Виталий Панасенко(дом) (2007-10-24 12:52:00) [12]TCP/IP настроен ?
CruiserD (2007-10-24 11:56:00) [13]переменные проверял по шовмессаджу (клиент присылал скрин):
IniServer_bu=192.168.0.1
IniDatabase_bu=Bron_Mr
CurUser=Admin
CurPass=nimda
С такими же настройками у меня с их тестовой БД все работает :-(
Правильный_Вася (2007-10-24 11:47:00) [14]проверь все переменные на наличие кавычек, пробелов, слэшей, спецсимволов
CruiserD (2007-10-24 11:37:00) [15]DM1.Bron_DB.Connected:=FALSE;
DM1.Bron_DB.ConnectionString:='Provider=SQLOLEDB.1;Persist '+
'Security Info=True;Use Procedure for Prepare=1;Auto '+
'Translate=True;Packet Size=4096;Workstation ID=localhost;'+
'Data Source='+MainDlg.IniServer_bu+';Initial Catalog='+
MainDlg.IniDatabase_bu+';User ID='+MainDlg.CurUser+';Password='+
MainDlg.CurPass;
DM1.Bron_DB.Connected:=TRUE;
Переменные IniServer_bu и IniDatabase_bu читаются из ини файла при онкриейте главной формы
А CurUser и CurPass вводятся юзером при подключении
Да вот с удаленным доступом пока тоже заморочки, но долбаю их в этом направлении. А стартануть програму нужно им побыстрее. Регистрация клиентов и бронирование санаторных номеров.
Маша Шрайбер (2007-10-24 11:31:00) [16]>> CruiserD © (24.10.07 11:20)
Как выглядит сфорированная строка и как она формируется?
megabyte (2007-10-24 11:30:00) [17]1) Путь до БД прямой или алиас?
2) Как присваиваешь значения имен сервера, бд, логина, пароля: в пропертях по индексу, по имени поля или вручную формируя строку подключения?
3) Возможно настройки сервера БД разные...
з.ы. не хочешь везти Дельфу, попроси, чтоб дали доступ удаленно подконнектиться :)