Конференция "FreePascal" » FreeIBComponents для Lazarus [Win32]
 
  • SSY (21.04.05 20:25) [0]
    У меня готова первая бета порта FIB под Lazarus/FPC (называется FIBL). Пока только для винды. Держит Firebird 1.5-2.0, по-идее 1.0 тоже должен работать, но этот атавизм у меня уже нигде не стоит и проверить не могу. Для работы использует fbclient.dll.

    Установить очень просто, но надо иметь комбинацию Lazarus-FPC от 17.04.2005 или новее. В Лазаре заходим в "Компоненты"-"Открыть файл пакета"-выбираем fiblaz.lpk, компилим его, устанавливаем, соглашаясь при этом пересобрать Лазаря. Он пересобирается, перезапускается и в Data Access появляются 4 иконки FIBL.

    3-й диалект со всеми его типами данных худо-бедно держит. Для DECIMAL/NUMERIC пока используется Double, может быть потом переведу на BCD (до 4-х знаков, как в IBX/FIB+).

    В общем, кому охота - милости просим тестить. Баги сообщать пока сюда (или на sourceforge, но тогда только по-английски) или мне в мыло. Лежит здесь:

    http://sourceforge.net/projects/fibl/
  • DSKalugin © (22.04.05 11:58) [1]
    интересно, интересно
    Уточни пожалуйста, что является исходником для твоего проекта
    FreeIBComponents или FIBPlus?
  • SSY (22.04.05 12:49) [2]
    Увы, FreeIBComponents (их я тоже выложил рядом с FIBL).
    Дебаты по FIB+ недавно велись на их ньюс-сервере и закончились не слишком оптимистично.
  • wellx (25.04.05 16:34) [3]
    Выглядит симпотно, но может имеет смысл вынести в отдельную закладку? А то сразу глаз не видит где искать.
  • SSY (25.04.05 17:31) [4]
    Это традиция такая в Лазаре - все компоненты доступа к данным в эту закладку пихать. Конечно, сделаю отдельную закладку. Просто вся косметика - потом.
  • cranium (26.04.05 20:28) [5]
    to SSY
    >>Дебаты по FIB+ недавно велись на их ньюс-сервере и закончились не слишком оптимистично.
    Ну не так все грустно, когда я эту ветку поднимал, даже не надеялся на ответ.... Ведь обещали же подумать, в случае возможного комерческого успеха:)
  • Darts (28.04.05 09:47) [6]
    Я думаю, неплохо было бы указывать ссылки. Ведь и другим интересно, и время сэкономит.
  • cranium (28.04.05 17:23) [7]
    to Darts

    Пожалуйста devrace.fibplus.ru
  • wellx (06.05.05 13:55) [8]
    Искренне радует движение вперед (уже версия 0.4). Хотелось бы увидеть куда и как планирете развивать продукт? В сторону фибплюс или что-то свое?
  • SSY (06.05.05 16:23) [9]
    Движение вперёд меня и самого радует :) Хотелось бы только, чтобы и движение Лазаря не отставало. По поводу развития, пока сказать ничего не могу. Будут исправляться некоторые огрехи (обработка ошибок, BCD для DECIMAL как минимум), но пока в Лазаре нет достаточно продвинутой сетки, слишком уж развиваться не интересно.

    Если и будет что-то делаться, то исключительно из соображений текущих потребностей. Догнать фибплюс я считаю нереальной да и не нужной целью. Это сугубо коммерческий продукт и многие его особенности обусловлены маркетинговыми соображениями.
  • Darts (06.05.05 17:50) [10]
    > SSY   (06.05.05 16:23)

    Сергей, мои поздравления! Так держать темп! :)

    А вот собственно, и вопросы. Надеюсь, что достаточно информативные.

    FIBL 0.4

    Есть 2 проблемы.

    1. На форму ставим DataSource1, FIBDatabase1, FIBTransaction1, FIBDataset1.
    FIBDatabase1.Connected := True
    FIBDataSet1.Active := True

    База стандартная, employee.fdb, Firebird 1.5

    Если в FIBDataSet1.DataSource установить в DataSource1 (ради интереса :) - Лазарус мгновенно падает.

    2. Создал простейшую таблицу new_table1, 2 поля.
    1 поле - NAME, тип CHAR, длина - 50.
    2 поле - NEW_FIELD, INTEGER.

    Наполнил данными.

    В FIBDataSet1 выставлены
    AutoCommit := True
    AutoStartTransaction := True
    CashedUpdates := True

    Пишем SelectSQL
    select * from new_table order by new_table.new_field

    Пишем DeleteSQL
    delete from new_table where new_field = :new_field

    Пишем RefreshSQL
    select * from new_table where new_field = :new_field

    Создал 2 кнопки. 1-ая кнопка - это удаление записи. 2-ая - обновление набора

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      FIBDataSet1.Delete;
      FIBDataSet1.ApplyUpdates;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
     FIBDataSet1.Refresh;
    end;

    Визуально запись удаляется. А физически - нет.
    Или я что-то не учел?
  • wellx (06.05.05 19:53) [11]
    Э-э, попробуй после apply -> close. Open
  • SSY (06.05.05 21:46) [12]
    Darts, Вы явно злоупотребляете словом new в именах объектов БД :)))
    Я понимаю, IBExpert к этому располагает, но всё же, будьте бдительны :)) В Вашем случае надо писать:

    delete from new_table where new_field = :new_new_field

    С другой стороны, Вы правы: AutoCommit после Delete не срабатывает. Спасибо большое за наводку.

    По поводу первой проблемы... Мастер-деталь я пока вообще не смотрел ибо подозреваю проблемы с этим у Лазаря. Рад буду ошибиться.

    Ещё раз спасибо за тестирование.
  • SSY (06.05.05 22:07) [13]
    Таки я ошибся и очень рад. Мастер-деталь как-то работает, причем без малейших усилий с моей стороны :)

    Кстати, у меня если датасет с датасорсом зациклить, то ничего не падает.

    И ещё хочу попросить перейти в форум на freepascal.ru

    http://freepascal.ru/forum/index.php?act=ST&f=1&t=18

    Там есть возможность редактировать сообщения, так что я не боюсь спороть второпях какую-нибудь горбуху.
  • Darts (07.05.05 19:45) [14]
    > SSY   (06.05.05 22:07) [13]
    > И ещё хочу попросить перейти в форум на freepascal.ru

    ОК, я тут зарегился как GrayEddy :)
 
Конференция "FreePascal" » FreeIBComponents для Lazarus [Win32]
Есть новые Нет новых   [119293   +29][b:0][p:0.001]