Форум: "Базы";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
ВнизОшибка при подключении к БД Найти похожие ветки
← →
CruiserD © (2007-10-24 11:20) [0]Здравствуйте.
Есть програмуля, собственноручно написанная и успешно работающая в моей организации. Продал ее в другую организацию. В одном месте программы происходит подключение к БД через компонент ADOConnection. Формируется ConnectionString на основе введенных пользователем логина и пароля и прочитанных из ини файла имени сервака и имени БД, потом свойству Connected присваивается TRUE. И в этом месте прога выдает ошибку: "Недопустимое значение свойства. Убедитесь, что значение введено правильно". У меня на работе такого не происходит, все гладко работает. Платформы одни и теже. И у меня и там сервак вин2003 сервер и MSSQL Server 2000 SP3 проинсталены с одного компакта, лицензионные.
Подскажите, что за свойство может так себя проявлять, а то ехать к ним далековато и вести Дельфу и исходники к ним не очень хочется.
← →
megabyte © (2007-10-24 11:30) [1]1) Путь до БД прямой или алиас?
2) Как присваиваешь значения имен сервера, бд, логина, пароля: в пропертях по индексу, по имени поля или вручную формируя строку подключения?
3) Возможно настройки сервера БД разные...
з.ы. не хочешь везти Дельфу, попроси, чтоб дали доступ удаленно подконнектиться :)
← →
Маша Шрайбер © (2007-10-24 11:31) [2]>> CruiserD © (24.10.07 11:20)
Как выглядит сфорированная строка и как она формируется?
← →
CruiserD © (2007-10-24 11:37) [3]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:47) [4]проверь все переменные на наличие кавычек, пробелов, слэшей, спецсимволов
← →
CruiserD © (2007-10-24 11:56) [5]переменные проверял по шовмессаджу (клиент присылал скрин):
IniServer_bu=192.168.0.1
IniDatabase_bu=Bron_Mr
CurUser=Admin
CurPass=nimda
С такими же настройками у меня с их тестовой БД все работает :-(
← →
Виталий Панасенко(дом) (2007-10-24 12:52) [6]TCP/IP настроен ?
← →
Stanislav © (2007-10-24 13:06) [7]Какая сформированная строка получается?
← →
CruiserD © (2007-10-24 14:27) [8]тисипи даже не при чем тут, на самом их серваке, где стоит СУБД таже херня выскакивает
А строка сформированная вот такая, как я и указывал:
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;
+ подставить значения, которые я указал выше
чудеса какие то
← →
megabyte © (2007-10-24 15:40) [9]
> CruiserD © (24.10.07 14:27) [8]
> тисипи даже не при чем тут, на самом их серваке, где стоит
> СУБД таже херня выскакивает
Если Клиент и БД на одной машине - это не значит, что они не работают по TCP/IP-протоколу...
← →
CruiserD © (2007-10-24 15:48) [10]ну понимаю я понимаю
вообще-то я везде всегда выставляю в настройках алиасов алиас по тисипи и убираю пайпесы
но здается мне дело не в этом
у меня в проге используется 2 БД, с первой без проблем тем же способом подключается
а вот при попытке подключения ко второй вылетает такая фигня (описанная выше)
И самое интересное есть другая прога, которая работает также с двумя этими базами и подключается без проблем
Я просто хотел узнать, кто и на что ругается, говоря "Недопустимое значение свойства. Убедитесь, что значение введено правильно"
← →
CruiserD © (2007-10-24 17:07) [11]ну неужели такого ни у кого не было? :-(
я даже не знаю с какой стороны копать
потому что в одной локалке все идеально, а в другой такая фигня :-(
← →
Правильный_Вася (2007-10-24 18:05) [12]имена не юникодные случайно?
русские буквы не вклеились?
← →
CruiserD © (2007-10-24 19:01) [13]сам писал в ини файле латиницей
← →
ЮЮ © (2007-10-25 06:35) [14]Всегда хватало этого:
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-25 17:11) [15]Хорошая, удобная процедурка.
Но она делает все тоже самое, что я делаю и без процедуры.
Вообщем попробовал я с этой функцией, все тоже самое.
Сейчас попрошу клиента выслать скрин с сформированной коннекшнстринг.
← →
CruiserD © (2007-10-25 18:14) [16]Проверил. Точно такая же, как и ожидалось:
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-26 14:35) [17]Проблема решена.
В свойстве ДефаултДатабейз проблемного АДОКонекшена было указано имя БД, которая есть у меня, а у клиента такого нет. Очистил и все пошло.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c