powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus + IBX
25 сообщений из 203, страница 2 из 9
Lazarus + IBX
    #38414963
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarчччД,да топик про выбор библиотек в ibx.
И где ты там выбор углядел?
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38414966
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,выбор через допиливание ibintf.pas
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Lazarus + IBX
    #38924189
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простейшее тестовое приложение Lazarus + IBX (FireBird Express), в котором для вставки и редактирования записи в запросах используется EXECUTE BLOCK, проверка корректности вводимых значений так-же вынесены в EXECUTE BLOCK.
Запрос c EXECUTE BLOCK на добавления записи использует выражение RETURNING для возврата значения первичного ключа полученного в триггере, которое автоматически, сразу после выполнения запроса подставляется в локальный кэш IBDataset. В примере показано как использовать свойство TIBDataSet.OrderFields для задания сортировки (метод сортировки не работает с локальным кэшем набора данных, а парсит и изменяет/добаляет инструкцию ORDER BY в SELECT).
Кроме этого пример показывает, как перехватить обработку исключений в приложении для замены дурацкого окна сообщений об ошибках на свое собственное, одновременно в обработчике исключений перехватываются сообщения об ошибках FireBird, сгенерированные в хранимых процедурах, триггерах, для вывода их в нормальном виде.
http://visual-t.ru/files/IBTest2.7z

Для работы приложения требуется установленный SQL сервер FireBird версии 2.5 либо библиотека локального доступа fbembed.* версии 2.5.
Перед сборкой тестового приложения в редакторе компонента IBDatabase1 требуется прописать путь к базе TESTDB.FDB (лежит в папке с проектом) и путь к клиентской библиотеке FireBird, прописать логин и пароль.
Клиентская библиотека в комплекте поставки отсутствует.

Сами модифицированные компоненты IBX for Lazarus можно найти здесь:
http://visual-t.ru

Основные изменения:
Изменения в организации доступа к API FireBird. В оригинальной версии, независимо от того какое количество компонентов
TIBDataBase используется в программе, существовал единый метод загрузки клиентской библиотеки, а это значит, что
работа из программы была возможна только с серверами одной и той же версии, нельзя было загрузить 2 разные
клиентские библиотеки. Работа с компонентами была возможна, только если предварительно удалось загрузить клиентскую
библиотеку. Каждый компонент TIBDatabase получил персональный механизм доступа к клиентской библиотеке, загрузка библиотеки происходит при установлении соединения с базой, при разрыве соединения, библиотека освобождается.
В компонент TIBDatabase добавлено свойство LibraryName - в котором указывается имя библиотеки. Поиск и загрузка
библиотеки происходит исключительно по указанному имени. Имя может быть указано с полным путем и без. Если
путь не указан, поиск библиотеки происходит в папке с выполняемой программой. В свойстве LibraryName
по умолчанию присутствует строка: Для windows - 'fbclient.dll', для Linux - 'fbclient.so'.

TIBDataSet работает в рамках 2х транзакций, пишущей и читающей. Добавлены свойства для автозапуска и автозавершения транзакций, добавлено авто форматирование, эмуляция Boolean полей, автотримирование строковых полей, поддержка Returning Field и возвращаемых значений из Execute Procedure в обновляющих запросах TIBDataSet (возвращаемые значения подставляются автоматом в редактируемую запись после выполнения запроса InsertSQL или ModifySQL), поддержка выражений Execute Block, сортировка (сортировка выполняется не на клиенте в кэше, а парсится и изменяется запрос SELECT, в котором добавляется или изменяется инструкция ORDER BY и запрос переоткрывается), и многое другое.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38924362
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterZeroMQ,

Конкретные вопросы - кокретные ответы.
На текущий момент (имхо) ИБО поддерживает все фичи FB 2.5.x (частично 3.0) и IB XE3.

А вообще, конечно послушать полезно, чего там хорошего, чтобы знать в какую сторону дальше двигаться. Я знаю что IBO хорошо контролирует транзакции чтобы избежать застревание OAT. Интересно было бы знать как датасеты работают с транзакциями. Какое управление транзакциями в IBO?
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38924377
Hopkroft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,
Может вопрос некорректный.
Если переходить на IBO то следует для начала прикупить
IBO Core и IBO Native Data Access, ну и скорее всего IBO Tools?
как я понял, эта связка даёт функционал равный FIBPlus?
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38924518
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HopkroftГаджимурадов Рустам,
Если переходить на IBO то следует для начала прикупить
IBO Core и IBO Native Data Access, ну и скорее всего IBO Tools?
как я понял, эта связка даёт функционал равный FIBPlus?

