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

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

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

delover

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

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 15:00 04-04-2013
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Дефолные значения не вставляются в случае, если клиент явно пишет в поле null. Тоесть  если писать insert into tablename(f1, f2) values (1, null) то дефолт на поле f2 не сработает. Для случая insert into tablename(f1) values (1) в поле f2 будет проставлено дефолтное значение.
 
P.S. В доке это описано.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 16:48 04-04-2013
romano501



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Точно, про явный NULL забыл совсем. Просто в моих базах я не использую NULL вообще, за редким исключением.
Вот все и сходится, видимо у тебя где-то в коде подставляется NULL, пересмотри все места в программе, где ты вносишь запись в эту таблицу

Всего записей: 137 | Зарегистр. 24-03-2007 | Отправлено: 19:03 04-04-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
Да спасибо я это помню отлично, но я первый раз в жизни наблюдаю в колонке которая обязана быть не null значение null. В обычных условиях ФБ меня просто пошлёт нафиг со вставкой такой строки. Ну и мой собственный клиентдатасет никогда не даст этого сделать - он вызовет экзепшен в глубине стека у которого при выходе совершенно нет заглушек экзепшена. Тоесть в условиях когда не нарушена память и програма сможет опознать not null будет вылет с прелестями. Очевидно ФБ посложнее агрегат.
 
Добавлено:
Сомневаюсь я в нарушениях памяти у ФБ.
 
Добавлено:
да и во первых, давненько от когото уже слышал подобное всвязи с доменом. Во вторых буду себя считать счастливчиком что видел это.

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

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

Цитата:
Да спасибо я это помню отлично, но я первый раз в жизни наблюдаю в колонке которая обязана быть не null значение null. В обычных условиях ФБ меня просто пошлёт нафиг со вставкой такой строки.

Значит, условия были необычными  
 
И, да, согласен, было что-то с нуллами и доменами. Если найду/вспомню - отпишусь.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 10:14 05-04-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hello Ledi, Miledi, Gay and Man
Помогите плиз - не знаю как обрабатывать. У меня две транзакции меняют данные, последняя получает deadlock. И никакой уверенности что надо ждать и пробовать закоммитить дальше. У кого есть опыт.
 
Добавлено:
Просто когда после комичу - всё хоккей. Это очень интересное свойство.
 
Добавлено:
А дирики не читают?

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 19:44 23-04-2013
miwa

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

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 00:29 24-04-2013
victor r

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

Цитата:
 
Добавлено:
Просто когда после комичу - всё хоккей. Это очень интересное свойство.
 

Вот как я делаю: если это два крупных расчета во времени около 1-5 минут и один из бухгалтеров ловит деадлок (что бывает крайне редко), то он просто выходит и через время запускает заново-всё гууд. Обычно этим занимаются не более двух начальников, и то из разных подразделений, так что пересечься с данными друг друга они не должны теоретически.
А если два субъекта редактируют один и тот же лицевой, транзакция запускается только после кнопки Ок (тут деадлок крайне редкая ситуация при менее 50 юзерах) и если все таки ошибка, то он видя её заходит и сам перепроверяет что не сохранилось, потому что юзер заинтересован в правильности занесенной информации.
Подитоживая я бы сказал: "не парься". Главное что бы в таких случаях ПО предупреждало о возможных не сохраненных данных и предлагало дальнейшие действия. Удачи.
 

Всего записей: 17 | Зарегистр. 23-11-2009 | Отправлено: 15:11 24-04-2013 | Исправлено: victor r, 15:12 24-04-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
это скорее организационная проблема
Да это одновременная работа с репликацией центрального офиса.
 
victor r
транзакция запускается только после кнопки Ок
Спасибо действительно великолепная мысль, я ещё не экспериментировал.) Удачи.
 
miwa

Цитата:
ALTER SEQUENCE нельзя использовать внутри процедуры; это DDL а не DML. Да и временная процедура... Для этого же есть execute block.

Спасибо делаю закладку. Я вечно про это забываю - помогло.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:00 25-04-2013
mrUlugbek



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем
Как удалить Interbase из системы полностью ..
Конфликтует с программой который сделано для Firebird 2.1
 
 
Добавлено:
При подключение  
дает ошибку -923 isc_attach_database: connection rejected by remote interface
в сервисе отключил сервер Interbase..
Работает только Firebird//

Всего записей: 879 | Зарегистр. 04-04-2011 | Отправлено: 08:31 06-05-2013
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mrUlugbek
В логах FB есть что-нибудь?

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 09:01 06-05-2013
mrUlugbek



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exteris
Там просто написано  
starting: "C:\Program Files\Firebird\Firebird_2_5\bin\fbserver.exe"
Видимо проблема c Interbasе  
я удалил оба сервера.. реестр почистил ccleanerom  
установил занова.. Firebird последный 2.5.2
теперь ошибка -904 no activ connection//
 
 

Всего записей: 879 | Зарегистр. 04-04-2011 | Отправлено: 09:55 06-05-2013
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
С такой ошибкой не сталкивался.
Если программа сделана под версию 2.1, то возможно ей 2.1 и нужно, да еще и не на стандартном порту. Firebird ставится инсталлятором программы или отдельно? IBEXpert-ом получается к базе присоединиться?
И кто разработчик программы, может стоит к нему обратиться?

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 12:50 06-05-2013 | Исправлено: exteris, 12:51 06-05-2013
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mrUlugbek Удали Firebird. Поищи в системе файлик gds32.dll и удали его.  Далее находишь файлик c:\Program Files\Firebird\Firebird_2_1\aliases.conf  - это алиасы баз, там есть пример в файле, прописываешь туда свою базу, перезапускаешь Firebird. Потом смотри в своей программе - там должна быть настройка подключения - прописываешь туда свой алиас. Должно работать.
Ошибка та что он пишет - это значит что нет БД к которой он пытается подключится. И если у тебя прога использует Firebird 2.1 не нужно ставить 2,5 . Если ничего не получится ставь тимвьювер и отпиши адрес в личку - разрулим

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 13:41 06-05-2013 | Исправлено: Andryshok, 13:49 06-05-2013
mrUlugbek



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Получился  
спасибо всем
удалил все полностью  
System32/
SystemWOW / удалил GDS32 FBclient IBxml IBclient64  
реестр искал Interbase тоже удалил  
рестартанул
поставил занова  
FIrebird 2.5.2  
работает .. ура ура

Всего записей: 879 | Зарегистр. 04-04-2011 | Отправлено: 14:34 06-05-2013
techn58



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Где найти доходчивое и понятное изложение настройки работы firebird 1.5 и firebird 2.0 одновременно

Всего записей: 89 | Зарегистр. 06-03-2010 | Отправлено: 15:09 07-05-2013
miwa

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

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 16:43 07-05-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А правдо ли пре переходе с 1.5 на 2.5 будет медленнее если сделать простой бэкапрестор с указанием кодировок. Чем если бы база была создана заново далее +Domain +Table +Data +Generator +Uniques & FreeIndex +Trigger +Procedure. Может забыл что ещё надо типа гарандсов. Говорят базёшки быстрее. Правда ли?

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 19:54 15-05-2013
miwa

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

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 21:21 15-05-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
За Ваши слова поручусь. Спасибо.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:42 16-05-2013
Открыть новую тему     Написать ответ в эту тему

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