Перейти к контенту
Sometimes the simple things are harder than you expected and dbexpress probably comes under that category, it was less express than I had expected but once you figure things out it does work. Some of the problems were my fault while others took time due to the obscur nature of the errors returned by XE and XE2.
If you start by adding the TSQLConnect component, select the MySQL driver and configure your HostName, Database, UserName and Password you can try and connect, you will most likely strike the following error :-
Show Plain Text
Text code
-
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver maybe be missing from the system path…
So once you figure out that your missing the libmysql.dll you might try and grab the latest MYSQL C Connector from dev.mysql.com, they are up to version 6.0.2 at the time of writing this, you’ll get the same error above. I was getting a more obscure crash before XE2 Update 1 which I didn’t note down at the time, that abstract error message took me a while to figure out and was related to the libmysql.dll version.
It would be nice if embarcadero provided a location where you could download the compatible libmysql.dll files that work with dbexpress, it is worth noting that the XE2 read me does come with the following note :-
Show Plain Text
Text code
-
Supported Servers
-
dbExpress
-
…
-
MySQL 5.1, 5.0.27, 4.1* (Pro/Ent/Ult/Arch) (Driver dbxMYS.dll, Client libmysql.dll)
-
The following combinations have been tested:
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 4.0.XX Server
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 4.0.XX Server
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 5.0.XX Server
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 5.1.XX Server
To get a 5.1.XX compatible DLL you will need to download an achieved mysql complete installation zip and extract the DLL as no compatible versioned MYSQL C Connector package could be downloaded when I looked.
To save you some time I added zip download containing the win32 x86 libmysql.dll for those who wish to download.
This is libmysql.dll version 5.1.59 win32 x86 DLL which I have tested and works with both XE and XE2.
50 Responses to “Getting embarcadero dbexpress mysql working — DBX Error: Driver not initialized”
44.
w. swelam
Sep 28, 2012
Sorry, comments have been closed for this post.
Я бегаю Delphi XE3 (полная версия), база данных MySQL, и это ошибка, которую я получаю при нажатии Test Connection
.
В ответ я нашел библиотеку libmysql в своем каталоге xampp и скопировал ее в свой каталог System32. Однако это не работает.
К каким библиотекам/драйверам относится это сообщение и в какой каталог их нужно поместить?
версия libmysql — 5.5.16.0
2 ответы
В сообщении говорится, что библиотека может быть:
- отсутствует;
- неправильно установлен; или же
- неправильной версии
Я гуглил для библиотеки и наткнулся на это блоге в котором обсуждается вышеупомянутое сообщение об ошибке и предоставляется более свежая версия библиотеки libmysql, которая должна быть помещена в каталог bin (EmbarcaderoRAD Studio10.0bin).
Ссылка для скачивания библиотеки libmysql
ответ дан 26 окт ’12, 08:10
Создан 17 янв.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
mysql
delphi
dbexpress
delphi-xe3
or задайте свой вопрос.
I need to make a long running task in the background. I’m using OmniThreadLibrary hopping this could help me.
I use dbexpress+mssql driver. I can connect ok when is in the main thread, but get:
Project Project1.exe raised exception class TDBXError with message
‘DBX Error: Driver could not be properly initialized. Client library
may be missing, not installed properly, of the wrong version, or the
driver may be missing from the system path.’.
The connections are created in each thread, not shared datamodule:
type
TdbManager = class(TObject)
private
{ private declarations }
FCon: TSQLConnection;
public
{ public declarations }
procedure Open(Driver:String; aparams:TStringList);overload;
procedure Close;
constructor Create;
destructor Destroy;override;
end;
constructor TdbManager.Create;
begin
inherited Create;
FCon := TSQLConnection.Create(nil);
end;
procedure TdbManager.Open(Driver: String; aparams: TStringList);
var
i: Integer;
key:string;
begin
FCon.DriverName := Driver;
for i := 0 to params.Count - 1 do
begin
key := params.Names[i];
FCon.Params.Values[key] := params.Values[key];
end;
LogMsg('Open DB '+ Driver + ': ' + FHost + '' + FDatabase);
FCon.Open;
LogMsg('Done.');
end;
And the background task is executed:
procedure TBackupPlan.OnScheduleTrigger(Sender: TScheduledEvent);
begin
Parallel.Async(procedure
begin
ExecuteDataTask( Sender.Name );
end);
end;
procedure TBackupPlan.ExecuteDataTask(const Name: String);
var
db:TdbManager;
begin
db := nil;
db := TSqlServerManager.Create;
db.Open(self.Driver, options);
result := db;
end;
If I execute this directly, open ok. If I use Parallel.Async
then get the error. What is happend here?
I need to make a long running task in the background. I’m using OmniThreadLibrary hopping this could help me.
I use dbexpress+mssql driver. I can connect ok when is in the main thread, but get:
Project Project1.exe raised exception class TDBXError with message
‘DBX Error: Driver could not be properly initialized. Client library
may be missing, not installed properly, of the wrong version, or the
driver may be missing from the system path.’.
The connections are created in each thread, not shared datamodule:
type
TdbManager = class(TObject)
private
{ private declarations }
FCon: TSQLConnection;
public
{ public declarations }
procedure Open(Driver:String; aparams:TStringList);overload;
procedure Close;
constructor Create;
destructor Destroy;override;
end;
constructor TdbManager.Create;
begin
inherited Create;
FCon := TSQLConnection.Create(nil);
end;
procedure TdbManager.Open(Driver: String; aparams: TStringList);
var
i: Integer;
key:string;
begin
FCon.DriverName := Driver;
for i := 0 to params.Count - 1 do
begin
key := params.Names[i];
FCon.Params.Values[key] := params.Values[key];
end;
LogMsg('Open DB '+ Driver + ': ' + FHost + '' + FDatabase);
FCon.Open;
LogMsg('Done.');
end;
And the background task is executed:
procedure TBackupPlan.OnScheduleTrigger(Sender: TScheduledEvent);
begin
Parallel.Async(procedure
begin
ExecuteDataTask( Sender.Name );
end);
end;
procedure TBackupPlan.ExecuteDataTask(const Name: String);
var
db:TdbManager;
begin
db := nil;
db := TSqlServerManager.Create;
db.Open(self.Driver, options);
result := db;
end;
If I execute this directly, open ok. If I use Parallel.Async
then get the error. What is happend here?
При инициализации БД выдает след. ошибку
postgres@1csrv:/usr/LOCAL/pgsql/bin$ ./initdb -D /DATA The files belonging TO this DATABASE system will be owned BY user "postgres". This user must also own the server process. The DATABASE cluster will be initialized WITH locale C. The DEFAULT DATABASE encoding has accordingly been SET TO SQL_ASCII. The DEFAULT text search configuration will be SET TO "english". fixing permissions ON existing directory /DATA ... ok creating subdirectories ... ok selecting DEFAULT max_connections ... 100 selecting DEFAULT shared_buffers ... 32MB creating configuration files ... ok creating template1 DATABASE IN /DATA/base/1 ... ok initializing pg_authid ... FATAL: syntax error at OR near "REVOKE" at character 1 STATEMENT: REVOKE ALL ON pg_authid FROM public; child process exited WITH exit code 1 initdb: removing contents of DATA directory "/DATA" postgres@1csrv:/usr/LOCAL/pgsql/bin$
ОС Slackware 13.37, Postgresql 9.0.3.
Исходники и патчи брал с сайта 1С. Скомпилировалась и установилаь без ошибок.
Подскажите где посмотреть?
-
Nfox32
- Сообщения: 2
- Зарегистрирован: 14 мар 2019, 17:00
- Контактная информация:
Re: Ошибка инициализации BDE
Keepsoft писал(а):
Nfox32 писал(а):Покупая лицензию usb я правильно понял что установив эту версию на флешку вставленную на домашнем компьютере, в последствии смогу запускать и пользоваться домашней бухгалтерией не устанавливая программу на каждый компьютер, а как портативным приложением на домашнем компьютере, на своём ноутбуке, на двух рабочих компьютерах (в зависимости где смена), которые находятся в корпоративном домене, но моя учетная запись является локальным администратором? Потому что на домашнем ДБ запускается, а на рабочем воникает такая же ошибка, как у других пользователей в этой теме. Что я сделал, или делаю не правильно пытаясь пользоваться программой с той же флешки, но на разных компьютерах?
Если вдруг такая проблема возникла, то нужно сделать следующее:
1. Подключите флешку к тому компьютеру, на котором возникает ошибка
2. Закройте Домашнюю бухгалтерию, если она у Вас открыта
3. Скачайте последнюю версию Домашней бухгалтерии:http://www.keepsoft.ru/download/hbk/homebuh.exe
4. Проинсталлируйте ее в ту папку на флешку, где Домашняя бухгалтерия стоит сейчас.
То есть на каждом компьютере, где я хочу использовать программу нужно произвести установку Домашней Бухгалтерии, чтоб она появилась в перечне установленных программ и компонентов? А флешка просто даст возможность использовать без повторной активации?
Я думал что эта конструкция будет работать как флешка сбербанка с портативным клиентом запускаемым с флеш токена и не требующем отдельной установки (тут транзакций не проводится, поэтому сам токен не нужен, достаточно пароля на программу)
- Вложения
-
- 2019-03-15_143206.jpg (99.41 КБ) 3455 просмотров
-
Keepsoft
- Администратор
- Сообщения: 3648
- Зарегистрирован: 20 мар 2008, 18:03
- Контактная информация:
Re: Ошибка инициализации BDE
Сообщение Keepsoft » 24 мар 2019, 23:27
Nfox32 писал(а):
Keepsoft писал(а):
Nfox32 писал(а):Покупая лицензию usb я правильно понял что установив эту версию на флешку вставленную на домашнем компьютере, в последствии смогу запускать и пользоваться домашней бухгалтерией не устанавливая программу на каждый компьютер, а как портативным приложением на домашнем компьютере, на своём ноутбуке, на двух рабочих компьютерах (в зависимости где смена), которые находятся в корпоративном домене, но моя учетная запись является локальным администратором? Потому что на домашнем ДБ запускается, а на рабочем воникает такая же ошибка, как у других пользователей в этой теме. Что я сделал, или делаю не правильно пытаясь пользоваться программой с той же флешки, но на разных компьютерах?
Если вдруг такая проблема возникла, то нужно сделать следующее:
1. Подключите флешку к тому компьютеру, на котором возникает ошибка
2. Закройте Домашнюю бухгалтерию, если она у Вас открыта
3. Скачайте последнюю версию Домашней бухгалтерии:http://www.keepsoft.ru/download/hbk/homebuh.exe
4. Проинсталлируйте ее в ту папку на флешку, где Домашняя бухгалтерия стоит сейчас.
То есть на каждом компьютере, где я хочу использовать программу нужно произвести установку Домашней Бухгалтерии, чтоб она появилась в перечне установленных программ и компонентов? А флешка просто даст возможность использовать без повторной активации?
Я думал что эта конструкция будет работать как флешка сбербанка с портативным клиентом запускаемым с флеш токена и не требующем отдельной установки (тут транзакций не проводится, поэтому сам токен не нужен, достаточно пароля на программу)
Переустановить Домашнюю бухгалтерию нужно только в том случае, если на компьютере есть проблемы с настройками BDE.
С уважением, Keepsoft.
-
Good User
- Активист
- Сообщения: 54
- Зарегистрирован: 21 июл 2016, 22:24
Re: Ошибка инициализации BDE
Сообщение Good User » 28 май 2019, 00:21
если на компьютере есть проблемы с настройками BDE.
В 2000 году Borland представила новую, основанную на SQL-драйверах, архитектуру, названную dbExpress, которая сделала устаревшей использовавшуюся в BDE технологию SQL Links.
-
liss
- Сообщения: 1
- Зарегистрирован: 18 июл 2019, 21:58
Re: Ошибка инициализации BDE
Сообщение liss » 18 июл 2019, 22:00
у меня была куплена лицензия на флешку с версией 6.3, работала на win7. Сейчас перешла на win10 и появилась ошибка bde, но ведь версию 6.3 я уже не могу скачать и переустановить. что делать?
-
Keepsoft
- Администратор
- Сообщения: 3648
- Зарегистрирован: 20 мар 2008, 18:03
- Контактная информация:
Re: Ошибка инициализации BDE
Сообщение Keepsoft » 23 июл 2019, 13:23
liss писал(а):у меня была куплена лицензия на флешку с версией 6.3, работала на win7. Сейчас перешла на win10 и появилась ошибка bde, но ведь версию 6.3 я уже не могу скачать и переустановить. что делать?
Все версии Домашней бухгалтерии доступны на нашем официальном сайте.
1. Закройте Домашнюю бухгалтерию 6, если она у Вас открыта
2. Скачайте Домашнюю бухгалтерию 6:
https://www.keepsoft.ru/download/hbk/homebuh63.exe
3. Проинсталлируйте ее в ту папку, где Домашняя бухгалтерия 6 стоит сейчас.
С уважением, Keepsoft.
Вернуться в «Общие вопросы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя
Sometimes the simple things are harder than you expected and dbexpress probably comes under that category, it was less express than I had expected but once you figure things out it does work. Some of the problems were my fault while others took time due to the obscur nature of the errors returned by XE and XE2.
If you start by adding the TSQLConnect component, select the MySQL driver and configure your HostName, Database, UserName and Password you can try and connect, you will most likely strike the following error :-
Show Plain Text
Text code
-
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver maybe be missing from the system path…
So once you figure out that your missing the libmysql.dll you might try and grab the latest MYSQL C Connector from dev.mysql.com, they are up to version 6.0.2 at the time of writing this, you’ll get the same error above. I was getting a more obscure crash before XE2 Update 1 which I didn’t note down at the time, that abstract error message took me a while to figure out and was related to the libmysql.dll version.
It would be nice if embarcadero provided a location where you could download the compatible libmysql.dll files that work with dbexpress, it is worth noting that the XE2 read me does come with the following note :-
Show Plain Text
Text code
-
Supported Servers
-
dbExpress
-
…
-
MySQL 5.1, 5.0.27, 4.1* (Pro/Ent/Ult/Arch) (Driver dbxMYS.dll, Client libmysql.dll)
-
The following combinations have been tested:
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 4.0.XX Server
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 4.0.XX Server
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 5.0.XX Server
-
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 5.1.XX Server
To get a 5.1.XX compatible DLL you will need to download an achieved mysql complete installation zip and extract the DLL as no compatible versioned MYSQL C Connector package could be downloaded when I looked.
To save you some time I added zip download containing the win32 x86 libmysql.dll for those who wish to download.
This is libmysql.dll version 5.1.59 win32 x86 DLL which I have tested and works with both XE and XE2.
50 Responses to “Getting embarcadero dbexpress mysql working — DBX Error: Driver not initialized”
44.
w. swelam
Sep 28, 2012
Sorry, comments have been closed for this post.
I am running Delphi XE3 (Ultimate Edition), MySQL database and this is the error I get when a click Test Connection
.
As a response, I located the libmysql library in my xampp directory and copied it over to my System32 directory. This does not work however.
Which libraries/drivers is this message referring to and what is the correct directory to place them in?
libmysql version — 5.5.16.0
I got the stopper error below in my apps. I used Delphi Berlin 64bit compiler. And also used the dbxora.dll
as dbxpress driver default from embarcadero. Connected to Oracle 12c DB server using TSQLConnection component.
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.
How can I fix this?
AJNeufeld
8,5081 gold badge25 silver badges44 bronze badges
asked Aug 10, 2016 at 2:19
4
A DB Express driver is not always sufficient on it’s own to connect to some data sources. For certain data sources (most of them in fact) you also require the client drivers for that data source, usually provided by the database vendor themselves.
Oracle is one of these.
As well as the DB Express driver you also need to install the Oracle Client software provided by Oracle. You also need to ensure that you install the correct version.
i.e. in your case since you indicate you are building a 64-bit application then you will need the 64-bit Oracle client.
If you (or your intended users) already have the 32-bit Oracle client installed then you might consider building your application as a 32-bit application instead, unless you absolutely need 64-bit capabilities.
answered Aug 10, 2016 at 3:28
DelticsDeltics
22k2 gold badges42 silver badges70 bronze badges
6
Всем привет, хочу поработать с mysql но столкнулся на начальной стадии с ошибкой при подключении.
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path..
Читал в инете что libmysql.DLL не хватает, я её в bin закинул как сказано в статье, но нечего так и не изменилось.
прошу помочь может кто знает где есть дельная статья про это или подскажите что делать..
я использую Delphi xe6 и сервер mysql — MySQL 5.5 Command Line Client
Спасибо за помощь!!!