Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IB. Формирование запроса с расчетом данных по 1 - ой колонке [D6, Win95/98]


Страницы:   1 2

erika ©   (2005-07-29 08:24:00) 

Здравствуйте!
Возникла проблема: когда   я  формирую VIEW 3 (на основе двух других VIEW  и  Table1 - вызываются  все поля таблицы удовлетворяющие  условию), где  производится расчет следующего типа (view1.field1 - view1.field2 - view2.field1 ) field3, и  если ранее view1.field1 было null, то  field3 получается  пустым,  и запрос выполняется  очень долго, не  смотря на то, что в  результате  запроса появляется  всего 100 - 150 записей, максимум 200


Johnmen   (2005-07-29 11:03:00) [21]

>Lexer ©   (29.07.05 10:40) [16]

Всё сказанное всё-таки говорит об упущениях и ошибках при проектировании...


Lexer   (2005-07-29 10:54:00) [22]

http://firebird.sourceforge.net


erika   (2005-07-29 10:51:00) [23]

где можно скачать Fb - хорошей версии


erika   (2005-07-29 10:49:00) [24]

> при преобразовании NUMERIC в CHAR(VARCHAR)
Можно поподробнее на эту тему; у меня полей NUMERIC/где количество записывается  до кучи/, где можно посмотреть по типам данных Fb


Lexer   (2005-07-29 10:40:00) [25]

>[15] Johnmen ©   (29.07.05 10:32)

БД спроектирована нормально, та долго из-за лишком большого количества использования ключевых слов, двойных ковычек в таблицах, процедурах, тригерах, в запросах хранящихся в таблице запросов...
изменение БД, тянуло за собой изменение приложения (это был кошмар)

в БД 197 таблиц, 952 процедуры, и немеренно триггеров...

Еще были роблемы при преобразовании NUMERIC в CHAR(VARCHAR) - получалось так что 1 показывался как 0000001 после преобразования в строку, нули добивались до длины строки.

>Обычно около 1 часа.
об этом я мог только мечтать


Johnmen   (2005-07-29 10:32:00) [26]

>зы: у мня переход занял почти 2 месяца.

М-да... Круто...
Обычно около 1 часа. Если, конечно, БД спроектирована нормально и не битая.


Lexer   (2005-07-29 10:30:00) [27]

1. backup на IB
2. restore на FB

но до этого придется просмотрть базу на наличие в именах объектов ключевых слов, специфичных для FB, если такие имена есть, то придется поменять еще и приложение
смотри Migration Guide

зы: у мня переход занял почти 2 месяца.


erika   (2005-07-29 10:24:00) [28]

База уже  существует  и  в ней работают, как можно сейчас сменить; просто удалить Ib и  установить FireBird???!


erika   (2005-07-29 10:20:00) [29]

Ага-а! СЕйчас попробую!


Lexer   (2005-07-29 10:14:00) [30]

Извиняюсь, конечно же COALESCE


Lexer   (2005-07-29 10:13:00) [31]

CALESCE(view1.field1,0) - CALESCE(view1.field2,0) - CALESCE(view2.field1,0)


Johnmen   (2005-07-29 10:13:00) [32]

>erika ©   (29.07.05 10:01) [7]

Рекомендую сменить на FireBird 1.5
Тогда будет доступна функция COALESCE и много других фич.


Fay   (2005-07-29 10:07:00) [33]

2 erika ©   (29.07.05 10:01) [7]
Это сознательное издевательство над собой!


erika   (2005-07-29 10:01:00) [34]

Версия 6.0.1.6


Johnmen   (2005-07-29 09:12:00) [35]

>Fay ©   (29.07.05 09:03) [5]

IB, о чём и сказано в теме. Вот только версия неизвестна...:)


Fay   (2005-07-29 09:03:00) [36]

2 erika ©   (29.07.05 8:48) [4]
СУБД, конечно, Informix?


erika   (2005-07-29 08:48:00) [37]

Мне просто необходимо вывести 0 в этой поле


Fay   (2005-07-29 08:47:00) [38]

2 Digitman ©   (29.07.05 8:41) [1]
>> null это и есть "ничто" !
Я бы сказал, что это неопределённое значение. Хотя, действительно, про такое значение нельзя сказать, что оно есть "конкретно кое-что" 8).


erika   (2005-07-29 08:45:00) [39]

а можно  вместо ничто view1.field1 поставить 0


Digitman   (2005-07-29 08:41:00) [40]


> если ранее view1.field1 было null, то  field3 получается
>  пустым


как можно из ничего вычесть что-то и в результате получить что-то ?

null это и есть "ничто" !


> запрос выполняется  очень долго


это уже проблемы грамотного проектирования базы + эффективного использования индексов + оптимизация запросов


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо