Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

Или я чего-то не понимаю, или 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.044 c
3-1123664069
Max4
2005-08-10 12:54
2005.09.25
перемещение курсора по DBGrid


6-1117626153
Rater
2005-06-01 15:42
2005.09.25
Socks через indy не работает (на FTP)


2-1124266668
kamerer
2005-08-17 12:17
2005.09.25
Алгоритм


14-1125427940
SpecLab
2005-08-30 22:52
2005.09.25
Программирование графики в Windows 95...


14-1125759112
NewWonder
2005-09-03 18:51
2005.09.25
Работа в институте?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский