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

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

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

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


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


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

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

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

Например:

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

cn.Provider = "LCPI.IBProvider.3"
cn.Properties("Location") ="localhost:d:\database\employee.fdb"
cn.Properties("User ID")  ="SYSDBA"
cn.Properties("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.0000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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