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

Вниз

Как в IB(FireBird) в SQL dialecte 3 добавить вычисляемое поле?   Найти похожие ветки 

 
Roki   (2003-03-17 18:18) [0]

Мастера, помогите. Перешел на SQL dialect3 и хочу добавить вычисляемое поле:

ALTER TABLE "employee_working"
ADD "fio" COMPUTED BY (MiddleName||" "||FirstName||" "||LastName)

Баг:

Dynamic SQL Error.
SQL error code = -206.
Column unknown.
MIDDLENAME.
At line 2, column 24.

Когда был SQL диалект 1 было без проблем...
Использую IBManeger


 
zacho   (2003-03-17 18:22) [1]

Либо пиши все поля в кавычках и с учетом регистра (т.е. не MiddleName, а "MiddleName"), либо названия всех объектов в запросе - в верхнем регистре и без кавычек


 
Roki   (2003-03-17 18:25) [2]

Какие выгоды от 3 диалекта?


 
zacho   (2003-03-17 18:33) [3]

>

> Roki (17.03.03 18:25)
> Какие выгоды от 3 диалекта?

Типы данных DATE,TIME,INT64(aka BIGINT), функция EXTRACT и т.п.
Подробнее смотри на http://www.ibase.ru ,точную ссылку сейчас не помню, но там точно все есть, а кто ищет - тот всегда найдет :)


 
zacho   (2003-03-17 18:43) [4]


> zacho © (17.03.03 18:22)

Небольшое уточнение:
Если ты создаешь таблицу как : CREATE TABLE EMPLOYEE_WORKING (MIDDLENAME (какой-то тип), ...
то должен писать ALTER TABLE EMPLOYEE_WORKING
ADD FIO COMPUTED BY (MIDDLENAME...)

А если создал как CREATE TABLE "employee_working ("MiddleName" (какой-то тип), ...
то должен писать ALTER TABLE "employee_working"
ADD "fio" COMPUTED BY ("MiddleName"...

Это относится не только к DDL, но и к DML


 
zacho   (2003-03-17 19:06) [5]


> zacho © (17.03.03 18:33)

Еще одно уточнение :-)
Лично для меня самый большой плюс диалекта 3 в том, что NUMERIC(scale,precision) при scale>10 реально хранится как INT64, что дает возможность нормально работать с "деньгами". Например поле с доменом CREATE DOMAIN D_MONEY AS NUMERIC (15,2) в диалекте 1 на самом деле было бы типа double precision, а в диалекте 3 - INT64


 
Alexandr   (2003-03-18 07:37) [6]

и как только до третьего диалекта с деньгами работали...
Вот, видать от этого вся страна и развалилась.
В стране кризис от того, что с деньгами в первом диалекте неправильно работали...


 
zacho   (2003-03-18 12:46) [7]


> Alexandr © (18.03.03 07:37)

Ну зачем столько ехидства ?
Впрочем, похоже я сам не точно выразился.
Я вовсе не имел в виду, что правильно работать с деньгами в диалекте 1 невозможно. Просто в диалекте 3 гораздо удобнее. Особенно для новичков, которые могут и не подумать о погрешностях, связанных с хранением чисел с фиксированной запятой в поле типа double precision.


 
Alexandr   (2003-03-18 13:03) [8]

щас. Только к гемору с умножением и делением привыкнуть надо...



 
zacho   (2003-03-18 13:27) [9]


> Alexandr © (18.03.03 13:03)
> щас. Только к гемору с умножением и делением привыкнуть
> надо...

Просто надо читать документацию :) Впрчем, насколько я помню, умножение/деление NUMERIC и DECIMAL и в первом диалекте так же происходило. Или память меня подводит ? Или ты вообще про какой-то другой гемор?
А еще можно юзать Дятла с его __MONEY :)


 
Alexandr   (2003-03-18 13:51) [10]

я щас не помню на память, но отличия есть, и именно эти отличия часто являются граблями при смене диалекта



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
7-19875
defenseur
2003-02-01 12:15
2003.04.07
Открытие программы по щелчку на ее файле


14-19759
blackman
2003-03-18 18:04
2003.04.07
Актуальная картинка ?


1-19531
dima78
2003-03-26 12:19
2003.04.07
Неиспользуемые модули


1-19604
$Hic0
2003-03-28 17:57
2003.04.07
Access violation... :(((


1-19645
Demon[DZ]
2003-03-25 18:14
2003.04.07
Помогите с BitBlt !!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский