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

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

Ошибка при подключении к БД [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) Возможно настройки сервера БД разные...

з.ы. не хочешь везти Дельфу, попроси, чтоб дали доступ удаленно подконнектиться :)


Наверх

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