English version Russian version




Версия 1.6

По поводу многопоточности.

Никаких проблем, в общем-то, нет, но мы решили разъяснить следующие вещи:

  • GDS32.DLL, в общем случае, не поддерживает конкурентный доступ к базе данных через одно подключение;
  • IBProvider реализует собственный двухуровневый механизм блокировок:
    1. на уровне вызовов IB API. Каждое подключение обладает собственным синхронизирующим объектом;
    2. на уровне компонент. Можно, например, из разных потоков параллельно обрабатывать данные одного наборов рядов.

То есть, возможность функционирования клиента в многопоточном режиме полностью зависит от используемых библиотек доступа. В IBProvider'е защищенность распространяется, в том числе, и на оконную библиотеку вывода диалога подключения.

Самое интересное, что использование новой возможности IB6.5 (отмена выполнения запроса) возможно только при вызове isc_dsql_free_statement без синхронизации второго (ICommand::Execute) и первого уровня (isc_dsql_execute_xxx). А это не дает никакой гарантии допустимости передаваемого дескриптора stmt_handle. Будем надеяться, что специалисты Borland смогут предъявить пример надежного, во всех отношениях, использования этой возможности. Периодически вызываемая callback-функция дала бы более положительную реакцию. Но это субъективное мнение.

Используемый компилятор

Модуль _IBProvider.dll откомпилирован "Free Borland C++ Compiler". Импорт функций gds32.dll осуществляется по именам. При этом оставлена совместимость с клиентской частью от IB4.

Исправленные ошибки

  • В случае NUMERIC/DECIMAL колонок результирующего множества возвращался неправильный размер типа DBTYPE_R8.
  • Более корректная проверка имен типов, передаваемых в ICommandWithParameters::SetParameterInfo. Раньше можно было передавать например такое имя "DOUBLEPRECISIO N".

Изменения

  • Новый базовый адрес загрузки _IBProvider.dll 0x45E00000. Благодаря линковщику от BCB5, таблица переназначений сохранена.
  • Плавающая конвертация INT64 в VARIANT. Могут использоваться типы VT_I4/VT_R8. Ранее использовался только VT_R8.

Новая функциональность

  • Реализация IDBInfo.
  • Реализована специализированная поддержка запросов "select * from table". В этом случае IBProvider определит имя таблицы и предоставит в columns rowset информацию о колонках первичного ключа. Честно говоря, очень не хватает собственного полноценного разборщика SQL запросов.
  • Реализована поддержка VARIANT типов VT_I1, VT_UI2, VT_UI4, VT_INT, VT_UINT.
  • Отказоустойчивость. Одним из потенциально уязвимых мест OLEDB является буфер обмена данными. Принимая во внимание разнообразие типов и способов передачи данных, необходима гарантия корректной обработки буфера. В текущей версии был реализован новый подход принудительного обхода всех элементов буфера, что при корректной работе клиента OLEDB провайдера гарантирует отказоустойчивость при любых динамических ошибках (например, распределения памяти).
  • Поддержка isc_rollback_retaining. При этом проверяется подключение к серверу с DB Base Level=6 и использование GDS32 от IB6.

Оптимизация

В настоящий момент если она и нужна, то на уровне сервера:). Тем не менее, основным направлением этой работы является устранение ненужного создания временных С++ объектов и конвертаций между ANSI и UNICODE. Тестирование и сравнение по этому вопросу предоставляем вам. Если будет необходимо, то мы предоставим эквивалент коммерческого варианта.

Новые свойства набора "Data Source Information"

  • "Provider Version"
  • "Read-Only Data Source"
  • "Provider Owned Memory"
  • "ORDER BY Columns in Select List"
  • "GROUP BY Support"
  • "Maximum Row Size"
  • "Maximum Row Size Includes BLOB"
  • "Maximum Index Size"
  • "Maximum Tables in SELECT"
  • "Identifier Case Sensitivity"
  • "Quoted Identifier Sensitivity"
  • "Rowset Conversions on Command"
  • "Subquery Support"
  • "Isolation Retention"
  • "IB Base Level"
  • "IB GDS32 Version"
  • "IB Version"
  • "IB Database Dialect"
  • "IB ODS Version"
  • "IB ODS Minor Version"
  • "IB Remote Connection"
  • "IB Database Page Size"

