FBDataSet (библиотека доступа к данным FireBird/Interbase.)

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

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 26.11.2008 21:34:11

текущий комит в svn - 24
под дельфином в основном Саша Литягин сейчас работает. Я давно там не проверял. Его версия исходника в бранче сейчас

Что там не давало скомпилироваться? давац патчик - я включу его в основную ветку. Просто я как раз сейчас собираюсь делать очередной релиз. Это будет последний, который работает с uib старыми. Следующий будет уже работать с текущей версией.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 27.11.2008 15:43:29

Про 24 видел, но решил, что в бранче идут эксперименты.
Сливаться вы собираетесь? Или Дельфи так в бранче и останется?

Мои правки надо проверять - не вникал особо в код. Изменил:
--- В модуле FBDataSetRegister --- Вставил {$IFDEF FPC}
Код: Выделить всё
procedure RegisterFBCustomDataSet;
begin
  RegisterComponents('Jv UIB', [TFBDataSet]);
  RegisterClass(TFBAnsiMemoField);
  RegisterClass(TFBAnsiField);
{$IFDEF FPC} (*MK*)
  RegisterClass(TFBBlobField);
{$ENDIF}(*MK*)
  RegisterNoIcon([TFBAnsiMemoField, TFBAnsiField {$IFDEF FPC}(*MK*), TFBBlobField {$ENDIF}(*MK*)]);
end;

--- В модуле fbcustomdataset --- Изменил одну строку
Код: Выделить всё
procedure TFBCustomDataSet.InternalSaveRecord(const Q:TJvUIBQuery; FBuff: PChar);
. . .
          //ftWideString:Q.Params.AsWideString[i]:=F.AsWideString;
          ftWideString:Q.Params.AsWideString[i]:=(F as TWideStringField).Value; (*MK*)
. . .

Видимо, тут тоже директивы нужны. Для FPC - 1-й вариант, для Д7 - второй.
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 27.11.2008 21:34:59

Объединение планируется.
Саша работает над увеличение скорости компоненты.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 28.11.2008 12:13:06

Уточни: в последний релиз (со старым Uib) будут включены Сашины доработки?
И скажи, если можешь, что-нить про планируемые сроки этого релиза.
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 28.11.2008 22:26:14

1. нет
2. Думал - что будет вчера. Но увидел твоё сообщение и решил подождать. Постарюсь сделать завтра, в субботу.

После этого буду сливать две ветки.

Добавлено спустя 19 часов 59 минут 30 секунд:
Релиз. 1.28
+ Изменён редактор TAutoUpdateOptionsProperty - заполнение полей свойства
AutoUpdateOptions можно делать теперь без вызова диалогового окна
+ При Вызове метода TFBDataSet.Refresh если для нет соотвествующего поля в
запросе SelectSQL то параметр из RefreshSQL будет заполнен значением параметра из
SelectSQL
+ Исправлена обработка полей BIGINT в обработке параметров для связок master-detail
и в прочих местах
(спасибо - Сергей Смирнов)
+ Изменил нумерацию версиий - следующая версия будет 2.0.0.XXX (чётный номер)
тестовая версия будут 2.0.1.XXX (не чётный номер)
- Исправлена ошибка в связке мастер-детайл при скроле мастера если детайл закрыт
+ Введена обработка ошибки locate для FPC/Lazarus при кодировке набора данных UTF8 в
Windows
- Доработки по компиляции в Delphi
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 01.12.2008 00:23:00

в новостях на шаманграде размести информацию о текущем положении дел в проекте - http://shamangrad.net/news.php?prj=FBDataSet.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 02.12.2008 19:42:27

2. Думал - что будет вчера.

Это гораздо быстрее, чем я надеялся :D

+ Исправлена обработка полей BIGINT в обработке параметров для связок master-detail
и в прочих местах
(спасибо - Сергей Смирнов)

Вот это мне в самую жилу! Спасибо.

По поводу перехода на новый UIB (и новый FBDataset).
Я собирался в будущем инсталлировать обе версии компонент параллельно. И оставить старые проекты на старых компонентах, новые - на новых. Благо в UIB'е все имена компонент изменятся и есть надежда, что можно будет править и старые проекты и новые.
А вот с FBDataset - наверное, так не получится ?
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 03.12.2008 15:36:02

ты знаеш - проще перетянуть всё на новые. Я свои перетянул уже - обычный текстовый поиск и замена.большой проект (порядка 340 форм) - времени ушло минут 30. Просто менял фразу "jv" на "" - благо в своих идентификаторах это сочетание букв не разу не встретил.
А тянуть обе версии компонентов - мне не удобно. Также не удобно менять название компоненты.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение Attid » 03.12.2008 18:05:59

