Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 чёрт-те что Firebird 4.0.1.2668  [new]
Gorynich
Member

Откуда:
Сообщений: 123
"Шахматный мир в беспокойстве."...

Есть база на FB 2.5. Сделал бекап. Восстановил на FB 4.0. (Целостность базы после рестора проверял)
Выполняю запрос:
select
  "Items"."BranID",
  "Items"."ItemID",
  "Items"."ItemName",
  "Items"."ItemPos",
  "Items"."UnitsInStock"
from
    "Items"
where
   "Items"."BranID" = 14500
order by
  "Items"."ItemPos"
FETCH FIRST 10 ROWS ONLY

в результате, то что и должно быть -
+

BranID ItemID ItemPos UnitsInStock ItemName
14500 2002497000 2293 0 Тоуз ін Хевен Хім т.в. 50 мл. чол.
14500 2002498000 2294 0 Тоуз ін Хевен Хім т.в. 100 мл. чол.
14500 2002499000 2295 0 Тоуз ін Хевен Хьо т.в. 50 мл. жін.
14500 2002500000 2296 0 Тоуз ін Хевен Хьо т.в. 100 мл. жін.+100 мл. лосьон
14500 2002501000 2297 0 Тоуз ін Хевен Хьо т.в. 30 мл. жін.
14500 2002502000 2298 0 Тоуз ін Хевен Хьо т.в. 100 мл. жін.
14500 2002503000 2299 0 Тоуз Н2О т.в. 100 мл. жін.
14500 2002504000 2300 0 Тоуз Тач т.в. 100 мл. жін.
14500 2002508000 2301 0 Тоуз т.в. 50 мл. жін.
14500 2002509000 2302 0 Тоуз т.в. 30 мл. жін.


делаю соединение с другой таблицей по внешнему ключу "Items"."BranID" (Branches <- 1:M -< Items)

select
  "Items"."BranID",
  "Items"."ItemID",
  "Items"."ItemPos",
  "Items"."UnitsInStock",
  "Items"."ItemName"
from
    "Items"
  inner join "Branches" on ("Branches"."BranID" = "Items"."BranID")
where
   "Items"."BranID" = 14500
order by
  "Items"."ItemPos"
FETCH FIRST 10 ROWS ONLY


в результате, не пойми что -

+

BranID ItemID ItemPos UnitsInStock ItemName
0 2002497000 2293 -31275
0 2002498000 2294 -49183
0 2002499000 2295 -31275
0 2002500000 2296 -74900
0 2002501000 2297 -21156
0 2002502000 2298 -52799
0 2002503000 2299 -35584
0 2002504000 2300 -38917
0 2002508000 2301 -29698
0 2002509000 2302 -21461


UnitsInStock - вычислимое поле по таблице Items.
ItemName - вообще забито пустотой, в других запросах в выводе этгом поля появлялся мусор.

но если из запроса убрать
order by  "Items"."ItemPos"

или
FETCH FIRST 10 ROWS ONLY


данные снова выводятся нормально
+

BranID ItemID ItemPos UnitsInStock ItemName
14500 2002502000 2298 0 Тоуз ін Хевен Хьо т.в. 100 мл. жін.
14500 2002499000 2295 0 Тоуз ін Хевен Хьо т.в. 50 мл. жін.
14500 2002500000 2296 0 Тоуз ін Хевен Хьо т.в. 100 мл. жін.+100 мл. лосьон
14500 2002501000 2297 0 Тоуз ін Хевен Хьо т.в. 30 мл. жін.
14500 2002503000 2299 0 Тоуз Н2О т.в. 100 мл. жін.
14500 2002504000 2300 0 Тоуз Тач т.в. 100 мл. жін.
14500 2002505000 2322 0 Т Тоуз ін Хевен Хьо т.в. 100 мл. жін.
14500 2002506000 2319 0 Т Тоуз Н2О т.в. 100 мл. жін.
14500 2002507000 2317 0 Т Тоуз Тач т.в. 100 мл. жін.
14500 2002508000 2301 0 Тоуз т.в. 50 мл. жін.


причем в другом, более громоздском запросе - правильность результатов зависели даже от того отображается какое-то поле (без закономерности) в результат или нет.

FIX:Если же в таблице Items сделать обновление, типа set ItemName = ItemName - запрос выводит данные правильно.

В ресторах FB25, FB3 - ткой проблемы нет. В FB4, FB5 - есть. В ISQL - результаты, соответственно, такие же.

Версии FB:
2.5.9.27154
3.0.8.33540
4.0.1.2668
5.0.0.313
24 ноя 21, 17:43    [22400325]     Ответить | Цитировать Сообщить модератору
 Re: чёрт-те что Firebird 4.0.1.2668  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7004
А бекап выложить куда-либо (или переправить в личку) можешь?
24 ноя 21, 19:39    [22400386]     Ответить | Цитировать Сообщить модератору
 Re: чёрт-те что Firebird 4.0.1.2668  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7004
Gorynich
UnitsInStock - вычислимое поле по таблице Items

в нем подзапрос, что-ли?
24 ноя 21, 19:41    [22400387]     Ответить | Цитировать Сообщить модератору
 Re: чёрт-те что Firebird 4.0.1.2668  [new]
Gorynich
Member

Откуда:
Сообщений: 123
dimitr
Gorynich
UnitsInStock - вычислимое поле по таблице Items

в нем подзапрос, что-ли?

нет - арифметическоє выражение по столбцам Items
24 ноя 21, 21:24    [22400416]     Ответить | Цитировать Сообщить модератору
 Re: чёрт-те что Firebird 4.0.1.2668  [new]
Gorynich
Member

Откуда:
Сообщений: 123
dimitr
А бекап выложить куда-либо (или переправить в личку) можешь?


Да, сброшу, естественно.
24 ноя 21, 21:26    [22400417]     Ответить | Цитировать Сообщить модератору
 Re: чёрт-те что Firebird 4.0.1.2668  [new]
Gorynich
Member

Откуда:
Сообщений: 123
dimitr
А бекап выложить куда-либо (или переправить в личку) можешь?


Бекап базы намылил в личку.
Пока делал "обрез", заметил еще один эффект - удаление некоторых полей из Items меняет "данные" в результатах запроса.
Такое впечатление, что читаются данные по неправильному смещению.

Сообщение было отредактировано: 24 ноя 21, 22:41
24 ноя 21, 22:41    [22400438]     Ответить | Цитировать Сообщить модератору
 Re: чёрт-те что Firebird 4.0.1.2668  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7004
исправлено, спасибо
25 ноя 21, 10:45    [22400551]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить