Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 09:59   #1
Silverra
 
Регистрация: 30.11.2012
Сообщений: 5
По умолчанию ADOconnection- соединение с БД через регистр

Добрый день! Есть две функции, реализующие считывание из регистра и получение командной строки
Код:
function ReadFromReg(KeyName, ParamName: string; DefaultValue: string = ''): string;
begin
  try
    with TRegistry.Create do
    try
      RootKey := HKEY_LOCAL_MACHINE;
      if OpenKey(KeyName, True) then
      begin
        if not ValueExists(ParamName) then
          WriteString(ParamName, DefaultValue);
        Result := ReadString(ParamName);
      end;
      CloseKey;
    finally
      Free;
    end;
  finally
  end;
  end;

  function GetConnectionString(RegConnectionKey: string): string;
begin
  Result := 'Provider=SQLOLEDB.1;Persist Security Info=False;' +
            'Initial Catalog=' + ReadFromReg(RegConnectionKey, 'Initial Catalog') + ';' +
            'Data Source=' + ReadFromReg(RegConnectionKey, 'Data Source');
  if ReadFromReg(RegConnectionKey, 'Integrated Security') <> '' then
    Result := Result + ';Integrated Security=' + ReadFromReg(RegConnectionKey, 'Integrated Security')
  else
    Result := Result + ';User ID=' + ReadFromReg(RegConnectionKey, 'User ID') + ';' +
                       ';Password=' + ReadFromReg(RegConnectionKey, 'Password');
//  MessageBox(0, PChar(Result), PChar(cstRegConnectionKey), 0);
end;
Вопрос: как теперь функцию получения командной строки связать с ADOConnection?
Silverra вне форума Ответить с цитированием
Старый 13.02.2013, 10:14   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
ADOConnection.ConnectionString := GetConnectionString(<ключ реестра>);
не?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 13.02.2013, 10:23   #3
Silverra
 
Регистрация: 30.11.2012
Сообщений: 5
По умолчанию

ошибка недопустимая спецификация авторизации

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
Код:
ADOConnection.ConnectionString := GetConnectionString(<ключ реестра>);
не?
Эту строку я указываю при создании формы? Я правильно поняла?

Последний раз редактировалось Stilet; 13.02.2013 в 10:50.
Silverra вне форума Ответить с цитированием
Старый 13.02.2013, 10:34   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Эту строку я указываю при создании формы? Я правильно поняла?
да, правильно!
можно, в принципе, указывать в любом месте ДО открытия ADOCOnnection...


Цитата:
ошибка недопустимая спецификация авторизации
в какой момент возникает ошибка?
И трудно судить издалека, но, скорее всего, строчка, которую возвращает GetConnectionString имеет ошибку.
Попробуйте вывести текст в переменную (например, в Memo:
Код:
Memo1.Text := GetConnectionString(<ключ реестра>);
// ADOConnection.ConnectionString := GetConnectionString(<ключ реестра>);
и посмотрите, что за строчка получается..
попробуйте эту строчку прописать в дизайнере (прямо в инспекторе объктов выделите ADOConnection - щелкните по свойству ConnectionString и пропишите туда полученный текст). Если ошибка возникнет - разбирайтесь, какая и устраняйте её. После это, исправьте в реестре найденную проблему...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2013, 10:37   #5
Silverra
 
Регистрация: 30.11.2012
Сообщений: 5
По умолчанию

Проблема возникает при создании формы, скорее как вы и сказали ошибка в формировании строки соединения, попробую последовать вашим рекомендациям.

Почему то в строке соединения не получены данные из регистра, она вообще пустая
Цитата:
Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=;Data Source=;User ID=;;Password=

Последний раз редактировалось Stilet; 13.02.2013 в 10:51.
Silverra вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Соединение с сервером ADOConnection atenon C++ Builder 3 22.07.2012 21:44
ADOConnection - не работает JET соединение с файлами Access s.Creator БД в Delphi 0 23.12.2010 17:10
Как программно узнать путь к базе.Соединение через adoconnection. Moel БД в Delphi 1 26.10.2007 08:32
Соединение с БД Access (ADOConnection) Washington БД в Delphi 5 12.03.2007 17:14