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

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

Вопрос по условным операторам в SQL Firebird 1.X


Страницы:   1 2 3

Rule ©   (2004-10-05 12:23:00) 

Как мне сделать выбор по условию, щас попробую объяснить ...
допустим есть 2 поля
COUNT(numeric(12,3))
TTYPE(CHAR(1)) -  принимает 2 значения "+" или "-"

так вот надо сделать запрос типа такого чтоб складывало количество если тип равен плюсу или вычитало если минусу, как такое сделать
ну если в цикле изобразить то получится
while not table1.eof do begin
       if table.fields[1].asstring='+' then allcount:=allcount+table.fields[0].asinteger;
       if table.fields[1].asstring='-' then allcount:=allcount-table.fields[0].asinteger;
       table1.next;
                        end;

ну так я думаю будет понятно ?


Rule   (2004-10-05 17:48:00) [1]

sniknik ©   (05.10.04 17:39) [42]
гут, спасибо за ссылку, читаю ...


sniknik   (2004-10-05 17:39:00) [2]

не, на самом деле можно "оправдать" выбор ADO, OLEDB, если например "вдруг" понадобится совместить IB c MSSQL.
вот почитай
http://zstyle.dp.ua/eng/iboledb_doc5.htm


Rule   (2004-10-05 17:14:00) [3]

sniknik ©   (05.10.04 16:41) [40]
Понятно, спасибо за информацию :)


sniknik   (2004-10-05 16:41:00) [4]

> А можно сапросить, почему использованы Адошные компоненты доступа а не прямые, по каким соображениям ?
сапросить мошно пуалуачить незя. ;о))

да просто прога писалась как тестилка sql запросов, именно для ADO, вернее для того чтобы ему обучится. (с чего то нужно начинать) в основном для баз acces (задумывалось), получилось для всех (ну я же не виноват что ADO практически все базы поддерживает ;о))
нашлись драйвера под IB вот и тестю на ней же. (привык уже, да и проше это, поменял провайдера, все другая база...)


Rule   (2004-10-05 16:30:00) [5]

Все понял причину, извините, действительно тороможу, больше не буду сонный постить вопросы :)))
Причина в том что база лежит на другой машине, на сервере, а там фаерберд 1.0, вот так, вот сдесь все и причины :))
а на 1.5 менять не будут потомучто на тойже машине стоит клиент банк или какаято банковская программа ...
ну щас буду решать, надо же переходить на 1.5, щас будем банкиров с сервака сталкивать, ибо нефиг


Rule   (2004-10-05 16:27:00) [6]

sniknik ©   (05.10.04 16:26) [37]
А можно сапросить, почему использованы Адошные компоненты доступа а не прямые, по каким соображениям ?


sniknik   (2004-10-05 16:26:00) [7]

> Да верю, а какие компоненты доступа были использованы ?
ADO (connect, command, dataset) провайдер ZStyle IBOLE Provider (5 бесплатная версия).


Sergey13   (2004-10-05 16:25:00) [8]

2[35] Rule ©   (05.10.04 16:21)
>Опа, я нашел в чем причина, у меня  в трее висит фаерберд гуардиан 1.5, а вот в эксперте пишет что база 1.0, как мне её теперь перевести на 1.5 ?
Попробуй поменять в "Регистрационной информации базы"


Rule   (2004-10-05 16:21:00) [9]

Опа, я нашел в чем причина, у меня  в трее висит фаерберд гуардиан 1.5, а вот в эксперте пишет что база 1.0, как мне её теперь перевести на 1.5 ?

Роман Снегирев   (05.10.04 16:09) [30]
Извините, не я начальник информационного отдела, я бы давно перешел на них, но увы ... я много раз говорил


Rule   (2004-10-05 16:18:00) [10]

sniknik ©   (05.10.04 16:13) [32]

Да верю, а какие компоненты доступа были использованы ?


Rule   (2004-10-05 16:17:00) [11]

Rule ©   (05.10.04 16:03) [28]
вернее не поставят а подскажут, уже вообще засыпаю, даже слова путаю  :))


sniknik   (2004-10-05 16:13:00) [12]

Rule ©   (05.10.04 15:59) [26]

> Sandman25 ©   (05.10.04 15:58) [23]
> так у меня и есть фаерберд 1.5, наверное это просто IBX  вмесие с IBExpert  не понимают эту структуру ...

сам фаерберд 1.5, должен... из доки

(1.5) New constructs for CASE expressions
Arno Brinkman
a) CASE
Allow the result of a column to be determined by the outcome of a group of exclusive conditions.
Syntax
<case expression> ::=
<case abbreviation> | <case specification>
<case abbreviation> ::=
NULLIF <left paren> <value expression> <comma> <value expression> <right paren>
| COALESCE <left paren> <value expression> { <comma> <value expression> }... <right paren>
<case specification> ::=
<simple case> | <searched case>
<simple case> ::=
CASE <value expression> <simple when clause>...
[ <else clause> ]
END
<searched case> ::=
CASE <searched when clause>...
[ <else clause> ]
END
<simple when clause> ::= WHEN <when operand> THEN <result>
<searched when clause> ::= WHEN <search condition> THEN <result>
<when operand> ::= <value expression>
<else clause> ::= ELSE <result>
<result> ::= <result expression> | NULL
<result expression> ::= <value expression>
Examples
i) simple
SELECT
o.ID,
o.Description,
CASE o.Status
WHEN 1 THEN 'confirmed'
WHEN 2 THEN 'in production'
WHEN 3 THEN 'ready'
WHEN 4 THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM Orders o;
ii) searched
SELECT
o.ID,
o.Description,
CASE
WHEN (o.Status IS NULL) THEN 'new'
WHEN (o.Status = 1) THEN 'confirmed'
WHEN (o.Status = 3) THEN 'in production'
WHEN (o.Status = 4) THEN 'ready'
WHEN (o.Status = 5) THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM Orders o;


могу прислать прогу на ADO, на ней влегкую идет (вышеописанные запросы).


Sergey13   (2004-10-05 16:10:00) [13]

22[26] Rule ©   (05.10.04 15:59)
У меня в эксперте на 1.5 запрос из [11] отработал на ура и с подсветкой. 8-)


Роман Снегирев   (2004-10-05 16:09:00) [14]

так у меня и есть фаерберд 1.5, наверное это просто IBX  вмесие с IBExpert  не понимают эту структуру ...
IBExpert все отлично понимает, а IBX по х... что ты там пишещь в запросе, выполняет то его все равно сервер, так что все должно работать. А лучше переходи на FIBPlus


Johnmen   (2004-10-05 16:04:00) [15]

>Rule ©   (05.10.04 15:59) [26]
>так у меня и есть фаерберд 1.5,

Если FB1.5, то там есть CASE. В IB его нет...


Rule   (2004-10-05 16:03:00) [16]

Sandman25 ©   (05.10.04 16:02) [27]

Да ждемс, может другие поставят


Sandman25   (2004-10-05 16:02:00) [17]

[26] Rule ©   (05.10.04 15:59)

Понятно. Я не спец, сейчас может другие подскажут.


Sandman25   (2004-10-05 15:59:00) [18]

for select работает медленнее, чем select sum


Rule   (2004-10-05 15:59:00) [19]

Sandman25 ©   (05.10.04 15:58) [23]
так у меня и есть фаерберд 1.5, наверное это просто IBX  вмесие с IBExpert  не понимают эту структуру ...


Rule   (2004-10-05 15:58:00) [20]

а ещё проще хранимую процедуру написать да и все, и никаких удф не надо


Страницы:   1 2 3

Наверх

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