Diesel Pascal

Проектирование и разработка идеального средства программирования.

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

Re: Diesel Pascal

Сообщение ogorodov » 16.04.2015 09:53:35

Привет Rik подскажи пожалуйста как работает или что дает свойство TIBDataSet.ForcedRefresh ... меня интересует как в DBGrid вывести последние добавленные записи или изменения записей произведенные на другом компе ... не обновляя полностью запрос и коннект к базе ... чтобы пользователь без лишних действий увидел новые записи
ogorodov
новенький
 
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Re: Diesel Pascal

Сообщение *Rik* » 16.04.2015 10:04:05

ogorodov писал(а):Привет Rik подскажи пожалуйста как работает или что дает свойство TIBDataSet.ForcedRefresh ... меня интересует как в DBGrid вывести последние добавленные записи или изменения записей произведенные на другом компе ... не обновляя полностью запрос и коннект к базе ... чтобы пользователь без лишних действий увидел новые записи

ForcedRefresh - принудительный Refresh текущей записи после Post.

Если весь набор обновить нужно, только FullRefresh вызывать, больше никак. Чтобы во время FullRefresh позиция курсора не сбивалась, в GeneratorField.Field впишите имя поля первичного ключа.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение ogorodov » 16.04.2015 10:20:27

Попробовал вот так ...
Код: Выделить всё
  ibdsOrder.GeneratorField.Field:='ID';
  ibdsOrder.FullRefresh;

... Курсор после этого встает на середину DBGrid ... А как обновить не весь набор данных а только видимый набор плюс новые записи
ogorodov
новенький
 
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Re: Diesel Pascal

Сообщение *Rik* » 16.04.2015 15:01:31

ogorodov писал(а):Попробовал вот так ...
... Курсор после этого встает на середину DBGrid ... А как обновить не весь набор данных а только видимый набор плюс новые записи

Я могу добавить процедуру RefreshVisibleRows
Вернее у себя я её уже добавил, процедура перебирает все записи локального кэша, вычитывая данные во временный буфер по одной, затем из временного буфера устанавливает параметры в RefreshSQL и с помощью него обновляет данные во временном буфере, после чего отправляет содержимое буфера обратно в локальный кэш. Все курсоры естественно остаются на месте, но если в локально кэше вычитано записей много, на обновление их всех потребуется время. Я попробовал на 1000 записей, на глаз примерно занимает около 1 сек или чуть больше. Если такой вариант устроит, выложу обновление, во всяком случае по другому сделать идей нет...
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение ogorodov » 17.04.2015 08:38:27

*Rik* писал(а):Если такой вариант устроит, выложу обновление, во всяком случае по другому сделать идей нет...

Ага очень хорошо ... выложи пожалуйста с процедурой RefreshVisibleRows ...

Добавлено спустя 21 минуту 49 секунд:
*Rik* Сегодня попробовал ... самое оно спасибо
ogorodov
новенький
 
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Re: Diesel Pascal

Сообщение v-t-l » 24.04.2015 09:21:24

При открытии сохраненного или запуске нового проекта, содержащего компонент TSdfDataSet, выдается ошибка:
Class "TSdfDataSet" not found.

Можно, конечно, и вручную CSV парсить, но с DataSet удобнее.
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 24.04.2015 15:53:53

v-t-l писал(а):При открытии сохраненного или запуске нового проекта, содержащего компонент TSdfDataSet, выдается ошибка:
Class "TSdfDataSet" not found.

Можно, конечно, и вручную CSV парсить, но с DataSet удобнее.

Потребуется какое-то время, как будет готово, отпишусь..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение *Rik* » 27.04.2015 14:47:37

