-
Привет всем. Возникла следующая проблема, необходимо подгрузить параметры подключения к БД из внешнего файла. Делаю вот как: 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'
-
ServerName скорее всего берётся по-умолчанию. Пропиши его в ini явным образом
-
Не помогает (
-
> vhm (18.09.2010 11:38:00) [0]
А ведь действительно в файле такого параметра нет.
-
ServerName это значение по умолчанию параметра HostName он почему то подгружает файлик с параметрами по умолчанию (название файла не помню), а не тот что я указываю явно.
Делал даже вот как. С начало обычным путем (в панели свойств) прописывал параметры подключения, затем компилил прогу с вот такой строчкой: SQLConnection1.Params.SaveToFile('conf.ini'); А затем ее подгружал и не фига!
-
Нашел этот файлик от куда программа тянет параметры по умолчанию, называется 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 это не параметр, а значение
-
> Как видите ServerName это не параметр, а значение
Сделай свой загрузчик ini, какие проблемы?
-
Что значит сделай свой загрузчик? Если ты имеешь ввиду чтобы программа загружала параметры из моего .ini файла, то я так и делаю, но она у меня не загружает их...
-
> Если ты имеешь ввиду чтобы программа загружала параметры > из моего .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;
-
> vhm (18.09.2010 12:29:07) [7]
Это значит, что тебе надо настроить параметры по умолчанию.
-
> vhm (18.09.10 11:38)
Сначала надо установить требуемые значения DriverName и ConnectionName и присвоить свойству LoadParamsOnConnect значение false. После этого загружать праметры из файла при помощи LoadParamsFromIniFile. После этого всё-равно придётся присваивать значения свойствам GetDriverFunc, LibraryName и VendorLib.
|