![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подключение к MySQL [D7, MySQL]
vhm © (2010-09-18 11:38:00)Привет всем. Возникла следующая проблема, необходимо подгрузить параметры подключения к БД из внешнего файла.
Делаю вот как:
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'
Плохиш (2010-09-18 21:49:00) [1]
> vhm (18.09.10 11:38)
Сначала надо установить требуемые значения DriverName и ConnectionName и присвоить свойству LoadParamsOnConnect значение false. После этого загружать праметры из файла при помощи LoadParamsFromIniFile.
После этого всё-равно придётся присваивать значения свойствам GetDriverFunc, LibraryName и VendorLib.
Anatoly Podgoretsky (2010-09-18 13:19:00) [2]> vhm (18.09.2010 12:29:07) [7]
Это значит, что тебе надо настроить параметры по умолчанию.
Ega23 (2010-09-18 12:45:00) [3]
> Если ты имеешь ввиду чтобы программа загружала параметры
> из моего .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 (2010-09-18 12:29:00) [4]Что значит сделай свой загрузчик? Если ты имеешь ввиду чтобы программа загружала параметры из моего .ini файла, то я так и делаю, но она у меня не загружает их...
Ega23 (2010-09-18 12:27:00) [5]
> Как видите ServerName это не параметр, а значение
Сделай свой загрузчик ini, какие проблемы?
vhm (2010-09-18 12:17:00) [6]Нашел этот файлик от куда программа тянет параметры по умолчанию, называется 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 это не параметр, а значение
vhm (2010-09-18 12:12:00) [7]ServerName это значение по умолчанию параметра HostName он почему то подгружает файлик с параметрами по умолчанию (название файла не помню), а не тот что я указываю явно.
Делал даже вот как. С начало обычным путем (в панели свойств) прописывал параметры подключения, затем компилил прогу с вот такой строчкой:
SQLConnection1.Params.SaveToFile('conf.ini');
А затем ее подгружал и не фига!
vhm (2010-09-18 12:08:00) [8]Не помогает (
Anatoly Podgoretsky (2010-09-18 12:08:00) [9]> vhm (18.09.2010 11:38:00) [0]
А ведь действительно в файле такого параметра нет.
Ega23 (2010-09-18 11:47:00) [10]ServerName скорее всего берётся по-умолчанию.
Пропиши его в ini явным образом