|
|
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
xen2при запуске теста "Коррекция структуры БД" выдает: Код: plaintext 1. Что это была за версия FB2.1 (может betta)? Я до сих пор использую самый первый релиз FB2.1, ни разу с ним проблем не имел ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2012, 21:30 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
xen2похоже, у ФБ размер страницы по умолчанию изменился В библиотеке константой задан размер страницы 8 КБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2012, 21:31 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSerЧто это была за версия FB2.12.1.0.17798 Firebird_v2.1.3.BugFixes.pdf Firebird 2.1 Release Candidate 2 (CORE-1715) A “key size exceeds implementation restriction for index” exception was being wrongly returned under some conditions.похоже, оно а я думал, что это у меня релиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 05:15 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
авторIBX тут ни при чем, что ли? Почему тогда нет свойства LibraryName? Я бы не стал так категорично задавать вопрос, но считаю, что добавить это свойство было бы очень полезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 08:10 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DelphiCoder_1980Я бы не стал так категорично задавать вопрос, но считаю, что добавить это свойство было бы очень полезно. Помнится, IBX пользуют только gds32.dll (ну, или fbclient.dll, переименованную в gds32). Поэтому смысла в этом свойстве, имхо, нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 08:24 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DelphiCoder_1980добавить это свойство было бы очень полезно.а какому компоненту вы хотите его добавить? (очевидно, наследнику TIBDatabase, ну так его еще специально для этого делать пришлось бы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 08:31 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
авторочевидно, наследнику TIBDatabase, ну так его еще специально для этого делать пришлось бы Однозначно. ИМХО, некорректно заявлять о поддержке Firebird и не иметь такого свойства. Ведь в разных редакциях FB имя клиентской либы - разное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 13:38 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DelphiCoder_1980Ведь в разных редакциях FB имя клиентской либы - разное. Про какие редакции идет речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 18:39 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DelphiCoder_1980авторIBX тут ни при чем, что ли? Почему тогда нет свойства LibraryName? Я бы не стал так категорично задавать вопрос, но считаю, что добавить это свойство было бы очень полезно. Сомневаюсь, что авторы библиотеки IBX пойдут на это. GDS32.dll жестко зашита в недрах IBX, врядли с этим что-то сделаешь. В качестве выхода из ситуации я предлагаю явно указывать месторасположение библиотеки GDS32.dll в модуле fbUtilsLoading.pas ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 21:27 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
а еще имена библиотек зависят от разрядности. у ИБ это gds32.dll и ibclient64.dll. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 21:46 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
авторПро какие редакции идет речь? Возможные варианты: 1. InterBase, Firebird 1.0 - gds32.dll 2. Firebird 1.5 и выше - fbclient.dll 3. Firebird Embedded 1.5 и выше - fbembed.dll авторСомневаюсь, что авторы библиотеки IBX пойдут на это. Да, они точно не пойдут. Впрочем, Ваш вариант можно рассмотреть. Или действительно подумать о наследнике IBDatabase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 21:50 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
kdv, спасибо за дополнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 21:52 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
kdvа еще имена библиотек зависят от разрядности. у ИБ это gds32.dll и ibclient64.dll. Поддержка 32-разрядной IBX досталась Firebird'у по наследству, но сомневаюсь, что кто-нибудь возьмется за реализацию ibclient64.dll под Firebird... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 22:28 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSerчто кто-нибудь возьмется за реализацию ibclient64.dll под Firebird дело не в этом, а в том, что IBX, который в XE2 входит, должен быть заточен под gds32/ibclient64.dll. В то время как у Firebird и 32 и 64 битный клиент называется fbclient.dll. А instclient.exe, насколько я помню, умеет генерить только 32-битные gds32.dll из 32битного же fbclient.dll. Так что возможность выбора либы вполне оправдана для многих случаев. p.s. с "голым" fbclient.dll, переименованным в gds32.dll, не работают компоненты admin, т.к. в коде ibx идет проверка на версию dll. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2012, 22:32 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
делов то - скопировать IBHeader.pas себе в проект и подредактировать 1 строчку с 'gds32.dll' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 10:41 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
> не работают компоненты admin, т.к. в коде ibx идет проверка на версию dll тогда скопировать IBIntf.pas и еще чутка подредактировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 10:43 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
Библиотека ibxFBUtils обновлена. Ссылка на проект на гитхабе - в первом сообщении топика. Ссылки на SF - устарели https://sourceforge.net/p/loginovprojects/code-0/HEAD/tree/trunk/ibxfbutils Для SVN-клиента: svn://svn.code.sf.net/p/loginovprojects/code-0/trunk/ibxfbutils/ Фактически закоммичен рабочий вариант библиотеки (он используется на работе) со всеми последними изменениями. На работе используем Delphi2007, основное тестирование осуществляется именно с этой версией Delphi. Основанные на ibxfbutils решения фактически экслуатируются месяцами, в некоторых случаях - годами (службы на серверах), без перезапуска ПО. Что нового (попытаюсь за 20 минут вспомнить основные изменения за последние 5 лет): 1. Исправлена работа с пулом подключений и с fb.Ini. За несколько лет эксплуатации были выявлены проблемы, они устранены. 2. Выполнен ряд корректировок для ускорения взаимодействия между клиентом и сервером по медленным каналам связи. Выяснилось, что если канал связи менее 1 МБит/с (на практике - через Интернет, либо через VPN, либо через медленный WiFi), то запросы существенно тормозят. Это происходит из-за необходимости препарации запросов (Prepare). Причем сам запрос выполняется чаще всего гораздо быстрее, чем его препарация (видимо, этап препарации состоит из нескольких обращений к СУБД). Для решения данной проблемы введёны дополнительные методы (например, fb.GetDataSet, fb.GetAndOpenDataSet), которые по тексту SQL-запроса отыскивают и возвращают существующий датасет. При завершении работы с таким датасетом достаточно вызвать метод TIBDataSet.Close (вместо Free). В качестве владельца таким датасетам назначается объёкт TIBTransaction. Следует учитывать, что если в датасете изменить текст SQL-запроса, либо завершить транзакцию, то информация о препарированных запросах будет потеряна (при следующем запросе операция Prepare будет выполнена заново). 2.1 Методы fb.UpdateRecord, fb.InsertRecord, fb.DeleteRecord внутри используют функцию FBGetDataSet, что позволяет существенно ускорить вставку/обновление/удаление множества записей в одной транзакции на медленном канале связи. 2.2 В Метод fb.GenID добавлена возможность указания объекта TIBTransaction (раньше передавался только объект TIBDatabase, а транзакция на запись создавалась каждый раз автоматически). 2.3 В пуле подключений транзакции на чтение теперь остаются всегда активными (это необходимо учитывать, если SQL-запросы включают функцию LIST, т.к. в памяти остаются объекты, до тех пор, пока транзакция не будет завершена). 3. Исключение, возникающее в функции FBDisconnectDB при вызове TIBDatabase.Connected := False теперь перехватывается и никак не обрабатывается. Выяснилось, что нет никакого смысла пытаться обработать подобные ситуации, а если исключение не заглушить, то программа не сможет корректно обработать ошибку. 4. Добавлен метод GetCurrentDateTime. 5. Добавлены методы GetTableFieldValue, GetTableFieldValues, избавляющие от необходимости объявлять переменную TIBDataSet в том случае, если из таблицы запрашивается лишь одна запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2018, 22:53 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSer, вы молодец, что делитесь наработками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 10:33 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSer, 6 лет как 6 дней. вот же время летит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 12:51 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнDmSer, вы молодец, что делитесь наработками. Данный проект изначально разрабатывался во внерабочее время, т.е. дома. Проектами, которые разработаны в рабочее время, делиться совесть не позволяет :) Кстати, вот ещё решил обновить проект LDSLogger. Ссылка для SVN-клиента: https://svn.code.sf.net/p/loginovprojects/code-0/trunk/ldslogger По сравнению с тем, что было раньше - решены проблемы с производительностью в режиме LazyWrite: Раньше каждая строка записывалась в лог отдельно, из-за этого бывали случаи, когда данные в лог писались медленнее, чем программа вызывала метод LogStr(), что могло приводить к ошибке Out of memory. Cейчас сначала формируется буфер из всех строк, которые нужно записать, а затем одним разом буфер пишется в файл. Опять же, основное тестирование выполняется в D2007. Решение поддерживает одновременно множество лог-файлов (конкретно в моём приложении может выполняться обмен с сотнями контроллеров, для каждого контроллера отводится свой лог-файл). При этом никаких тормозов в режиме LazyWrite не возникает (в виде чрезмерной нагрузки на диск и следствие - синий экран), поскольку вся запись выполняется через один единственный поток. Также в один лог-файл могут писать несколько приложений, потери данных не возникает, синхронизация выполняется с помощью мьютекса. К сожалению, для лазаруса решение не обновлялось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 17:21 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSer, На каких то еще версиях Delphi оно работает (проверялось) старше 2007-й? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 23:18 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
Vlad FDmSer, На каких то еще версиях Delphi оно работает (проверялось) старше 2007-й? Предыдущая версия проверялась. Новая не проверялась. И как показывает тестирование, не работает :( Эх, жаль. Если повезёт и найдётся времени, то я разберусь что поломалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 09:35 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSer, А явное указание LibraryName к ней приделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2018, 13:10 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
Vlad FDmSer, А явное указание LibraryName к ней приделал? Мой предыдущий пост был про логгер. Он не заработал в D10.2.3. Я про это написал. Вы уточняйте, о чём спрашиваете. ibxFBUtils работает в последних версиях Delphi. Насколько стабильно - не знаю. Зависит больше от самих компонентов IBX (они же вроде сейчас - кроссплатформенные, и под Android / IOS / Linux должны работать). LibraryName я не приделывал. В планах такого не было. Если Embarcadera решила сделать IBX кроссплатформенными (т.е. вроде не отказываются от их развития), то могли бы догадаться: 1. что реальным разработчикам ПО необходимо иметь 2 транзакции (на чтение и запись). Вариант с одной транзакцией по их логике - это чисто локальные БД без какой-либо гарантии сохранности данных. 2. что многие разработчики (если не большинство) используют IBX для работы с Firebird, поэтому необходимо LibraryName :) Я уж и не говорю по 64-разрядные приложения. На самом деле нет никакой проблемы с использованием GDS32.dll для IBX. Достаточно кинуть fbclient.dll, а с ним ещё пяток файлов в папку своей программы (лучше создать под них отдельную папку) и переименовать в GDS32.dll (на самом деле есть несколько вариантов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2018, 09:06 |
|
||
|
IBXFBUtils - упрощаем разработку приложений БД Firebird
|
|||
|---|---|---|---|
|
#18+
DmSer, Я конкретно спросил про LibraryName, вопрос с которой уже поднимался в данной теме. К чему поначалу было делать вид, что не понял вопроса? К тому же непонятна упомянутая связь кроссплатформенности и двух транзакций, а также кроссплатформенности и того, что испрользуют многие разработчики. Кроме того, в новых версиях IBX переименования fbclient в gds32 уже недостаточно, там все осложнилось и допиливание в этой части IBX требует нетривиальных усилий. В общем, боюсь, что без поддержки новых версий Delphi и допиливания LibraryName твои наработки не нужны никому абсолютно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2018, 16:18 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=37792344&tid=2040334]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 435ms |

| 0 / 0 |
