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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

brookson



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

Всего записей: 139 | Зарегистр. 06-09-2007 | Отправлено: 16:27 13-02-2012
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какая разница сколько пользователей, вот этого я не могу никак понять?
 
Добавлено:
brookson, здесь вопросы по firebird, по SQL. Вы же хотите чтобы Вам дали пример реализации приложения.
Вы ошиблись разделом.

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:32 13-02-2012
brookson



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

Всего записей: 139 | Зарегистр. 06-09-2007 | Отправлено: 16:34 13-02-2012
eddoc



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

Цитата:
В коде я заранее не могу угадать, сколько будет пользователей

Если ваши пользователи не будут работать на одной клаве в четыре руки, делайте кол-во пишущих и читающих транзакций столько, сколько того требует логика программы. И не беспокойтесь о кол-ве пользователей.
 

Цитата:
Сделал разные на чтение и изменение. Теперь данных вообще не видно

Значит вам обязательно надо читать основы работы с данными в IB/FB. Почитайте мануалы (их полно на русском), попробуйте демки (особенно в ФИБах). Все у вас получится...

Всего записей: 328 | Зарегистр. 25-11-2007 | Отправлено: 23:05 14-02-2012 | Исправлено: eddoc, 23:06 14-02-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто может помочь? Переход c 1.5 на 2.5 я использую перекомпилирование всех хранимок. Но попалась проблемма - раньше не всегда писали SUSPEND в хранимках. Одну я выловил только потому что программа перестала работать, а как выловить все???? Компиль процедур отличается а средств ловит сиё я не знаю, хелп ми.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 19:36 22-02-2012 | Исправлено: delover, 19:37 22-02-2012
noisy

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

Всего записей: 991 | Зарегистр. 30-05-2002 | Отправлено: 20:48 22-02-2012
salexn1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
и в 2.5 не обязательно нужно везде тыкать SUSPEND...

Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 00:09 23-02-2012
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover, попробуй SQL Dynamite
http://forum.vingrad.ru/forum/topic-339061/kw-sql-azure-oracle.html
 

Цитата:
Например нам нужно знать где используется поле currency. Моя программа найдёт это поле везде - и в индексах и в ХП и в таблицах (поиск можно настраивать).  


----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:45 23-02-2012
druff

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
в IBExpert ты можешь парой кликов перекомпилировать все ХП и триггеры. Сразу увидишь проблемные

Всего записей: 402 | Зарегистр. 14-11-2006 | Отправлено: 12:56 23-02-2012
ant0ni02004

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
 
а также Search in metadata сделать
 
Добавлено:
в IbExpert-e

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 19:17 23-02-2012
druff

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
salexn1
я бы даже сказал иначе если есть выходные параметры, то suspend обязательно должен быть. Если их нет, то и suspend должен отсутствовать

Всего записей: 402 | Зарегистр. 14-11-2006 | Отправлено: 19:27 23-02-2012
druff

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi
никогда так не делал. достаточно gds32.dll положить в один каталог с клиентским приложением.

Всего записей: 402 | Зарегистр. 14-11-2006 | Отправлено: 06:38 05-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
Жаль пока не могу установить клиента у меня
FirebirdSql.Data.FirebirdClient, Version=2.6.0.0
А программке нужен более ранний, попробую дома сделать.
 
druff
При полном перекомпиливании IBExpert не ругается на эти процедуры. Ошибка вылетает только во время исполнения. В этом то и косяк. Выходные параметры есть единичные, а suspend отсутствует и до перекомпиливания хранимая процедура работала вполне нормально, а вот после перекомпиливания перестала выполняться. Я обычно накатываю базу на базу пустышку путём сравнения и вижу весь SQL. Поиск по нотепаду конечно работает, думаю написать свой RegExpr, так как простым пролистыванием это нудно и ненадёжно.
 
Добавлено:
ant0ni02004
Оо тоже спасибо, там вроде регулярка есть
 