Проект и компоненты переведены на Lazarus 1.4
Исправлена поддержка TSDFDataSet, TFieldDefs
Пример с TSdfDataSet (сделано на основе примера с http://wiki.freepascal.org/CSV)
http://visual-t.ru/files/SdfDataTest.lm9
Ссылку на пример можно скопировать и в дизайнере выполнить Файл->Открыть URL (Загруженные проекты по http,ftp в дизайнере будут только для чтения, для редактирования сохраните проект локально)
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение ogorodov » 20.05.2015 09:25:32

Привет *Rik*
Подскажи существует ли компонента типа LR_ZeosDB или LR_SqlDB от Lagunov A.A. для IBX ... для использования в LazReport
ogorodov
новенький
 
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Re: Diesel Pascal

Сообщение *Rik* » 20.05.2015 19:10:39

ogorodov писал(а):Привет *Rik*
Подскажи существует ли компонента типа LR_ZeosDB или LR_SqlDB от Lagunov A.A. для IBX ... для использования в LazReport

Нету, надо делать..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение ogorodov » 29.05.2015 10:15:27

Привет *Rik*
Я на днях Lazarus обновил до версии 1.4 и попробовал IBX в своих консольных утилитах ... так вот опять выдает ошибку и не собирается без модуля Intefase.
В версии 1.2.6 все работало на ура ... что поменяли непонятно пока ... У тебя так-же попробуй.
ogorodov
новенький
 
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Re: Diesel Pascal

Сообщение *Rik* » 29.05.2015 13:53:20

ogorodov писал(а):Привет *Rik*
Я на днях Lazarus обновил до версии 1.4 и попробовал IBX в своих консольных утилитах ... так вот опять выдает ошибку и не собирается без модуля Intefase.
В версии 1.2.6 все работало на ура ... что поменяли непонятно пока ... У тебя так-же попробуй.

Тут Lazarus скорее не виноват. Я как-то заменил функции типа UppdrCase на UTF8UpperCase и т.д. объявленные в LazUTF8 (Это была попытка по чьей-то просьбе подключить русские алиасы), в модуле IBIntf.pas где загружается клиентская либа от FireBird прописан UTF8ToSys из модуля FileUtil, они тянут за собой LCL, я как-то упустил этот момент из виду.. Надо подумать, как чего придумаю, напишу, можете сами поэкспериментировать. Для этого в пакете IBExpress из зависимостей удалить LCL, в модуле IBDef.inc {$DEFINE LCLSUPPORT} тоже закомментировать. Как удастся IBExpress собрать без LCL так всё заработает..

Добавлено спустя 2 часа 28 минут 40 секунд:
ogorodov
Попробуйте вот это:
http://visual-t.ru/files/ibx_nolcl.7z

При установке пакета dclibx будет ругаться, что пути дублируются к одинаковым модулям, сделайте игнорировать, там сейчас разделены папки вывода модулей для пакета ibexpress и для dclibx. Для ibexpress отключен LCL и соответственно функции LalUTF8, поэтому в SQL запросах не используйте кириллицу даже в комментариях, для запросов EXECUTE BLOCK, а так-же в TIBDataSet.SelectSQL если используете свойство TIBDataSet.OrderFields.

Если все пройдет успешно, включу изменения для IBX, но видимо придется делать манипуляции и каждый раз пересобирать IBX, если требуется консольный вариант без LCL и для приложений с LCL.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение ogorodov » 17.06.2015 10:25:43

Привет *Rik* ... вариант ibx_nolcl.7z все работает ... Спасибо
ogorodov
новенький
 
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Re: Diesel Pascal

Сообщение McLion » 17.06.2015 11:51:47

Великий немецкий инженер Рудольф Дизель, изобретатель дизельного двигателя! Прикольное название, инженер конструктор и математик Паскаль! :D
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Diesel Pascal

Сообщение *Rik* » 17.06.2015 13:38:01

McLion писал(а):Великий немецкий инженер Рудольф Дизель, изобретатель дизельного двигателя! Прикольное название, инженер конструктор и математик Паскаль! :D

Все верно, когда звучит фамилия инженера, на ум сразу приходит его изобретение - двигатель. В моем случае, продукт - это то-же движок, только программный, может не очень быстрый, но не менее мощный чем сам Lazarus и его приложения.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Пред.След.

Вернуться в Компилятор / язык программирования

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

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

Рейтинг@Mail.ru