2016-06-07 52 views
0

我似乎在圈子里走来走去,永远不会走。 我发现安装了mySQL 5.1 32bit,并且我制作了一个Schema和表格 我还发现了一个我安装的ODBC 5.1连接器。 找到dll的开始按钮编辑器 - libmysql.dll dbexpmysql.dll dbxopenmysql50.dll myodbc5w.dll 在表单上启动Delphi 7和DB express连接器 Prams 主机名 - Localhost。
数据库 - 网站。 用户名 - root。 密码 - 管理员。 休息是默认 我已经尝试了所有上述DLL的 错误 - 无法loadlibmysql.dll或我已经在LibaryName中选择的DLL。 这是一个干净的电脑基本上 我在做什么错误 我检查了我的孩子并记住我设置MySQL到本地主机 - 3306在我的设置中localhost是在谷歌浏览器是ISS开始页面 这是一个独立的计算机,我错过了更新一些地方,如果我从哪里得到它。 我已经查看了其他计算机上的其他数据库,如NoMySQL,oracle,但它们不会轻松安装在我的杂乱计算机上用于独立数据库。Delphi 7 ODBC MySQL Win 7

+0

帮你自己一个忙:从模糊的,毫无意义的问题描述和你从我们的观点中采取的步骤,阅读这段漫长的文本墙,除了你在这里写的内容外,对这个问题一无所知。然后编辑你的文章,使用真实的单词和句子,并有一些段落符号,标点符号和你所做过的清楚的描述。 (世界上有什么*用开始按钮编辑器发现dll的意思是什么?)如果你不能以一种我们可以阅读和理解的方式清楚地陈述问题,那么我们不能帮你。 –

回答

1

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

how to connect to a MySQL server

它是关于使MySQL与D7和XE5/6的工作。在我写这篇文章的时候,我遇到了让MySql与任何这些Delphi版本一起工作的问题。事实证明,主要问题是我使用的是最新版本的MySql Dll。我最终得到了它的工作,但花了我几天,这就是为什么我决定记录确切的后代方法。

如果您按照该答案中的确切编号的步骤,我认为您很可能会得到一个至少有机会使用D7的MySql设置(注意特别是我不得不从MySql网站的Archive部分挖掘出来)。

更新

下面是一些提取物我dbxDrivers.Ini & dbxConnections.Ini 和我的德尔福测试项目

dbxDrivers.Ini

[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

[OpenMySQL50Connection] 
DriverName=OpenMySQL50 
HostName=LocalHost 
Database=MATestDB 
User_Name=sa 
Password=password 
BlobSize=-1 

代码

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文件和两个Dll放在与我的D7项目相同的目录中更容易。

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

的日期为2006年6 Octber libmysql.dll的是2596864个字节。没有嵌入的版本号。

My MySql服务器版本是5.6.19。显然,您需要确保服务器已正确安装,并且MySql Server服务正在运行。你可以看到,它在不涉及ODBC的情况下工作。

如果你得到那么多,仍然有问题,我建议你花一些时间来改善你的q,正如Ken White所建议的那样。

+0

你用什么作为参考,以及你用什么dll来建立连接,请马丁娜。我刚刚意识到我没有在Windows 32位OBDC中注册MySQL,我现在称之为mySQL站点。并指出没有更好的结果。很多人谈论连接字符串时德尔福prams我不明白 – lexdean

+0

我可以通过我的用户帐户阻止一些如何。是他们的ODBC的一部分,需要设置为每个用户帐户 – lexdean

+0

dbxopenmysql50.dll将不会加载我的Delphi 7 DBexpress - 为什么? – lexdean