Модератор: Модераторы

 )
 )
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 писал(а):нужен ли реконект и т.д.





Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1