Кто-нибудь пользовался библиотекой fblib для доступа к Firebird?
http://fblib.altervista.org/
Какие впечатления? В сравнении с UIB, например. Какой датасет использовали для замены входящего в состав библиотеки однонаправленного read-only датасета?
Модератор: Модераторы
alexs писал(а):Что не устраивает в UIB и FBDataSet?
*vmr писал(а):Интересная либа... правда последнее обновление годичной давности настораживает - а не заброшен ли проект?
vital писал(а):Ну, UIB тоже не первой свежести- примерно той же давности.
m_guest писал(а):vital писал(а):Ну, UIB тоже не первой свежести- примерно той же давности.
Вот тут Вы не правы. Версия 2.1 выложена 28 апреля этого года.
О FBDataSet я и не говорю.
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;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6