IBO всегда распространялся одним пакетом. Который включает в себя Core+Native+Tools+Dataset+AddOns. По функционалу - да, примерно так и будет.

Основные отличия (возможности) IBO в сравнении с FIB+:
- средства по работе с метаданными (DDL extract и т.п.)
- средства репликации
- средства организации полнотекстового поиска в БД
- набор Native DB controls (работают только с IBO native компонентами, но весьма и весьма кофигурабельны (стандартрный DBGrid пожалуй такими возможностями не обладает)
- большой пакет AddOn`ов (расширенные контролы, разнообразные импорты/экпорты, диалоги для (... та для всего ...;)
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38924531
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Rik-Интересно было бы знать как датасеты работают с транзакциями. Какое управление транзакциями в IBO?

Как и везде - ручками ;)

Есть одна фишка - если в приложении нет транзакций (ну не озадачился программер) - IBO поднимает свою внутреннюю (Default) транзакцию (она контролируется самим обьектом соединения). Сделано было для облегченного перехода с тех БД (ну там какой-нить древний DBF), где про транзакции либо вообще ничего не знали, либо не придавали значения.

Ну и как в лучших домах Лондона и Парижа - отдельные транзакции для чтения/записи.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38924930
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterIBO всегда распространялся одним пакетом. Который включает в себя Core+Native+Tools+Dataset+AddOns.

Я его не видел, но после этой фразы он мне уже не нравится. Да и халва слишком дорогая что-бы её на Lazarusе жевать.

DarkMasterЕсть одна фишка - если в приложении нет транзакций (ну не озадачился программер) - IBO поднимает свою внутреннюю (Default) транзакцию (она контролируется самим обьектом соединения). Сделано было для облегченного перехода с тех БД (ну там какой-нить древний DBF), где про транзакции либо вообще ничего не знали, либо не придавали значения.
Это не фишка - это костыль от недопрограммистов, таких лучше вообще к делу не допускать.
DarkMasterНу и как в лучших домах Лондона и Парижа - отдельные транзакции для чтения/записи.

Транзакции в IBX

В тестовом приложении вы можете увидеть 2 TIBTransaction - IBRead и IBWrite.
IBRead - читающая транзакция, ей заданы параметры:

авторread
read_commited
rec_varsion
nowait

С такими параметрами транзакция стартует в режиме только чтение, не создает версии записей, соответственно не оказывает ни какого влияния на работу сервера и поэтому может жить сколь угодно долго. Сделайте такую-же в своем приложении и все что нужно читать, читайте через неё, т.е. у всех TIBDataSet.Transaction должно быть IBRead. У меня эта транзакция всегда открыта, я стартую её руками после подключения к базе данных, и завершаю руками при закрытии приложения. В противном случае, если читающую транзакцию не держать всё время открытой, это буде приводить к тому, что если понадобится повторно открыть Select запрос, который уже ранее открывался, то у него буде всё время вызываться метод Prepare перед каждым открытием запроса Select, что приведет к сбросу списка параметров и их значения каждый раз нужно будет устанавливать по новой.
Пример:

Код: pascal
1.
2.
3.
4.
5.
6.
IBDataSet.PN('GOD').AsInteger := 2015;
IBDataSet.Open;
IBDataSet.Close;
//Если после Close читающая транзакция остается открытой, то параметр GOD ни куда не денется
//Можно смело открывать запрос повторно, значение 2015 на месте
IBDataSet.Open;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
IBDataSet.PN('GOD').AsInteger := 2015;
IBDataSet.Open;
IBDataSet.Close;
//Если после Close читающая транзакция закрылась, то значение параметра GOD тоже ликвидируется
//Поэтому потребуется
IBDataSet.PN('GOD').AsInteger := 2015;
IBDataSet.Open;



IBWrite - пишущая транзакция, ей заданы параметры:
авторwrite
wait
no_rec_version
read_commited
lock_timeout = 10

Я использую такую транзакцию для всех коротких пишущих запросов, для TIBDataSet, TIBStoredProc, TIBQuery с опцией AutoCommit := True. Т.е. для всех TIBDataSet в своем приложении, у которых AutoCommit = True (включено по умолчанию) назначьте в свойстве UpdateTransaction - IBWrite. Пишущая транзакция будет сама стартовать и завершаться во время метода Post или Delete.

Частные случаи.
Иногда нужно в рамках одной транзакции записать блок записей в одну или несколько таблиц, и в случае ошибки, для сохранения логической целостности данных, откатить транзакцию, вернув всё в исходное состояние. Для таких случаев, стоит завести отдельную пишущую TIBTransaction. У всех компонент, которые будут её использовать поставить AutoCommit = False. Запускать транзакцию и подтверждать (откатывать) её нужно будет вручную.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
IBDataSet1.UpdateTransaction := DocWriteTransaction;
IBDataSet2.UpdateTransaction := DocWriteTransaction;
MyProc.Transaction := DocWriteTransaction;
IBDataSet1.Autocommit := False;
IBDataSet2.Autocommit := False;
MyProc.AutoCommit := False;
DocWriteTransaction.StartTransaction;
try

IBDataSet1.Append;
....................
IBDataSet1.Post;

IBDataSet2.Append;
...............
IBDataSet2.Post;

IBDataSet2.Append;
...............
IBDataSet2.Post;

IBDataSet2.Append;
...............
IBDataSet2.Post;

MyProc.ExecProc;

DocWriteTransaction.commit;

finally
  //Если на этом этапе DocWriteTransaction активна, значит произошла ошибка, откатываем изменения.
  if DocWriteTransaction.InTransaction then DocWriteTransaction.RollBack;
end;



Master-detail
Механизм master-detail существенно переработан и жизнь облегчает значительно. Обратите внимание на DetailCondition - используется для управления detail в связке с мастер. В нем если включен dcForceOpenClose - открывает detail автоматически при открытии master и автоматически закрывает его при закрытии master. Если включен dcForceMasterRefresh - вызывает у master.Refresh после detail.Post или detail.Delete. Если включен dcForceMasterPost - то в момент detail.BeforeInsert или detail.BeforeEdit проверяет, если master.State in [dsInsert, dsEdit] то делает ему master.Post.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925592
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Rik-...
С такими параметрами транзакция стартует в режиме только чтение, не создает версии записей, соответственно не оказывает ни какого влияния на работу сервера и поэтому может жить сколь угодно долго...

А как же "временные" блобы? :)
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925632
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeroMQ-Rik-...
С такими параметрами транзакция стартует в режиме только чтение, не создает версии записей, соответственно не оказывает ни какого влияния на работу сервера и поэтому может жить сколь угодно долго...

А как же "временные" блобы? :)
Кто мешает работу с блоб организовать в отдельной транзакции, которая не будет висеть долго?
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925637
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Rik-ZeroMQпропущено...


А как же "временные" блобы? :)
Кто мешает работу с блоб организовать в отдельной транзакции, которая не будет висеть долго?

Кто мешает не делать ложных декларативных заявлений?

-Rik-...
С такими параметрами транзакция стартует в режиме только чтение, не создает версии записей, соответственно не оказывает ни какого влияния на работу сервера и поэтому может жить сколь угодно долго...
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925671
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Rik-IBWrite - пишущая транзакция, ей заданы параметры:
write
wait
no_rec_version
read_commited

вы в курсе опции no_rec_version? если у вас эта транзакция пишущая, то зачем ей дэдлоки на ЧТЕНИИ не-committed версий?

-Rik-С такими параметрами транзакция стартует в режиме только чтение, не создает версии записей, соответственно не оказывает ни какого влияния на работу сервера и поэтому может жить сколь угодно долго
То, что вы написали, неверно. транзакция read read_committed завершена сразу после старта (в IB 6 и выше), поэтому она не является активной, и не удерживает версии записей, созданные другими транзакциями.

я вам рекомендую освежить знания повторным чтением статей на ibase.ru. А то вы вроде бы учите людей, но в вашем изложении есть существенные неточности.

-Rik-Кто мешает работу с блоб организовать в отдельной транзакции, которая не будет висеть долго?
получается, и тут вы тоже не в курсе.
http://www.ibase.ru/devinfo/dbgrowth.html
никто не запрещает в read read_committed вызовый функции list или конкатенацию блобов. При этом, не смотря на опцию read транзакции, временные блобы будут создаваться именно в этой транзакции.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925674
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Rik-Я знаю что IBO хорошо контролирует транзакции чтобы избежать застревание OAT.
OAT - это Oldest Active Transaction, т.е. старейшая на текущий момент активная транзакция. "Застревание OAT" - это просто длительная активная транзакция. "Контролировать тразакции" можно либо вручную, т.е. стартуя и завершая их явно, либо автоматически, т.е. полагаясь на драйвер (т.е. не контролируя это никак).

p.s. увижу в очередной раз Джейсона - обязательно спрошу у него, как это он их там "контролирует" в IBO.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925682
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv-Rik-IBWrite - пишущая транзакция, ей заданы параметры:
write
wait
no_rec_version
read_commited

вы в курсе опции no_rec_version? если у вас эта транзакция пишущая, то зачем ей дэдлоки на ЧТЕНИИ не-committed версий?

У меня нет возможности проводить исследования, я использовал исследования devrace:
http://www.devrace.com/ru/fibplus/articles/2169.php
Я с ними согласен, у меня не было проблем с этим. Параметры к транзакции не гвоздями прибиты, если кто-то считаете что есть лучший вариант, ради бога, но то что я описал, по моему опыту, работает хорошо.

kdv-Rik-С такими параметрами транзакция стартует в режиме только чтение, не создает версии записей, соответственно не оказывает ни какого влияния на работу сервера и поэтому может жить сколь угодно долго
То, что вы написали, неверно. транзакция read read_committed завершена сразу после старта (в IB 6 и выше), поэтому она не является активной, и не удерживает версии записей, созданные другими транзакциями.

я вам рекомендую освежить знания повторным чтением статей на ibase.ru. А то вы вроде бы учите людей, но в вашем изложении есть существенные неточности.
Все верно, иногда я не уделяю должного внимания некоторым вещам, постараюсь исправиться.

kdv-Rik-Кто мешает работу с блоб организовать в отдельной транзакции, которая не будет висеть долго?
получается, и тут вы тоже не в курсе.
http://www.ibase.ru/devinfo/dbgrowth.html
никто не запрещает в read read_committed вызовый функции list или конкатенацию блобов. При этом, не смотря на опцию read транзакции, временные блобы будут создаваться именно в этой транзакции.
Про блобы я не знал, учту на будущее.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #38925736
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Там все в норме, если ручками ;)... Нужно учитывать только Default Transaction (r/w), которая поднимается, если других нет. В IBO она всегда есть, но "спрятана". Опять таки, если ее явно не указать.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Lazarus + IBX
    #39805424
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал переписать программку на Delphi с использованием Lazarus 2.0 и столкнулся с проблемой при сортировке данных по щелчку на заголовке в гриде.

В Delphi (fibplus) я использовал для этого локальную сортировку набора данных.
В Lazarus в Компонентах IBX версия 2.2.8 ( http://www.visual-t.ru) я этого метода не нашел, зато нашел свойство OrderFields.
Если набор данных без параметра, то все получается:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
procedure TfMain.dbgSlaveTitleClick(Column: TColumn);
var key: integer;
    i: integer;
begin
  with dbgSlave, IBQslave do begin
    for i:=0 to Columns.Count - 1 do
    begin
      Columns[i].Font.Style := [];
      Columns[i].Title.Font.Style := [];
    end;
    key := IBQSlaveEMP_NO.AsInteger;
    OrderFields := Column.FieldName;
    Column.Font.Style := [fsBold];
    Column.Title.Font.Style := [fsBold];
    try
      Locate('EMP_NO', key, []);
    except
    end; //try
  end;
end;


Но если набор данных связать с мастером по параметру
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
object IBQslave: TIBQuery
    Database = IBDb
    Transaction = IBTr
    AutoStartTransaction = True
    AutoCommit = True
    AutoTrim = True
    Active = True
    BufferChunks = 1000
    CachedUpdates = False
    DataSource = dsMaster
    GeneratorField.ApplyOnEvent = gaeOnNewRecord
    SQL.Strings = (
      'Select '
      'A.EMP_NO, '
      'A.FIRST_NAME, '
      'A.LAST_NAME, '
      'A.PHONE_EXT, '
      'A.HIRE_DATE, '
      'A.DEPT_NO, '
      'A.JOB_CODE, '
      'A.JOB_GRADE,'
      ' A.JOB_COUNTRY, '
      'A.SALARY, '
      'A.FULL_NAME '
      'From EMPLOYEE A '
      'where DEPT_NO = :DEPT_NO'
    )


то при щелчке по заголовку выдает ошибку EIBClientError: Empty Query

БД - Firebird 2.5.8.27089
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805431
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.04.2019 15:16, dedRasta пишет:
> то при щелчке по заголовку выдает ошибку EIBClientError: Empty Query

пиши автору клона IBX
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805519
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRastaПопробовал переписать программку на Delphi с использованием Lazarus 2.0 и столкнулся с проблемой при сортировке данных по щелчку на заголовке в гриде.

В Delphi (fibplus) я использовал для этого локальную сортировку набора данных.
В Lazarus в Компонентах IBX версия 2.2.8 ( http://www.visual-t.ru) я этого метода не нашел, зато нашел свойство OrderFields.
Если набор данных без параметра, то все получается:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
procedure TfMain.dbgSlaveTitleClick(Column: TColumn);
var key: integer;
    i: integer;
begin
  with dbgSlave, IBQslave do begin
    for i:=0 to Columns.Count - 1 do
    begin
      Columns[i].Font.Style := [];
      Columns[i].Title.Font.Style := [];
    end;
    key := IBQSlaveEMP_NO.AsInteger;
    OrderFields := Column.FieldName;
    Column.Font.Style := [fsBold];
    Column.Title.Font.Style := [fsBold];
    try
      Locate('EMP_NO', key, []);
    except
    end; //try
  end;
end;


Но если набор данных связать с мастером по параметру
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
object IBQslave: TIBQuery
    Database = IBDb
    Transaction = IBTr
    AutoStartTransaction = True
    AutoCommit = True
    AutoTrim = True
    Active = True
    BufferChunks = 1000
    CachedUpdates = False
    DataSource = dsMaster
    GeneratorField.ApplyOnEvent = gaeOnNewRecord
    SQL.Strings = (
      'Select '
      'A.EMP_NO, '
      'A.FIRST_NAME, '
      'A.LAST_NAME, '
      'A.PHONE_EXT, '
      'A.HIRE_DATE, '
      'A.DEPT_NO, '
      'A.JOB_CODE, '
      'A.JOB_GRADE,'
      ' A.JOB_COUNTRY, '
      'A.SALARY, '
      'A.FULL_NAME '
      'From EMPLOYEE A '
      'where DEPT_NO = :DEPT_NO'
    )


то при щелчке по заголовку выдает ошибку EIBClientError: Empty Query

БД - Firebird 2.5.8.27089
OrderFields добавлялось для TIBDataSet, попробуйте IBQuery заменить на IBDataSet.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805521
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.04.2019 18:26, -Rik- пишет:

> OrderFields добавлялось для TIBDataSet

почему не для TIBCustomDataSet ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805538
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий23.04.2019 18:26, -Rik- пишет:

> OrderFields добавлялось для TIBDataSet

почему не для TIBCustomDataSet ?

Оно добавлено в TIBCustomDataSet, но планировалось для работы только в TIBDataSet, в TIBQuery я его даже не тестировал, можно допилить конечно..
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805547
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-Rik-OrderFields добавлялось для TIBDataSet, попробуйте IBQuery заменить на IBDataSet.

Когда уже уходил с работки, попробовал - та же ошибка
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805571
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRastaпри сортировке данных по щелчку на заголовке в гриде
а грид чей пользуешь? В RxGrid есть DataDriver для IBX и FB, попробуй там.

зы. я бы перевел сортировку в ручной режим и тягал данные на клиента средствами сервера. Как-то Алексея попросил специально сделать так, чтобы клики по титлбатонам были "только на бумаге". В результате, локальная сортировка гридом сделана, если только подключены датадрайверы. За что ему большое спасибо.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805647
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док, а где можно скачать rx* для Lazarus 2.0? ? На freepascal ссылка аж от 2007г.
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805650
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Lazarus + IBX
    #39805672
-Rik-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta-Rik-OrderFields добавлялось для TIBDataSet, попробуйте IBQuery заменить на IBDataSet.

Когда уже уходил с работки, попробовал - та же ошибка
Попробуйте RefreshSQL заполнить.
...
Рейтинг: 0 / 0
25 сообщений из 203, страница 2 из 9
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus + IBX
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]