FBDataSet (библиотека доступа к данным FireBird/Interbase.)
Модератор: Модераторы
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Всем заинтересованным - выложил RC3 - думал что это уже релиз - но обнаружились проблемы в BCB2006 - так что это исправим - и будет релиз
в RC3 вошло уже что нового в этой версии нормальным языком.
Просьба - всем заинтересованным её хорошо проверить, т.к. следующая версия будет не скоро - и в неё будет много ломаться старого и добавляться нового
адрес как всегда
http://alexs75.narod.ru/fpc/fbdataset/alexsDataSet_1_27_RC3.zip
в RC3 вошло уже что нового в этой версии нормальным языком.
Просьба - всем заинтересованным её хорошо проверить, т.к. следующая версия будет не скоро - и в неё будет много ломаться старого и добавляться нового
адрес как всегда
http://alexs75.narod.ru/fpc/fbdataset/alexsDataSet_1_27_RC3.zip
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
распрасить ввод + RxMemDataset
ну я примерно так и предпологал, только чтоб это на автомате =)
хотя это все равно у меня не больше одной строчки займет =)
в общем я как идею предложил, для себя то я как раз через RxMemDataset и сделаю, только заточено.
а грид не хоче для Cros-taba делать?
не ферштейн, отдельный грид вводить? но у меня уже есть один грид на форме =) я не хочу туда 2 грида =)
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
я предлашаю сделать отдельный наследник DBGrid-а (или просто грида) для формирования именно крос-табов - отдельный компонент.
А причем тут грид ? Разве предварительной обработкой датасета это нельзя решить ? То есть выбирать одну порцию данных, распечатывать, затем другую, и так в цикле. Репортер вызывается несколько раз - для каждой порции.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Финальная версия FBDataSet - 1.27.
17.10.2007
ver 1.27 (RC3)
+ Реализован поиск в редакторе SQL для компоненты
- Исправлена ошибка при рефреше данных
- Исправлено отображение поле типа DateTime для Linux при компиляции с последними версиями FPC
+ В параметрах компилятора для всех пакетов для Lazarus путь для библиотек приведён к виду lib/$(TargetCPU)-$(TargetOS)
+ Большие доработки по работе внутренних буферов
+ Новое свойство MasterScrollBehavior - указывает что далеть с редактируемым подчинёным набором данных при изменении текущей записи в мастер-запросе
- Небольшие исправления в документации
+ Новый флаг в Options poRefreshBeforeEdit если установлен то перед переходом в состояние редактирования будет выполнен метод Refresh
- исправлен стиль конца строк в файлах
+ Т.к. в последних версиях FPC реализована нормальная работа вариантов и метода Assign в модуле DB - при заполненни начальных данных в новую запись из мастер таблицы используется стандартный метод Field.Assign
+ При установке свойства DataBase у FBDataSet происходит проверка у транзакций этого же свойства если они совпадают - то у FBDataSet транзакции не очищаются
- Исправлена локальная сортировка в методе SortOnField
+ Добавлен файл patches.txt - здесь будет вестить учёт присланных патчей
+ Доработана документация в части установки в Delphi
+ Добавлена новая директива компиляции для Delphi2006/BCB2006 - nomix_class_obj
17.10.2007
ver 1.27 (RC3)
+ Реализован поиск в редакторе SQL для компоненты
- Исправлена ошибка при рефреше данных
- Исправлено отображение поле типа DateTime для Linux при компиляции с последними версиями FPC
+ В параметрах компилятора для всех пакетов для Lazarus путь для библиотек приведён к виду lib/$(TargetCPU)-$(TargetOS)
+ Большие доработки по работе внутренних буферов
+ Новое свойство MasterScrollBehavior - указывает что далеть с редактируемым подчинёным набором данных при изменении текущей записи в мастер-запросе
- Небольшие исправления в документации
+ Новый флаг в Options poRefreshBeforeEdit если установлен то перед переходом в состояние редактирования будет выполнен метод Refresh
- исправлен стиль конца строк в файлах
+ Т.к. в последних версиях FPC реализована нормальная работа вариантов и метода Assign в модуле DB - при заполненни начальных данных в новую запись из мастер таблицы используется стандартный метод Field.Assign
+ При установке свойства DataBase у FBDataSet происходит проверка у транзакций этого же свойства если они совпадают - то у FBDataSet транзакции не очищаются
- Исправлена локальная сортировка в методе SortOnField
+ Добавлен файл patches.txt - здесь будет вестить учёт присланных патчей
+ Доработана документация в части установки в Delphi
+ Добавлена новая директива компиляции для Delphi2006/BCB2006 - nomix_class_obj
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
поставил , хотел поругаться что транзакция все равно скидывается, пото понял что сначало ноду у транзакции БД прописывать , потом уже у датасета =)
про формат дата тайма, эт очень хорошо что я могу его переопределять как мне захотится, а как-то глобально задать его можно чтоб все датасеты его взяли и юзали, или только правкой исходника ?
про формат дата тайма, эт очень хорошо что я могу его переопределять как мне захотится, а как-то глобально задать его можно чтоб все датасеты его взяли и юзали, или только правкой исходника ?
Несколько замечаний по версии 1.27:
при установке под Delphi 2006 приходится брать напильник
- установочный пакет требует наличия версий пакетов UIB и SynEdit для Delphi 7. Также не отображаются иконки компонент TJvUIBStoredProc и TFBDataSet - приходится подключать соответствующие ресурсы руками. Я понимаю, конечно, что D7 - это классика, но уже 5 лет прошло как-никак 
при установке под Delphi 2006 приходится брать напильник
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
vital писал(а):при установке под Delphi 2006
У меня только 7-й дельфин
давай изменения, включу в исходники
vital писал(а):TJvUIBStoredProc
этого ещё нет
vital писал(а):Я понимаю, конечно, что D7 - это классика, но уже 5 лет прошло как-никак
он у меня официально куплен, для ведения наших задач полностью его хватает, поэтому переходить на более новый - смысла нет.
Можно вопрос?
тоже пока не работает, или нада более хитрым способом работать?
Код: Выделить всё
FBDataSet.SQLInsert.Text:= 'insert into MATERIAL (ID, NAME, PARAMETRES, MATERIALTYPE) values (:ID, :NAME, :PARAMETRES, :MATERIALTYPE) ';
FBDataSet.Params.ByNameAsInteger['ID']:=22;
тоже пока не работает, или нада более хитрым способом работать?
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
А что пытаешся сделать?
если просто вставить данные без выборки и заполняе параметры вручную - то лучше используй TJvUIBQuery
если же ты просто пытаешся заполнить при вставке данных в набор данных недостающие поля - то смотри чтобы у тебя в выбранном наборе небыло поля с таким же именем - если оно есть - то его значение перетрёт то что ты пишеш
кода мало - трудно понять - объясни ситуацию
если просто вставить данные без выборки и заполняе параметры вручную - то лучше используй TJvUIBQuery
если же ты просто пытаешся заполнить при вставке данных в набор данных недостающие поля - то смотри чтобы у тебя в выбранном наборе небыло поля с таким же именем - если оно есть - то его значение перетрёт то что ты пишеш
кода мало - трудно понять - объясни ситуацию
Код: Выделить всё
FBDataSet.UpdateTransaction.StartTransaction;
FBDataSet.SQLInsert.Text:='insert into MATERIAL (ID, NAME, MATERIALTYPE, PARAMETRES) '
+'values (:IDT, :NAMET, :MATERIALTYPET) '
FBDataSet.Params.Parse(FMain.FBDataSet.SQLInsert.Text);
FBDataSet.Params.ByNameAsInteger['IDT']:=StrToInt(LeID.Text);
FBDataSet.Params.ByNameAsString['NAMET']:=LeNAME.Text;
FBDataSet.Params.ByNameAsString['MATERIALTYPET']:='gsdfgs';
FBDataSet.Append;
FBDataSet.Post;
FBDataSet.UpdateTransaction.Commit;
на Post вылетает:
.....
query_QueryInsert(validation error for column ID? value "***null***"
.......
Error Code: 27)
