Библиотека fblib

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

Библиотека fblib

Сообщение vital » 22.11.2007 22:26:52

Кто-нибудь пользовался библиотекой fblib для доступа к Firebird?
http://fblib.altervista.org/
Какие впечатления? В сравнении с UIB, например. Какой датасет использовали для замены входящего в состав библиотеки однонаправленного read-only датасета?
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение alexs » 22.11.2007 22:44:10

Что не устраивает в UIB и FBDataSet?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение vital » 22.11.2007 23:03:14

alexs писал(а):Что не устраивает в UIB и FBDataSet?


Пока всё устраивает. Интересуюсь в целях расширения кругозора :lol: Мало-ли, может пригодится когда.
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение *vmr » 22.11.2007 23:27:57

Интересная либа... правда последнее обновление годичной давности настораживает - а не заброшен ли проект?
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

Сообщение vital » 22.11.2007 23:59:48

*vmr писал(а):Интересная либа... правда последнее обновление годичной давности настораживает - а не заброшен ли проект?


Ну, UIB тоже не первой свежести :lol: - примерно той же давности.
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение Brainenjii » 23.11.2007 00:14:51

Я пользуюсь ^_^ Устраивает всё, разве что есть некоторые проблемы при использовании одного TFBLDsql для нескольких TFBLTransaction одновременно, хотя это, наверное, делать вообще не нужно ^_^ Еще датасет односторонний, но это почти везде... И обращение к полям отлично от IBX, UIB, FIBL и подобных (вместо Fields[i].As<Type>; идет FieldAs<Type>(i);

UPD: еще, кстати, при пересборке после установке Лазарь ругается на какие-то ibase.h, но всё работает.. И из преимуществ - это при обращении FieldAsString(i) к блоб полям с подтипом TEXT возвращается искомая строка (для второго типа - идет стандартное (blob)
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение m_guest » 23.11.2007 00:35:30

vital писал(а):Ну, UIB тоже не первой свежести :lol: - примерно той же давности.

Вот тут Вы не правы. Версия 2.1 выложена 28 апреля этого года.
О FBDataSet я и не говорю.
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение vital » 23.11.2007 01:36:19

m_guest писал(а):
vital писал(а):Ну, UIB тоже не первой свежести :lol: - примерно той же давности.

Вот тут Вы не правы. Версия 2.1 выложена 28 апреля этого года.
О FBDataSet я и не говорю.


Прошу прощения, наврал: глянул в историю изменений - это версия 2.0 датирована мартом 2005-го.
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение vital » 23.11.2007 01:40:19

Кстати, есть ли какая-нибудь минимальная дока по UIB? Глянул хелп по jedi-vcl 3.30 - раздел по UIB там "under construction" :lol: Вон, в fblib хоть через PasDoc хоть что-то нагенерили.

P.S. Я в курсе, что настоящему джедаю нужны только исходники :lol: , но хочется хоть какой-то системности изложения :wink:
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение Vadim » 23.11.2007 06:35:24

vital
Увы, кругом одни джедаи... :)
Я тоже всегда долго копаюсь с исходниками, потому что даже если и есть какая-то документация, то она крайне убогая. Это проблема длч всех подобных разработок, потому что пока эта разработка не стала крайне популярной, никто не сядет писать доку. :) А доку должен делать не разработчик, т.к. разработчику и без доки всё понятно. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim » 23.11.2007 06:43:24

Brainenjii писал(а):... использовании одного TFBLDsql для нескольких TFBLTransaction одновременно...

Ого! А зачем это, если не секрет? :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Brainenjii » 23.11.2007 12:17:11

А это я извращаюсь ^_^ Когда-то давно упростил, как мне кажется. работу с базой еще для IBX и теперь привык, и во всех проектах, работающих с БД, создаю класс подобный этому:
Код: Выделить всё
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;

То при разрушении читающей транзакции по понятным причинам вылезает Access Violation...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Библиотека fblib

Сообщение dunin » 26.01.2010 16:46:01

Вопрос по библиотеке fblib.
Как при старте бэкапа из компонента TFBLService выводить сообщения о текущей операции? НУ, скажем, куда-нибудь в caption...
В IBX есть TIBControlAndQueryService у которого есть функция GetNextLine.
А как быть с FBLib ???

зы. Причем сам бэкап проходит на ура - шустро и (тьфу-тьфу) без проблем.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и


Вернуться в Базы данных

Кто сейчас на конференции

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

Рейтинг@Mail.ru