Модератор: Модераторы
function UFMySQLConnector.DoAnySQL(SQL: TStringList): integer;
var
i, fi, fc: integer;
ss: string;
begin
if SQL = nil
then begin
Result := -1;
exit;
end;
fSQLQuery.sql.Text := SQL.Text;
{$ifdef _login}
Log.LogStatus(SQL.Text, 'DoAnySQL');
{$endif}
try
fSQLQuery.Open; // Выполняем запрос на сервер
except // Если запрос неудался
fMySQLConnection.Close(true); // Форсируем закрытие соединения
try
fMySQLConnection.Open; // Открываем новое соединение
// Если соединение удалось, то повторно отправляем запрос
if fMySQLConnection.Connected then fSQLQuery.Open;
except
Result := -2; // Иначе сообщаем об обрыве связи с сервером
Exit;
end;
end;
fSQLQuery.Last;
Result := fSQLQuery.RecordCount;
fSQLQuery.First;
if Result > 0
then begin
SQL.Clear;
fc := pred(fSQLQuery.FieldCount);
for i := 1 to Result
do begin
ss := '';
for fi := 0 to fc do ss += (fSQLQuery.Fields[fi].AsString + FSeparator);
Delete(ss, Length(ss), 1);
SQL.Append(ss);
fSQLQuery.Next;
end;
end;
fSQLQuery.Close;
fSQLTransaction.Commit;
end;
vitaly_l писал(а):if fMySQLConnection.Active then ...
fMySQLConnection: {$ifdef unix}TMySQL56Connection{$endif}{$ifdef windows}TMySQL55Connection{$endif};
- я по аналогии попробовал.VirtUX писал(а):Нет там такого свойства...
fMySQLConnection.Close(true); // Форсируем закрытие соединения
try
fMySQLConnection.Open; // Открываем новое соединение
if fMySQLConnection.Connected then fSQLQuery.Open;
except
Result := -2; // Иначе сообщаем об обрыве связи с сервером
Exit;
end;
Reconnect:= True;
Protocol:= {$IFDEF FPC} Integer(MYSQL_PROTOCOL_TCP) {$ELSE} 1 {$ENDIF};{Timeout only applies for TCP connections}
if (MySQL_Options(MySock, MYSQL_OPT_CONNECT_TIMEOUT, @ATimeOut) <> 0) or
(MySQL_Options(MySock, MYSQL_OPT_READ_TIMEOUT, @ATimeOut) <> 0) or
(MySQL_Options(MySock, MYSQL_OPT_WRITE_TIMEOUT, @ATimeOut) <> 0) or
(MySQL_Options(MySock, MYSQL_OPT_RECONNECT, @Reconnect) <> 0) or
(MySQL_Options(MySock, MYSQL_OPT_PROTOCOL, @Protocol) <> 0) then
MySQLErrMsg:='Unknown option specified.';
if MySQL_Real_Connect(MySock, Host, MyUser, Password,
nil {db}, MyPort{3306}, nil {unix socket}, {CLIENT_REMEMBER_OPTIONS}clientflag)=nil then
GAMER писал(а):нужен ли реконект и т.д.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12