Наборы схем

  • 25 наборов. Это все основные и множество вспомогательных.
  • Тестировалось на IB4, IB5, FB 0.9.4 и FB 6.2.641. Думаем, будет работать и на IB6.5
  • Поддержка ограничений.
  • Сортировка содержимого согласно стандарту.
  • Возможность управления режимом кэширования метаданных. Смотри новые свойства "schema_cache" и "Session Schema Cache"
  • Секционная блокировка кэша метаданных обеспечивает хорошую производительность многопоточных приложений.
  • Возможность запрещения неявных транзакций для выполнения запросов получения метаданных. Смотри свойства "inner_trans" и "Session InnerTrans". В случае, если пользователь явно начал транзакцию, то именно она будет использоваться для получения метаданных. В случае старта неявной транзакции будет использоваться уровень изоляции указанный в "Autocommit Isolation Levels".
  • Некоторые наборы были расширены, чтобы предоставлять более осмысленную информацию, в частности:
    • DBSCHEMA_REFERENCIAL_CONSTRANTS
    • DBSCHEMA_TABLE_PRIVILEGES
    • DBSCHEMA_COLUMN_PRIVILEGES
  • Возвращаемые наборы поддерживают IColumnsRowset
  • Интенсивное использование внутреннего пула объектов минимизирует затраты при повторном создании наборов.

Забобрить эту страницу! Добавить на Memori.ru Mr Wong Добавить в закладки МоёМесто.ru Добавить на Rumarkz Добавить на Rucity Digg It Reddit Technorati Del.icio.us Google Bookmarks Slashdot StumbleUpon Yahoo MyWeb Все

Дата публикации: 13.12.2001. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт http://www.ibprovider.com обязательна.

