gpt4 book ai didi

delphi - 需要简单的例子来使用 TAdoConnection 连接到 MySql 默认数据库

转载 作者:行者123 更新时间:2023-12-02 07:55:02 29 4
gpt4 key购买 nike

最终答案:

这不是 Delphi 问题,只是配置问题。

我使用Xampp来提供MySql服务器。

C:\xampp\mysql\bin>mysql.exe  --version
mysql.exe Ver 14.14 Distrib 5.1.41, for Win32 (ia32)

所以,正确的连接字符串是

'Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mysql;User=root; Password=;Option=3;'

(并且不要忘记加载the MySql ODBC 5.1 driver!

执行此操作的简短代码:

procedure TForm1.Button1Click(Sender: TObject);
var AdoConnection : TAdoConnection;
DataBase : String;
begin
Try
AdoConnection := TADOConnection.Create(nil);

if AdoConnection.Connected then // already connected?
begin
MessageDlg('Already connected', mtInformation, [mbOK], 0);
Exit;
end;

begin
DataBase := 'mysql';

AdoConnection.LoginPrompt:=False;//dont ask for the login parameters
AdoConnection.ConnectionString := 'Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=' + Database + ';User=root; Password=;Option=3;';

AdoConnection.Connected := True; //open the connection

MessageDlg('Connected to databse "' + DataBase + '".', mtInformation, [mbOK], 0);
end;

Except
On E: Exception do
begin
MessageDlg('Cannot connect to databse "' + DataBase + '"!.' + #13 + #10 + 'Please report this problem (is MySql running?)', mtError, [mbOK], 0);
end;
end;
end;
<小时/>

我发现了一些旧代码并正在尝试找出答案。

下面是一些代码,用于尝试以用户 root 身份使用名为 mysql 的默认 MySql d/b,无需密码。

const MYSQL_CONNECT_STRING_FROM_DELPHI =
'Driver={MySQL ODBC 3.51 Driver};Server=%s;Database=%s;User=%s; Password=%s;Option=3;';

var AdoConnection : TAdoConnection;
AdoConnection.ConnectionString :=
Format(MYSQL_CONNECT_STRING_FROM_DELPHI,['localhost',DataBase,'root','']);
AdoConnection.Connected := True;

(我本可以使用 TADOCommand,但更喜欢在整个代码中使用 TAdoConnection)

当我运行它时,我得到ELoException [Microsoft][ODBC Driver manager]未找到数据源名称并且未指定默认驱动程序

我最近重新安装了 windows 和 delphi 7。我是否忘记安装其他东西,或者是代码有问题?

<小时/>

编辑/更新:

我刚刚意识到我需要从 http://dev.mysql.com/downloads/mirror.php?id=367506 获取 MySql ODBC 连接器

我这样做了,现在的错误是未知的MySql Server主机“localhost”(我有Xampp运行Apache服务器,所以localhost应该没问题)

<小时/>

编辑 2:此代码之前在开发 PC 上运行,但在另一台 PC 上运行失败。而且,现在全新安装后,它无法在开发计算机上运行。也许更多的是配置问题而不是代码问题,但是有人有一些代码可以让我比较,以防万一吗?

最佳答案

也许您使用的是 Windows Vista 或 Windows 7,启用了 IPv6 协议(protocol)(默认情况下),这很好,但当 localhost 解析为 IP 时,IPv6 似乎具有优先级,因此 本地主机=::1代替 本地主机 = 127.0.0.1

尝试在连接定义(ODBC 或其他任何内容)中将 localhost 替换为 127.0.0.1

问题可能是 MySQL 服务器不监听 IPv6,或者正在监听但防火墙阻止。如果您想尝试从另一台计算机(另一台主机)进行连接,并且无法解决 IPv6 问题(调整您的防火墙或 MySQL 配置),那么您始终可以尝试使用其 IP 地址而不是主机名来访问您的服务器.

关于delphi - 需要简单的例子来使用 TAdoConnection 连接到 MySql 默认数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600466/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com