alexs писал(а):А тянуть обе версии компонентов - мне не удобно. Также не удобно менять название компоненты.

+1 если уибы надумают так делать боюсь легче будет отказатся от них, чтоб в будущем не трамвировать мозг.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 03.12.2008 21:28:37

Менять название - это я НЕ имел в виду, конечно.
В общем, риторический вопрос задал. Проехали.
По поводу UIB'а - текущий проект (один, пусть большой) можно перевести на новые компоненты.
А вот старые проекты я править не хочу (пока клиенты ошибок не поймали).
Хотя просматривать их иногда приходится. Поэтому попробую оставить пока оба набора.

Есть еще пара предложений/просьб, но бежать пора. До завтра.
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 03.12.2008 23:02:55

просто можно держать 2 сборки лазаря с установленными библиотека - старый стиль и новый стиль.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 04.12.2008 13:18:12

Посмотри плиз на (ревизия 31, т.е. релиз 1.28)
Код: Выделить всё
unit FBDataSetRegister;
procedure RegisterFBCustomDataSet;
. . .
{$IFDEF FPC}
  RegisterClass(TFBBlobField);
{$ENDIF FPC}
  RegisterNoIcon([TFBAnsiMemoField, TFBAnsiField, TFBBlobField]);  <<<<<<<<<<<<<<<<<<

Тип TFBBlobField определен только для FPC. Поэтому строку я предлагал такую:
Код: Выделить всё
  RegisterNoIcon([TFBAnsiMemoField, TFBAnsiField {$IFDEF FPC},TFBBlobField{$ENDIF} ]);

Поправь, не скомпилируется в Дельфи.
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 05.12.2008 19:32:18

Не в курсе, что с www.progdigy.com случилось?
У меня второй день не открывается.
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение mak » 23.12.2008 21:31:11

Вопрос по реализации Master-Detail на FBDataset'ах.
Как я понял, FBDataset хорошо поддерживает схему, при которой совпадают
1) Имя поля ПК Мастера
2) Имя поля ФК Детали
3) Имена соответствующих параметров в запросах.

У меня не получилось средствами FBDataset'а организовать Мастер-Деталь вот для такой схемы (может, просто недокопал - ткните носом)
Код: Выделить всё
MASTER: ID, CAPTION
DETAIL: ID, MASTER_ID, CAPTION

Где ID - суррогатные первичные ключи (BIGINT), MASTER_ID - FK на Мастера.
Пока выкрутился на событиях BeforeOpen и BeforePost Детали. Примерно так
DetailFBDataSetBeforeOpen:

Код: Выделить всё
var Detail, Master: TFBDataSet;
    MasterId: Int64;
. . . . . . .
   if Master.Eof then // Нет текущей записи Мастера
      Detail.Params.ByNameIsNull['master_id']:= TRUE
   else begin // Есть запись Мастера
      // Получить значение 1-го поля (ID) текущей записи мастера
      Master.GetFieldData(1, @MasterId);
      // Установить значение параметра в SQLSelect
      Detail.Params.ByNameAsInt64['master_id']:= MasterId;
   end;

DetailFBDataSetBeforePost:
Код: Выделить всё
. . . . . .
   if Master.Eof then // Нет текущей записи Мастера
      Detail.SetFieldValues('master_id', Null)
   else begin // Есть запись Мастера
      Master.GetFieldData(1, @MasterId);
      Detail.SetFieldValues('MASTER_ID', MasterId);
   end;

Это работает, но, во-первых, это реализация частного случая, а во-вторых, хотелось бы более системного решения в рамках самого FBDataset'a.
Прошу подсказку - куды бедному крестьянину податься?
Аватара пользователя
mak
новенький
 
Сообщения: 24
Зарегистрирован: 26.11.2008 18:14:07
Откуда: г.Обнинск

Re: FBDataSet (библиотека доступа к данным FireBird/Interbase.)

Сообщение alexs » 24.12.2008 11:42:11

Для связки - достаточно чтобы имя параметра в подчинённой таблице совпадало с именем мастер поля из главной таблицы
наименование поля для связки в детайл таблице может быть любым. Просто правило хорошего тона - именовать их одинаково - самому проще же.
Чтобы при вставке в подчинённоую таблицу новых записей FK поле заполнялось данными из главной записи - поиграйся с парамтерами в options
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Пред.След.

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

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

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

Рейтинг@Mail.ru