Развернул уже MySQL-server и на ПК, где работаю в Lazarus (Rosa OS R10), и пытался подключиться локально на нём.
VAR:
- Код: Выделить всё
fSQLQuery: TSQLQuery;
fSQLTransaction: TSQLTransaction;
fMySQLConnection: TConnectionName;
- Код: Выделить всё
constructor TESSQLMySQL.Create;
begin
fSQLQuery := TSQLQuery.Create(nil);
fSQLTransaction := TSQLTransaction.Create(nil);
fMySQLConnection := TConnectionName.Create(nil);
fMySQLConnection.Transaction := fSQLTransaction;
fSQLTransaction.DataBase := fMySQLConnection;
fSQLQuery.DataBase := fMySQLConnection;
fSQLQuery.Transaction := fSQLTransaction;
//fSQLQuery.Close;
fSQLQuery.ParseSQL:= false;
fSQLQuery.ReadOnly:= False;
fSQLQuery.UpdateMode:= upWhereAll;
FOnError:= nil;
end;
- Код: Выделить всё
function TESSQLMySQL.ConnectDB(aserver, adb, alogin, apass: string;
CreateIfNot: boolean): boolean;
begin
fMySQLConnection.HostName := aserver;
fMySQLConnection.UserName := alogin;
fMySQLConnection.Password := apass;
fMySQLConnection.DatabaseName := adb;
try
if not fMySQLConnection.Connected then
fMySQLConnection.Open; // Тут возникает ошибка
if not fSQLTransaction.Active then fSQLTransaction.Active := true;
ExecAnySQL('SET NAMES utf8 COLLATE utf8_general_ci');
ExecAnySQL('SET CHARACTER SET utf8');
ExecAnySQL('SET SESSION collation_connection = utf8_general_ci');
fMySQLConnection.KeepConnection := true;
Result:= true;
except
FreeObj;
Result:= false;
end;
end;
Ошибка на строке: fMySQLConnection.Open;
При этом в терминале я подключаюсь без проблем. Доступ и привелегии у пользователя БД - максимальные и "%".
Помогите... Не вижу, где ошибка...