Окончательный ответ:
Это была не проблема 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;'
(и не забудьте загрузить драйвер MySql ODBC 5.1 !
Сокращенный код для этого:
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;
Я нашел какой-то старый код и пытаюсь его выяснить.
Вот некоторый код, чтобы попытаться использовать MySql по умолчанию d / bcalld mysql
как пользователь root
без пароля ..
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] Data source name not found and no default driver specified
.
Я недавно переустанавливал оба windows & delphi 7. Возможно, я забыл установить что-то еще, или это код ошибки?
Редактирование / обновление:
Я только что понял, что мне нужно получить MySql ODBC-коннектор от http://dev.mysql.com/downloads/mirror.php?id=367506
Я сделал это, и ошибка теперь Unknown MySql Server host "localhost"
(у меня Xampp работает на сервере Apacheтак что localhost должен быть в порядке)
Редактировать 2: Этот код ранее работал на компьютере разработчика, но не на другом.во-вторых, теперь после новой установки он не работает на компьютере разработчика.Может быть, это больше вопрос конфигурации, чем кода, но есть ли у кого-нибудь код, который я могу сравнить, на всякий случай?