English version Russian version

Три причины, по которым Вам стоит перейти на новый IBProvider

Очень часто в своих программах мы забываем или ленимся контролировать данные, которые передаем в базу данных. Мы верим, что умный сервер Firebird или Interbase сам решит возможные проблемы. Хотя конечно, это не его задача.

В особо запущенных случаях, данные, полученные после ввода пользователя, сразу приводятся к нужному типу через CAST, без какой-либо проверки.

В результате: пользователь вводит «охинею», драйвер СУБД передает «охинею» на сервер, а сервер возвращает ошибку, которую уже видит пользователь. Пользователи начинают Вас недолюбливать: «Его программы глючат, у него кривые руки», а вы ненавидите юзеров, которые не могут нормально ввести текст.


Угадайте Что подумает пользователь о Вас,
когда увидит такую ошибку на экране?


Что Сделать Чтобы Мои Программы Не «глючили»?

Используйте компоненты доступа к Firebird и Interbase, в которых реализован контроль входящих данных и их «умное преобразование», в тот формат, который поддерживает сервер. Это значительно сократит ваш объем работы по контролю вводимых данных и их приведению к типам БД.

К примеру, новая версия IBProvider самостоятельно производит «умное преобразование» текста в DBTYPE_R8 (DOUBLE). В частности:

  • Осуществляет контроль переполнения.
  • Гибкий алгоритм масштабирования, предотвращает проблемы, подобные CORE-2857 .

Например:


dim cn
set cn = CreateObject("ADODB.Connection")

cn.ConnectionString = "Provider=LCPI.IBProvider.3;Location=localhost:employee.fdb; User ID=SYSDBA;Password=masterkey"
cn.Properties("auto_commit_ddl") = 1 'run DDL in separate trans
cn.Open
cn.BeginTrans
cn.Execute("RECREATE TABLE TBL_R8 (R8 DOUBLE PRECISION)")

dim cmd
set cmd=createobject("ADODB.Command")
cmd.ActiveConnection=cn
cmd.CommandText="insert into TBL_R8 VALUES (?)"
cmd.Parameters.Append cmd.CreateParameter(,8) 'adBSTR

wscript.echo "------------------------------------------"
cmd(0).value="1."&string(1024,"0")
wscript.echo "insert value to TBL_R8: "&cstr(cmd(0).value)
cmd.execute

' or very huge double 
'cmd(0).value="1"&string(1000*1000,"0")&"E-1000000"
'wscript.echo "------------------------------------------"
'wscript.echo "value2: "&cstr(cmd(0).value)
'cmd.execute

cn.CommitTrans

call cn.close()

После выполнения скрипта на экране будет отображено значение входящего параметра, которое будет преобразовано в DOUBLE PRECISION и добавлено в БД:


------------------------------------------
insert value to TBL_R8: 1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Если вы работаете через новый IBProvider, запросы, подобные этому, НЕ выдадут ошибку: arithmetic exception, numeric overflow, or string truncation.



За 10 лет работы над проектом IBProvider мы НЕОДНОКРАТНО
сталкивались с подобными ПРОБЛЕМАМИ

Недавний случай с преобразованием текста в тип DOUBLE далеко не единственный. За 10 лет разработки IBProvider мы НЕОДНОКРАТНО сталкивались с подобными ПРОБЛЕМАМИ:

  • Проблемами с точностью при конвертировании DOUBLE;
  • Проблемами в работе с NUMERIC типами на .
  • Неподдерживаемые типы (GUID, BOOL, MS SQL TIME и т.д.)
  • И еще множество других проблем, благодаря которым появился «умный конвертор типов».

Как Решаются Проблемы с Преобразованием Типов?

В IBProvider реализован собственный «умный конвертор типов», который:

  • Совместим со всеми версиями Windows, т.к. использует собственные функции преобразования типов, минуя WinAPI.
  • В большинстве случаев не требует явного приведения типов к типу БД, т.к. поддерживает преобразование на лету простых типов, типа VARIANT, массивов и бинарных данных.
  • Эмулирует отсутствующие в Firebird типы BOOL и GUID.
  • Вам больше не нужно писать свои перекодировщики текста. Конвертор типов обладает уникальным в своем роде механизмом, поддерживающим текстовые преобразования 49 кодовых страниц на лету, включая UNICODE, UTF-8, OCTETS, NONE.

Как убедиться что Ваш компонент доступа работает ПРАВИЛЬНО?

Не достаточно реализовать отличную возможность в коде программы, необходимо убедиться в том, что написанное, будет работать БЕЗ ОШИБОК в самых непредсказуемых ситуациях. Особенно это актуально для сложных программ, таких как компоненты доступа к базам данных.

