Текущий архив: 2005.09.25;
Скачать: CL | DM;
Вниз
Или я чего-то не понимаю, или Firebird глючит Найти похожие ветки
← →
Андрей Жук © (2005-08-16 12:25) [0]Такой вот запрос
UPDATE APP_FINSUMMARY SET apr=6 545.00 where LINE_ID=157 and YEAR_ID=2005 and VER_ID=2 and PEOPLE_ID=0 and KONTR_ID=0
думаете, он обновит только записиwhere LINE_ID=157 and YEAR_ID=2005 and VER_ID=2 and PEOPLE_ID=0 and KONTR_ID=0
? Нифига. Он обновит все записи. Я понимаю, что 545 - тут лишнее, но мне кажется что подобная обработка запроса - абсурдна.
← →
Anatoly Podgoretsky © (2005-08-16 12:31) [1]Это плохо что он тебя не отругал за это SET apr=6 545.00
Как прикажешь понимать такое?
← →
Андрей Жук © (2005-08-16 12:33) [2]Тут моя ошибка, что число 6545 записалось как 6 545. Это я понимаю. Но почему запрос выполняется, да еще абсолютно неверно. Условие where вообще не проверяется. Лучше уж получать явную ошибку, а не такое.
← →
Anatoly Podgoretsky © (2005-08-16 12:47) [3]Это не число 6545, а два числа и я (интерпритатор выражения) в раздумьи, что же ты такое хотел мне сказать.
А может ты перекрыл обработку ошибок. Попробуй выполнить это вне твоей программы, может тебе что то говорят.
← →
Андрей Жук © (2005-08-16 12:52) [4]проверял и в IBExpert. То же самое.
← →
Sergey13 © (2005-08-16 12:53) [5]2Андрей Жук © (16.08.05 12:25)
>Он обновит все записи
А чем обновит то? 6 или 6545? Интересно просто.
← →
Anatoly Podgoretsky © (2005-08-16 13:21) [6]Если более менее это соответствующий стандартам сервер, то запишет 6, в противоположном случае, а ну его в топку.
← →
Sergey13 © (2005-08-16 13:31) [7]Попробовал у себя смоделировать такое в ИБЭксперте. Заругалось на "вторую часть числа". Говорит Token unknown. ФБ Эмб 1.5.1.4481
← →
Anatoly Podgoretsky © (2005-08-16 13:35) [8]Sergey13 © (16.08.05 13:31) [7]
Я вот тоже думаю, что он как то заблокировал ошибки, например настройками сервера, во многих серверах такое возможно.
← →
Андрей Жук © (2005-08-16 14:24) [9]Мистика какая-то...
ПробуюUPDATE APP_FINSUMMARY SET apr=6 545 where LINE_ID=157 and YEAR_ID=2005 and VER_ID=2 and PEOPLE_ID=0 and KONTR_ID=0;
Нормально
Пробуюupdate app_plateg a set a.plat_sum=3 44 where a.plat_id=105;
Token unknown
← →
Андрей Жук © (2005-08-16 14:33) [10]Попробуй создать базу такого вида
/******************************************************************************/
/**** Generated by IBExpert 2005.06.07 16.08.2005 13:29:50 ****/
/******************************************************************************/
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE "C:\Temp\Temp.fdb"
USER "SYSDBA" PASSWORD "masterkey"
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251;
/******************************************************************************/
/**** Domains ****/
/******************************************************************************/
CREATE DOMAIN IDENTIFIER AS
INTEGER
NOT NULL;
CREATE DOMAIN MONEY AS
DOUBLE PRECISION;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE APP_FINSUMMARY (
VER_ID IDENTIFIER NOT NULL,
YEAR_ID IDENTIFIER NOT NULL,
LINE_ID IDENTIFIER NOT NULL,
PEOPLE_ID IDENTIFIER NOT NULL,
KONTR_ID IDENTIFIER NOT NULL,
JAN MONEY,
FEB MONEY,
MAR MONEY,
APR MONEY,
MAY MONEY,
JUN MONEY,
JUL MONEY,
AUG MONEY,
SEP MONEY,
OCT MONEY,
NOV MONEY,
"DEC" MONEY,
Q1 COMPUTED BY (coalesce(jan,0)+coalesce(feb,0)+coalesce(mar,0)),
Q2 COMPUTED BY (coalesce(apr,0)+coalesce(may,0)+coalesce(jun,0)),
Q3 COMPUTED BY (coalesce(jul,0)+coalesce(aug,0)+coalesce(sep,0)),
Q4 COMPUTED BY (coalesce(oct,0)+coalesce(nov,0)+coalesce("DEC",0)),
SY1 COMPUTED BY (Q1+Q2),
SY2 COMPUTED BY (Q3+Q4),
Y COMPUTED BY (SY1+SY2)
);
Страницы: 1 вся ветка
Текущий архив: 2005.09.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.038 c