Форум: "Базы";
Текущий архив: 2010.09.05;
Скачать: [xml.tar.bz2];
ВнизРабота функцией UDF при вставки записи в Таблицу Найти похожие ветки
← →
ganda (2009-06-04 14:57) [0]есть некая функция назовём её FUN1 и есть поле F1.
F1- символьное поле размер 10 символов.
скрипт создания FUN1
DECLARE EXTERNAL FUNCTION FUN2
CSTRING(255)
RETURNS CSTRING(255)
ENTRY_POINT "CodeText" MODULE_NAME "GNUDF";
теперь сам текст вставки записи
insert into table (F1) values (Fun1(:F1));
при выполнение выдаёт ошибку:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
← →
PEAKTOP © (2009-06-04 15:33) [1]1) База данных с каким набором символовов создана ?
http://firebirdsql.su/doku.php?id=create_database
2) Домен таблицы table.F1 с каким CHARACTER SET создан ?
http://firebirdsql.su/doku.php?id=create_domain
3) А подключение с каким LC_CTYPE идет ?
DECLARE EXTERNAL FUNCTION FUN2
CSTRING(255) CHARACTER SET WIN1251
RETURNS CSTRING(255)
ENTRY_POINT "CodeText" MODULE_NAME "GNUDF";
4) И последнее, самой гнустное. Если UDF скомпилена в Delphi2009, то функция ожидает юникодную строку, а Firebird отдает ей Ansi.
Или наоборот.
← →
ganda (2009-06-04 15:41) [2]База имеет набор символов NONE и поле тоже имеет Character set None (1, 2)
UDF скомпилена на D7 (4)
и 3 вариант не прокатывает. А если его сунуть в тригер прокатить или нет?!
← →
PEAKTOP © (2009-06-04 16:50) [3]Попробуй
DECLARE EXTERNAL FUNCTION FUN2
CSTRING(255) CHARACTER SET NONE
RETURNS CSTRING(255)
ENTRY_POINT "CodeText" MODULE_NAME "GNUDF";
>>А если его сунуть в тригер прокатить или нет?!
А че сам не попробовал ? :)
← →
Сергей М. © (2009-06-04 21:59) [4]Тут еще и мемликами пахнет ..
FREE_IT осознанно опущен ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2010.09.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c