Единственный способ проверить правильность работы – это использовать автоматические системы тестирования. В противном случае вам гарантированы:

  • Утечки памяти;
  • Критические завершения работы приложений;
  • Непостоянные сообщения об ошибках, которые невозможно отладить;
На сегодняшний день каждый(!) новый релиз IBProvider прогоняется примерно через
полмиллиона автоматических тестов!

За 2009 год Команда IBProvider выпустила 12 новых версий и уже 3 версии в 2010 году

Во всех релизах О-П-Е-Р-А-Т-И-В-Н-О (оперативно) внедрялся новый функционал, и решались известные проблемы. Мы не берем деньги, за то, что новые версии не выходят!

Приобретая IBProvider прямо сейчас, вы гарантировано получаете бесплатные обновления в течение 1 года.

Хотите убедиться в том, что вы получаете не сырые сборки, а полноценные релизы?

Посмотрите новости хотя бы за последний год.

К примеру, в новой версии IBProvider помимо «умного преобразования» текста в DOUBLE:

  • Оптимизированы алгоритмы чтения/записи свойств.
  • Свойство инициализации «Multiple Parameter Sets» теперь по умолчанию TRUE. (v3)
  • Свойство инициализации «rowset_vm_using» теперь по умолчанию -1. Это отключает менеджер памяти на базе VirtualAlloc+SEH.
  • Исправлена ошибка: возможность изменения RO-свойств при установке VT_EMPTY значений.
  • Свойство инициализации «Window Handle» больше не сохраняется в файле настроек подключения.
  • Провайдер использует кодовую страницу UTF8 при сохранении параметров инициализации в файл (интерфейс IPersistFile)
  • Улучшена обработка ошибок в методах интерфейса IPersistFile.
  • Многочисленные внутренние изменения

Закажите IBProvider прямо сейчас и
ПОЛУЧИТЕ 1 год БЕСПЛАТНЫХ обновлений в подарок

Первые 8, 5 4 покупателя получат ЕЩЕ один подарок:
1 дополнительное обновление IBProvider после окончания годовой подписки.

Получить IBProvider прямо сейчас >>


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

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

Все новости IBProvider:
15.03.2010 Три причины, по которым Вам стоит перейти на новый IBProvider
14.02.2010 Успейте получить бесплатную лицензию на IBProvider Professional v.3.0.00.8628
18.01.2010 Сегодня IBProvider исполнилось 10 лет. Представляем новую юбилейную версию IBProvider с улучшенной поддержкой DDL и обновляемых множеств.
15.12.2009 Публикация текстов хранимых процедур в схеме метаданных PROCEDURES
16.11.2009 Производительность новой версии IBProvider возросла в 4,5 раза
07.10.2009 IBProvider 3.0.0.7798. Улучшена работа с большими объемами данных.
13.08.2009 В новом IBProvider 3.0.0.7575 реализован пул запросов и улучшена работа с Delphi.
10.07.2009 IBProvider теперь поддерживает несколько способов передачи NULL.
04.07.2009 В новой версии IBProvider реализована эмуляция типов BOOLEAN и GUID при работе с Firebird и Interbase.
11.06.2009 В новой версии IBProvider добавлена возможность отмены выполнения команд, а так же поддерживается новый тип запросов Firebird 2.5 с SQL_NULL.
05.05.2009 Новые версии IBProvider - появилась возможность работать с типом TIME через MS SQL Linked Server, улучшена информативность сообщений об ошибках при работе с временными файлами.
17.04.2009 16 версий Firebird и Interbase теперь доступны для записи через MS SQL Linked Server на 64-битных платформах.
05.03.2009 В IBProvider v3 Release Candidate 4 улучшена поддержка Visual Studio 2008 DDEX, оптимизирована работа с именованными параметрами. Доступ к метаданными возможен в пользовательской кодировке.
16.02.2009 С новым IBProvider возможна полноценная работа в Unicode-приложениях, улучшена работа с кодировкой NONE, поддерживаются маркеры кодовых страниц.
12.01.2009 В IBProvider v3 разработан принципиально новый механизм работы с кодовыми страницами текстовых данных Firebird и Interbase.
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 , Firebird Delphi , Interbase Delphi , Скачать Firebird , Firebird ODBC driver , Interbase ODBC , Integration Services (SSIS) , Firebird, Interbase и SQL Linked Server (MS SQL) , Firebird .Net Provider , Visual Studio .Net 2008, (c#) , Firebird 2.1 , Firebird 2.0 , Firebird 2 , Firebird 64 bit , Interbase 64 bit , Interbase oledb provider, Interbase driver, Firebird ole db provider, Firebird driver



Назад Вперед