Добавлено:
То есть мне нужно найти все процедуры в которых нет слова suspend и просто их просмотреть.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 10:03 05-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Функции я хранимые без suspended вычислил, вроде всё норм, хотя их 60 было.
 
Вопрос
Я методом тыка уже целый день стряпаю хранимку для выкручивания nds.
Где нибудь скобочку убираю и получаю сразу нумерик оверфлов integer.
Вот последняя капля, может объясните почему оверфлов?
 
CENA1=Round(:CENA1*100.0)/100.0;
Kol1=:kol1+cast(Round((:KOL_ALL*:CENA1*:NACEN_OPT_NDS)/100.0)+
   (:KOL_ALL*:CENA1) as numeric(18,6));
 
Все переменные numeric(18,6)  
KOL_ALL=3  
cena1=2,035676
nds=18
Всё валится сразу хотя числа маленькие. Понять бы что не так делаю...

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 16:56 30-03-2012
noisy

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

Код:
 
execute block as
declare variable KOL_ALL NUMERIC(18,6);
declare variable KOL1 NUMERIC(18,6);
declare variable cena1 NUMERIC(18,6);
declare variable nds NUMERIC(18,6);
declare variable NACEN_OPT_NDS NUMERIC(18,6);
begin
KOL_ALL=3.0;
cena1=2.035676;
nds=18.0;
kol1 = 0.0;
NACEN_OPT_NDS = 0.0;
CENA1=Round(CENA1*100.0)/100.0;
Kol1=kol1+Round((KOL_ALL*CENA1*NACEN_OPT_NDS)/100.0)+ (KOL_ALL*CENA1);
end
 

Всего записей: 991 | Зарегистр. 30-05-2002 | Отправлено: 19:35 30-03-2012
delover

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

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 06:37 31-03-2012
ant0ni02004

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
 
1. с какой ошибкой (точно номер и текст) слетает?
2. полный код ХП было бы хорошо увидеть

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 17:35 31-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ура я вычислил место где всегда слетает.

Код:
create or alter procedure NEW_PROCEDURE
returns (
    KOL2 numeric(18,6))
as
declare variable CENA1 numeric(18,6);
declare variable STO numeric(18,6);
declare variable NACEN_OPT_NDS numeric(18,6);
declare variable KOL_ALL numeric(18,6);
begin
  KOL_ALL = 2.0;    
  CENA1 = 2.036667;
  sto = 100.0;
  NACEN_OPT_NDS = 18.0;
  KOL2 = ((:KOL_ALL*Round(:CENA1*:sto)/:sto)/:sto)*:NACEN_OPT_NDS;
  suspend;
end^

Везде тип нумерик и числа в общем не большие.
 
Добавлено:
При чём если я убираю *:NACEN_OPT_NDS то ошибка исчезает, процедура не может умножить 0.040800 на 18.0. Чудеса какие-то.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 08:02 02-04-2012
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
delover
Переполнение количества знаков после запятой. У FB в 3-м диалекте точность при умножении numeric-чисел суммируется.

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 11:29 02-04-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exteris
Странно она суммируется. Вопервых при умножении количество точных чисел после запятой не будет увеличено. Во вторых только CENA1 имеет знаки после запятой у других чисел этих знаков нет. Ну и в третьих - способ борьбы с этим естественно необходим. У меня:

Код:
...
 KOL2 = ((:KOL_ALL*Round(:CENA1*:sto)/:sto)/:sto);
 KOL2 = KOL2*:NACEN_OPT_NDS;

В общем пока работает, но появилась неуверенность что будет всегда работать правильно. Я понимаю - это накладные расходы за numeric, при правильном понимании как это будет работать можно избежать многих других проблем, но я пока в этом ламер, извините... )
 
Добавлено:
Еще что заметил интересного что "sto=100.0" <> "100.000000". Точность расчётов при этом меняется.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 14:27 02-04-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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