Все новости IBProvider:
06.11.2008 Новый IBProvider – поддержка 49 кодовых страниц, возможность работы без регистрации провайдера, предотвращение утечки памяти в Firebird клиенте.
03.10.2008 В новой версии IBProvider Professional Edition добавлено 7 кодовых страниц, исправлены ошибки, улучшен механизм работы с памятью и доступ к BLOB-полям
25.08.2008 6 мировая конференция по Firebird пройдет в Бергамо с 25 по 27 сентября 2008 года. Открыта регистрация
30.07.2008 Доступны новые версии IBProvider. Улучшена работа с NUMERIC-типами и с пулом подключений. В схемах метаданных добавлена поддержка внешних и временных таблиц. В 2,5 раза повышена производительность с отключенным кешем метаданных.
08.07.2008 Выпущен IBProvider Release Candidate 3. Поддержка аутентификации Windows для Firebird 2.1, поддержка длинных имен и Boolean типа для Interbase 7 и Interbase 2007, и т.д.
17.06.2008 Новые версии IBProvider. Поддержка бинарных данных и кодовой страницы OCTETS, 64 битные колонки в схемах метаданных, релиз конвертора типов.
12.05.2008 Доступны новые версии IBProvider. Полностью обновлен конвертор типов.
07.04.2008 Новый IBProvider v3 для 64 битных ОС.
11.03.2008 Новая версия IBProvider v.3.0 RC2 [buid 3965].
08.02.2008 Доступны новые версии IBProvider. Улучшена поддержка Visual Studio 2008, реализован новый механизм распределенных транзакций, исправлены ошибки и улучшена совместимость с различными серверами Firebird и Interbase.
26.12.2007 Изменились лицензии на IBProvider, а так же появилась возможность покупать IBProvider со скидкой.
08.11.2007 23 ноября 2007 года в Москве пройдет вторая российская конференция по Firebird и Interbase. Специальная акция для участников.
30.10.2007 Новая версия IBProvider Free Edition (3.0.0.3313 Release Candidate 2 [RC2]).
29.10.2007 Новая версия IBProvider v3 Release Candidate 2 (RC2).
18.10.2007 Новая версия IBProvider Professional Edition. Улучшена интеграция с Microsoft Office. Исправлены известные ошибки.
13.09.2007 Новые версии провайдеров в составе IBProvider Professional теперь могут работать в среде Microsoft SQL Server 2005 Business Intelligence Development Studio.
20.07.2007 Выпущены редакции IBProvider Professional Edition и IBProvider Free Edition поддерживающие Firebird 2.1.
25.05.2007 Возобновлена работа механизма скачиваний. Персональная доставка новых версий будет более оперативной.
27.04.2007 Новые редакции IBProvider Professional и IBProvider Free уже на сайте!
13.12.2006 Новая версия библиотеки классов C++ для работы с OLE DB-провайдерами. Реализована поддержка Unicode проектов.
04.12.2006 Опубликованы последние релизы: IBProvider Professional Edition - профессиональное решение для создания приложений баз данных для Interbase и Firebird. IBProvider Free Edition - обновленная бесплатная версия на базе третьей версии IBProvider
07.10.2006 Новые версии IBProvider 3.0.0.2385 [RC1] и IBProvider 2.5.0.2088 [Релиз]. Добавлены псевдонимы Charset, PSWD. Оптимизация чтения метаданных и парсера SQL запросов. Поддержка работы с массивами в ADO .Net.
28.08.2006 Новые версии провайдеров: IBProvider 3.0.0.2065 [Beta] и IBProvider 2.4.7.2034 [Релиз]. Улучшенная интеграция с MSSQL 2000/2005.
13.08.2006 IBProvider 3.0.0.1959 [Beta]. IBProvider 2.4.6.1989 [Релиз]. Библиотека классов С++ для работы с OLEDB провайдерами теперь поддерживает VC8 (VS2005).
25.05.2006 IBProvider 3.0.0.1324 [Beta]. IBProvider 2.4.5.1953 [Релиз]. Клиентская библиотека для C++.
05.05.2006 Изменение цены на IBProvider. Доступны новые демо версии
30.03.2006 IBProvider release v.2.4.4 (v.1.7.26) build 1885 now available. IBProvider v.3 [сборка 1107. бета]
27.02.2006 IBProvider v.1/v.2 [cборка 1877 Release Candidate 1]. IBProvider v.3 [сборка 1062. бета]
30.11.2005 IBProvider 2.4.3.1859. Релиз.
01.11.2005 Решение проблемы с арифметическими ошибками в .NET приложениях.
28.09.2005 IBProvider v3 [сборка 913] [beta version].
22.09.2005 IBProvider v3 [сборка 890] [beta version]. IBProvider v2/v1 [сборка 1811].
01.09.2005 Журнал для разработчиков под Interbase и Firebird.
28.07.2005 IBProvider v3 [сборка 789] [beta version]. IBProvider v2/v1 [сборка 1802].
15.06.2005 IBProvider v3 [сборка 779] [beta version]. IBProvider v2/v1 [сборка 1795].
12.04.2005 Открыт форум для пользователей IBProvider
22.03.2005 IBProvider 2.4.2.1772. Релиз.
28.02.2005 IBProvider 3.0.0.639 beta. Изменение корпоративной лицензии.
11.02.2005 IBProvider 3.0.0.573 beta.
24.12.2004 IBProvider 3.0.0.449 beta.
12.11.2004 IBProvider 2.4.1.1720/1.7.23.1720. Релиз.
31.05.2004 IBProvider 2.4.0.1607/1.7.22.1607. Релиз.
14.05.2004 Релиз кандидат 2.4.0.1588/1.7.22.1588
30.04.2004 Версия 2.3.3.1523 beta
29.03.2004 Версия 2.3.3.1416 beta
17.12.2003 Версия 2.3.3.1300
18.10.2003 Версия 2.3.2.1233
22.08.2003 Версия 2.3.1.1184
25.06.2003 Версия 2.3.0.1134 - расширена поддержка MS AS, MS SQL
23.04.2003 Версия 2.2.0.969 - поддержка диалога Data Links, локализация.
31.03.2003 Версия 2.1.2.
26.03.2003 Версия 2.1.1.
04.03.2003 Версия 2.1. Полностью переписан механизм обработки ошибок.
26.02.2003 Скидки на IBProvider.
18.02.2003 Изменение в сроках лицензии
23.01.2003 Версия 2.0.1.735. Исправление ошибок, оптимизация, HTML help
10.12.2002 IBProvider второго поколения
21.11.2002 Версия 1.7.11.584 и 1.8.0.584 beta
06.11.2002 Версия 1.7.10.542 и 1.8.0.542 beta
20.10.2002 Версия 1.7.9.481 и 1.8.0.481 beta
12.08.2002 Версия 1.7.6.350 и 1.8.0.350 beta
30.07.2002 Версия 1.7.5.311 - Исправление ошибок
10.07.2002 Версия 1.7.4.289
20.06.2002 Версия 1.7.3.269
30.05.2002 Версия 1.7.2.255
08.05.2002 Версия 1.7.1
22.04.2002 Версия 1.7.0.227. Поддержка UNICODE. Новые цены.
29.03.2002 Версия 1.6.3.213
28.02.2002 Версия 1.6.2.201
08.02.2002 Версия 1.6.2.199
19.01.2002 Версия 1.6.1.185
24.12.2001 Free Версия 1.5.2
13.12.2001 Версия 1.6
14.11.2001 1.5.1 - Смена компилятора. оптимизация. IColumnsRowset и другое ...
30.08.2001 IN-OUT параметры. массивы. ....
16.07.2001 Ошибка с проверкой подключения в Data Links
21.05.2001 Поддержка хранимых процедур
16.05.2001 Примеры на Delphi от Андрея Семака
14.05.2001 Последний штрих для RowSet
30.04.2001 Выпуск коммерческой версии
20.04.2001 Поддержка DTC и Пула ресурсов
04.04.2001 Поддержка строк. содержащих нулевые символы
16.03.2001 Реализация IOpenRowset::OpenRowset
15.03.2001 Поддержка DECIMAL и NUMERIC
12.03.2001 Исправление ошибок
01.03.2001 Устранены ошибки: специфические и не очень
03.01.2001 Реализация автоматического старта и подтверждения транзакции.
01.12.2000 Тотальная реконструкция IBProvider'а и его клиентской библиотеки.
15.09.2000 Создание версии для IB6. которую Вы увидите только 1 декабря 2000г.

Интересные статьи по Firebird, Interbase



Назад Вперед Сборка сайта № 3.0.0.1660