Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
declare @num1 numeric(38,10)
declare @num2 numeric(38,10)
set @num1 = .0000006
set @num2 = 1.0
select cast( @num1 * @num2 as numeric(38,10))
 
Дает: .0000010000
Вместо: .0000006000  
 
(смотри Precision, Scale и Length) определяет следующие правила для арифметических операций c числами типа NUMERIC:
Операция     Точность результата     Масштаб результата *
e1 + e2     max(s1, s2) + max(p1-s1, p2-s2) + 1     max(s1, s2)
e1 - e2     max(s1, s2) + max(p1-s1, p2-s2) + 1     max(s1, s2)
e1 * e2     p1 + p2 + 1                                     s1 + s2
e1 / e2     p1 - s1 + s2 + max(6, s1 + p2 + 1)       max(6, s1 + p2 + 1)
e1 { UNION | EXCEPT | INTERSECT } e2     max(s1, s2) + max(p1-s1, p2-s2)     max(s1, s2)
 
В нашем случае точность и масштаб умножения вычисляется так:
 
Точность = P1 + P2 + 1 = 38 + 38 + 1 = 77
Масштаб = S1 + S2 = 10 + 10 = 20
 
Соответственно, результатом должно быть число типа numeric(77, 20), что не допускается. Вот где нам понадобится сноска:
 
* Точность и масштаб результата имеет абсолютный максимум 38. Если точность результата превышает 38, соответствующий масштаб уменьшается, чтобы предотвратить усечение целой части результата.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 14:50 12-03-2014 | Исправлено: YuriyRR, 14:53 12-03-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR

Цитата:
превышает 38, соответствующий масштаб уменьшается

Во, здесь правильное слово "масштаб". В моём случае операция Int не имеет масштаба, по этому не очень удачный выбор.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 17:58 12-03-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Форумчане поделитесь плиз кто нибудь последней скомпилированной версией rFuncs  для Firebird 2.5 и установочным скриптом для нее

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 15:35 31-03-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
 
пару страниц назад я писал

Цитата:
RFUNC тем более не советую, старая эта либа уже
современная замена RFUNC - AUDFL https://www.assembla.com/spaces/audfl_rfunc/documents


Всего записей: 986 | Зарегистр. 30-05-2002 | Отправлено: 16:29 31-03-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy
Спасибо, но что то при установке оной либы в базу (выполнение скрипта из файла function3.sql) вылазит ошибка

Код:
 
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Data type unknown.
Implementation limit exceeded.
COLUMN DSQL internal.
 


Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 16:41 31-03-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
 
 в какой строке ошибка?

Всего записей: 986 | Зарегистр. 30-05-2002 | Отправлено: 17:06 31-03-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy 99

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 17:43 31-03-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно определится какие функции нужны и декларировать только их.
 
Вы используете LONGSTRPAD ?

Всего записей: 986 | Зарегистр. 30-05-2002 | Отправлено: 18:02 31-03-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy  Может у вас найдется свой проверенный сабж, буду признателен

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 20:37 31-03-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
 
нет, я не пользуюсь сторонними UDF, благо с версии 2.0 все нужные мне функции есть в Firebird
 
но когда мне нужно было использовать rFunc, я просто переименовывал библиотеку в rFunc.dll
есть еще набор UDF http://freeadhocudf.org/index_eng.html , с ними работал так же, переименовывал файл.

Всего записей: 986 | Зарегистр. 30-05-2002 | Отправлено: 21:38 31-03-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как вообще в плане устойчивости к сбоям FB 2.5 - собираюсь на него повесить базу гига на 3-4 и десяток пользователей... стабильность работы СУБД - критичный параметр...

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 20:08 10-04-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
В плане устойчивости - очень устойчив. Если не пытаться специально, повредить базу довольно сложно. В "диких условиях" - при внезапных пропаданиях напряжения в самый неподходящий момент без УПСа и т.п. базу повредить тоже практически невозможно.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 20:58 10-04-2014
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andryshok
Для диких условий предусмотрена опция ForsedWrites.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 00:12 11-04-2014
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А как вообще в плане устойчивости к сбоям FB 2.5

Подбивал как-то свою статистику за последние 20 лет, фатальный сбой был один раз, на IB 5.6,закончилось дисковое пространство, поднимали из резервной копии. Остальное все лечилось. Гораздо больше проблем при эксплуатации систем на FB доставляют кривые руки разработчиков клиентских приложений, которые приводят к "застреванию" OAT/OST.

Цитата:
собираюсь на него повесить базу гига на 3-4 и десяток пользователей...

Без проблем. На наших объектах базы (FB 2.5.2 CS) 40-150 GB и до 120 активных пользователей.  

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 09:25 11-04-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy Не совсем вас понял... а какой файл вы переименовывали? и зачем?

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 10:22 26-04-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
файл audfl.dll или FreeAdhocUDF.dll переименовываю в rFunc.DLL

Всего записей: 986 | Зарегистр. 30-05-2002 | Отправлено: 10:55 30-04-2014
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy Так а зачем переименовывать? Может есть скомпиленный кстати под винду и установочный рабочий скрипт? а то как то разработчики этих решений что то не особо заботятся о своих продуктах... в доке одно на деле другое...  ((

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 23:37 03-05-2014
Prot_XT

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
noisy
 
нет, я не пользуюсь сторонними UDF, благо с версии 2.0 все нужные мне функции есть в Firebird
 
но когда мне нужно было использовать rFunc, я просто переименовывал библиотеку в rFunc.dll
есть еще набор UDF http://freeadhocudf.org/index_eng.html , с ними работал так же, переименовывал файл.

 
И какие такие интересные фишки дает эта библиотека?

Всего записей: 163 | Зарегистр. 04-04-2003 | Отправлено: 01:11 04-05-2014
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prot_XT

Цитата:
И какие такие интересные фишки дает эта библиотека?
 

Вроде ссылка указана, там все написано. В чем вопрос?

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 14:47 04-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prot_XT
Ну, если вопросс о AdHoc, то там есть масса встроенных функций отсутствующих в базовой поставке ФБ. Они определенно могут быть полезными в случае, когда все возможная бизнес-логика приложения держится в базе данных.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 14:53 04-05-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru