|
Утилита для слияния структур баз Firebird
|
|||
---|---|---|---|
#18+
Подскажите сабж. Может есть возможность делать это прямо в Ibexpert? Сейчас пользую database comparer, но с недавних пор за ней замечены глюканы. У меня на рабочем компе работает отлично, но когда надо изменить изменит структуру баз по удаленке на торговых точках - начинают валится разнообразные ошибки с разнообразных местах - в основном в процедурах. Чаще всего отказывает создавать эту процедуру: create or alter procedure SAVE_NELIKVID2 as declare variable NELIK smallint; declare variable IDSERII integer; declare variable IDT integer; declare variable RASHOD timestamp; declare variable IDP integer; declare variable DATA date; declare variable KOLVO numeric(15,3); declare variable PRIHOD timestamp; declare variable ID integer; declare variable CENA numeric(15,2); declare variable FLAG smallint; begin for select flag, data from flag_nelikvid into :flag, :data do begin end if ((:flag is null) or (:data < 'now')) then begin delete from flag_nelikvid; insert into flag_nelikvid values (1, 'now'); for select tovar, proizv, serii, cena, prihod, kolvo from nelikv3 into :idt, :idp, :idserii, :cena, :prihod, :kolvo do begin update or insert into tnelikvid (id, tovar, proizv, serii, cena, prihod, kolvo) values (Gen_id(gen_nelikvid_id2, 1), :idt, :idp, :idserii, :cena, :prihod, :kolvo) matching (tovar, proizv, serii, cena, prihod); end delete from vnelikvid; for select tovar, proizv from nelikv into :idt, :idp do begin insert into vnelikvid (id, tovar, proizv) values (Gen_id(gen_nelikvid_id, 1), :idt, :idp); end end end Выдает data type not supported for arithmetic...бла-бла-бла Было подозрение на версию Firebird, но обновление его ничего не дало. Возможно дело в том что ось на клиентах - XP Хотя у некоторых слияние проходит без сучка без задоринки Так что пока приходится перекачивать их базы к себе, у себя сливать структуру и закидывать им обратно ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2017, 20:08 |
|
Утилита для слияния структур баз Firebird
|
|||
---|---|---|---|
#18+
Только запостил как дошло, что раз переменная объявлена как smallint, то видимо Firebird в старых версиях не может проверить условие равна ли она null. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2017, 20:26 |
|
Утилита для слияния структур баз Firebird
|
|||
---|---|---|---|
#18+
арт2010smallint, то видимо Firebird в старых версиях не может проверить условие равна ли она null сказки какие-то ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2017, 20:57 |
|
Утилита для слияния структур баз Firebird
|
|||
---|---|---|---|
#18+
арт2010Только запостил как дошло, что раз переменная объявлена как smallint, то видимо Firebird в старых версиях не может проверить условие равна ли она null. Утебя что, разные версии firebird в разных местах используются? И ты для разных версий один и тот же скрипт из компарера применяешь? А при апдейте нет ли у тебя подключенных юзеров? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2017, 23:48 |
|
Утилита для слияния структур баз Firebird
|
|||
---|---|---|---|
#18+
Да, дело оказалось не в null. Если сливаешь без процедуры, указываешь конкретное значение и пытаешься создать ее потом отдельно, та же самая ошибка. чччД, версии везде 2.5, могут отличать только цифрами после 2.5. Database Comparer установлены на всех клиентах, скриптов там никаких я не применяю, просто выбираю Master и Target Database и нажимаю Compare & Update ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 09:11 |
|
|
start [/forum/topic.php?fid=40&fpage=47&tid=1561655]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 289ms |
total: | 488ms |
0 / 0 |