Конференция "Базы" » Подключение к MySQL [D7, MySQL]
 
  • vhm (18.09.10 11:38) [0]
    Привет всем. Возникла следующая проблема, необходимо подгрузить параметры подключения к БД из внешнего файла.
    Делаю вот как:
    SQLConnection1.LoadParamsFromIniFile('D:\config.ini');
    SQLConnection1.Open;

    Содержание config.ini
    DriverName=MySQL
    Database=doc
    ConnectTimeout=60
    HostName=localhost
    User_Name=root

    При запуске выскакивает ошибка:
    Unknown MySQL server host 'ServerName'
  • Ega23 © (18.09.10 11:47) [1]
    ServerName скорее всего берётся по-умолчанию.
    Пропиши его в ini явным образом
  • vhm (18.09.10 12:08) [2]
    Не помогает (
  • Anatoly Podgoretsky © (18.09.10 12:08) [3]
    > vhm  (18.09.2010 11:38:00)  [0]

    А ведь действительно в файле такого параметра нет.
  • vhm (18.09.10 12:12) [4]
    ServerName это значение по умолчанию параметра HostName он почему то подгружает файлик с параметрами по умолчанию (название файла не помню), а не тот что я указываю явно.

    Делал даже вот как. С начало обычным путем (в панели свойств) прописывал параметры подключения, затем компилил прогу с вот такой строчкой:
    SQLConnection1.Params.SaveToFile('conf.ini');
    А затем ее подгружал и не фига!
  • vhm (18.09.10 12:17) [5]
    Нашел этот файлик от куда программа тянет параметры по умолчанию, называется dbxdrivers.ini вот содержание для MySQL

    [MYSQL]
    DriverUnit=DBXMySQL
    DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver140.bpl
    DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommo nDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
    MetaDataPackageLoader=TDBXMySqlMetaDataCommandFactory,DbxMySQLDriver140.bpl
    MetaDataAssemblyLoader=Borland.Data.TDBXMySqlMetaDataCommandFactory,Borland.Data .DbxMySQLDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
    GetDriverFunc=getSQLDriverMYSQL
    LibraryName=dbxmys.dll
    VendorLib=LIBMYSQL.dll
    BlobSize=-1
    Database=DBNAME
    ErrorResourceFile=
    HostName=ServerName
    LocaleCode=0000
    Password=password
    User_Name=user
    Compressed=False
    Encrypted=False

    Как видите ServerName это не параметр, а значение
  • Ega23 © (18.09.10 12:27) [6]

    > Как видите ServerName это не параметр, а значение


    Сделай свой загрузчик ini, какие проблемы?
  • vhm (18.09.10 12:29) [7]
    Что значит сделай свой загрузчик? Если ты имеешь ввиду чтобы программа загружала параметры из моего .ini файла, то я так и делаю, но она у меня не загружает их...
  • Ega23 © (18.09.10 12:45) [8]

    > Если ты имеешь ввиду чтобы программа загружала параметры
    > из моего .ini файла, то я так и делаю, но она у меня не
    > загружает их...


    Не надо слепо полагаться на то, что предоставляется компонентом.
    Напиши свой загрузчик.

    uses IniFiles

    var
     ini: TIniFile;
    begin
     ini := TIniFile.Create(FileName);
     try
       Connection.Param1 := ini.ReadString(SectionName, 'Param1', 'default for Param1');
       Connection.Param2 := ini.ReadString(SectionName, 'Param2', 'default for Param2');
       .....
       Connection.ParamN := ini.ReadString(SectionName, 'ParamN', 'default for ParamN');
     finally
       ini.Free;
     end;
    end;


    и сохранение в таком же ключе

    var
     ini: TIniFile;
    begin
     ini := TIniFile.Create(FileName);
     try
       ini.WriteString(SectionName, 'Param1', Connection.Param1);
       ......
       ini.WriteString(SectionName, 'ParamN', Connection.ParamN);
     finally
       ini.Free;
     end;
    end;

  • Anatoly Podgoretsky © (18.09.10 13:19) [9]
    > vhm  (18.09.2010 12:29:07)  [7]

    Это значит, что тебе надо настроить параметры по умолчанию.
  • Плохиш © (18.09.10 21:49) [10]

    > vhm   (18.09.10 11:38)  

    Сначала надо установить требуемые значения DriverName и ConnectionName и присвоить свойству LoadParamsOnConnect значение false. После этого загружать праметры из файла при помощи LoadParamsFromIniFile.
    После этого всё-равно придётся присваивать значения свойствам GetDriverFunc, LibraryName и VendorLib.
 
Конференция "Базы" » Подключение к MySQL [D7, MySQL]
Есть новые Нет новых   [134431   +16][b:0][p:0.001]