[Moscow.pm] Глюки работы с MSSQL2005 + DBD

Павел Купцов pavel на kuptsov.info
Пн Дек 21 01:47:40 PST 2009


Привет всем!
Бьюсь уже два дня над неожиданно всплывшей проблемой в одном из старых своих
скриптов.
Скрипт получает от пользователя номер вида: 911011, и затем:
1. Ищет этот номер в таблице
2. Вставляет в другую таблицу этот номер и еще кое-какие данные.
Все это работает на DBI + DBD::ODBC + MSSQL2005 + ActivePerl 5.10
На некоторых данных обнаружил что DBD выдает ошибку:

[Mon Dec 21 12:19:10 2009] inv.pl: DBD::ODBC::st execute failed:
[Microsoft][ODBC SQL Server Driver]Недопустимое значение точности
(SQL-HY104) at WebDB.pm line 122, <CFG> line 10.

В первом случае решением проблемы оказалось замена конструкции:
$sth->prepare('здесь код с знакоместами ? ? ?');
$sth->execute($var1,$var2,...);
на код без знакомест, т.е.:
$sth->prepare('здесь код $var1 $var2');
$sth->execute();

А во втором случае имеем дело с SP, И такая замена не помогает...
Сделал trace - (в аттаче)...

Что за ошибка - помогите идентифицировать?
Все типы входных параметров совпадают с типами БД, то есть везде вообще
только цифры, которые идут в int поля.
Удивляет еще и то что случается такое раз от разу на SQL2000, а на 2005 на
данный момент валится каждый раз.
Задача запустить все это именно на 2005.
Спасибо.


----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: trace.log
Type: application/octet-stream
Size: 3003 bytes
Desc: отсутствует
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20091221/3e008f40/attachment.obj>


Подробная информация о списке рассылки Moscow-pm