Кто-нибудь пользовался библиотекой fblib для доступа к Firebird?
http://fblib.altervista.org/
Какие впечатления? В сравнении с UIB, например. Какой датасет использовали для замены входящего в состав библиотеки однонаправленного read-only датасета?
			
		Модератор: Модераторы
alexs писал(а):Что не устраивает в UIB и FBDataSet?
 Мало-ли, может пригодится когда.
 Мало-ли, может пригодится когда.
*vmr писал(а):Интересная либа... правда последнее обновление годичной давности настораживает - а не заброшен ли проект?
 - примерно той же давности.
 - примерно той же давности.
vital писал(а):Ну, UIB тоже не первой свежести- примерно той же давности.
m_guest писал(а):vital писал(а):Ну, UIB тоже не первой свежести- примерно той же давности.
Вот тут Вы не правы. Версия 2.1 выложена 28 апреля этого года.
О FBDataSet я и не говорю.
 Вон, в fblib хоть через PasDoc хоть что-то нагенерили.
 Вон, в fblib хоть через PasDoc хоть что-то нагенерили.
 , но хочется хоть какой-то системности изложения
 , но хочется хоть какой-то системности изложения 
 
 А доку должен делать не разработчик, т.к. разработчику и без доки всё понятно.
 А доку должен делать не разработчик, т.к. разработчику и без доки всё понятно. 
Brainenjii писал(а):... использовании одного TFBLDsql для нескольких TFBLTransaction одновременно...

BLocalQuery = class(TFBLDsql)
  Private
    Updates: TStringList;
  Public
    Function FieldAsString(const AFieldIdx: Integer): String;
    Function Get(CommandText: String): Boolean;
    Procedure Post(CommandText: String);
    Function Go: Boolean;
    Procedure GetConnectionData;
    Constructor Build;
    Destructor Destroy; override;
End;
...
Function BLocalQuery.Get(CommandText:String): Boolean;
Begin
  Result := FALSE;
  {$IFDEF linux}
    CommandText := UTF8ToWin1251(CommandText);
  {$ENDIF}
  Transaction := LocalReadTransaction;
  SQL.Text := CommandText;
  Try
    ExecSQL;
  Except On E: Exception Do
    Begin
      ShowMessage(E.Message);
      Exit;
    End;
  End;
  Result := TRUE;
End;
Procedure BLocalQuery.Post(CommandText:String);
Begin
  {$IFDEF linux}
    CommandText := Bj_UTF8ToWin1251(CommandText);
  {$ENDIF}
  Updates.Add(CommandText);
End;
Function BLocalQuery.Go: Boolean;
var
  i: Integer;
Begin
  Result := FALSE;
  Transaction := LocalWriteTransaction;
  Transaction.StartTransaction;
  For i := 0 To Updates.Count - 1 Do
    Begin
      SQL.Text := Updates[i];
      Try
        ExecSQL;
      Except On E: Exception Do
        Begin
          ShowMessage(E.Message);
          Transaction.Rollback;
          Updates.Clear;
          Exit;
        End;
      End;
    End;
  Transaction.Commit;
  Updates.Clear;
  Result := TRUE;
End;
Procedure TMainForm.ToolButton8Click(Sender: TObject);
Var
  Query: BLocalQuery;
Begin
  Query := BLocalQuery.Build;
  Query.Get('SELECT CAPTION FROM REFERENCES_INDEX WHERE ID = 1');
  Query.Post('UPDATE REFERENCES_INDEX SET CAPTION = ' + #39 + Query.FieldAsString(0) + #39 + ' WHERE ID = 1');
  Query.Go;
  Query.Free;
  LocalReadTransaction.Free;
end;


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