首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi 7 ODBC MySQL Win 7

Delphi 7 ODBC MySQL Win 7
EN

Stack Overflow用户
提问于 2016-06-07 11:21:05
回答 1查看 1K关注 0票数 0

我好像在兜圈子,从来没有把这件事做完。我找到了一个安装的mySQL 5.1 32位,我制作了一个模式和表,我还找到了我安装的ODBC5.1连接器。找到dll与开始按钮编辑器- libmysql.dll dbexpmysql.dll dbxopenmysql50.dll myodbc5w.dll启动Delphi7和DB快速连接器上的形式Prams主机名-本地主机。

数据库-站点。用户名-根。密码-管理员。rest是默认的,我尝试过以上所有Dll的错误-无法loadlibmysql.dll或我在LibaryName中选择的Dll。这是一台干净的电脑--基本上,我做错了什么?我检查了我的婴儿车,记得我把MySQL设置为localhost -- 3306在我的设置中是在google是国际空间站的起始页面--这是一台独立的计算机,我是否遗漏了一个更新,在哪里以及从哪里得到它。我看过我的另一台计算机上的其他数据库,比如NoMySQL,oracle,但是它们不容易安装在我凌乱的计算机上,作为一个独立的DB。

EN

回答 1

Stack Overflow用户

发布于 2016-06-07 13:18:45

你可能想看看我对这个问题的回答:

how to connect to a MySQL server

这是关于让MySql与D7和XE5 5/6协同工作。在我编写它的时候,我在让MySql使用这些Delphi版本时遇到了问题。结果发现,主要的问题是我使用的是最近版本的MySql Dll。我最终让它起作用了,但花了我几天时间,这就是为什么我决定为后代记录确切的方法。

如果您按照答案中的确切编号步骤,我认为您很有可能最终得到一个至少有机会与MySql一起工作的D7设置(特别要注意的是,我不得不从MySql网站的Archive部分挖出一些东西)。

更新

下面是我的dbxDrivers.Ini & dbxConnections.Ini和Delphi项目的一些摘录

dbxDrivers.Ini

代码语言:javascript
复制
[Installed Drivers]
DB2=1
Interbase=1
MySQL=1
Oracle=1
Informix=1
MSSQL=1
OpenMySQL50=1

[OpenMySQL50]
LibraryName=dbxopenmysql50.dll
GetDriverFunc=getSQLDriverMYSQL50
VendorLib=libmysql.dll
HostName=localhost
DataBase=MATestDB
User_Name=SA
Password=password
[...]

dbxConnections.Ini

代码语言:javascript
复制
[OpenMySQL50Connection]
DriverName=OpenMySQL50
HostName=LocalHost
Database=MATestDB
User_Name=sa
Password=password
BlobSize=-1

代码

代码语言:javascript
复制
type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    SQLQuery1: TSQLQuery;
    DataSetProvider1: TDataSetProvider;
    SQLQuery1Table1ID: TIntegerField;
    SQLQuery1AName: TStringField;
    SQLQuery1AValue: TStringField;
    CDS1: TClientDataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    procedure FormCreate(Sender: TObject);
  private
    procedure OpenConnection;
  public
  end;

[...]

procedure TForm1.OpenConnection;
begin

  SqlConnection1.DriverName := 'OpenMySql50';
  SqlConnection1.Params.Append('HostName=localhost');
  SqlConnection1.GetDriverFunc := 'getSQLDriverMYSQL50';
  SqlConnection1.LibraryName := 'dbxopenmysql50.dll';
  SqlConnection1.VendorLib := 'libmysql.dll';
  SqlConnection1.Params.Append('Database=MATestDB');
  SqlConnection1.Params.Append('User_Name=sa');
  SqlConnection1.Params.Append('Password=');
  SqlConnection1.Open;
  SqlQuery1.Open;
  CDS1.Open;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OpenConnection;
end;

这些都是我的D7项目的相关细节。在向另一个q发布了我先前的回答后,我决定将两个dbx .Ini文件和两个Dlls放在与我的D7项目相同的目录中更为容易。

dbxopenmysql50.dll日期为2007年8月21日,版本1.3.0.39

libmysql.dll的日期为2006年10月6日,为2,596,864字节。没有嵌入式版本号。

我的MySql服务器是5.6.19版本。显然,您需要确保服务器已正确安装,并且MySql服务器服务正在运行。

正如您所看到的,它在不涉及ODBC的情况下工作。

如果你走了那么远,仍然有问题,我建议你花一些时间改善你的Q,如肯怀特所建议的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37677979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档