Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

Как в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-19797
BJValentine
2003-03-19 16:09
2003.04.07
FrReport


1-19670
I_one
2003-03-26 06:01
2003.04.07
Как можно получить всех потомков выбранного элемента TreeView..?


8-19703
drin
2002-12-23 03:45
2003.04.07
Форматы


1-19694
Nemra
2003-03-26 11:37
2003.04.07
Создание компонентов, проподает кнопка


1-19592
ewgeny
2003-03-27 10:41
2003.04.07
указатель на структуру