Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А если надо будет с реальных таблиц данные получить?  

А причем здесь определение порядка сортировки выходных данных?  

Цитата:
А можно ли в конструкции ORDER BY использовать IIF?

Куда здесь запихивать IIF? И самое главное, зачем?

Код:
[ORDER BY {{столбец-результат [ASC|DESC]}.,..}
         |{{положительное целое [ASC|DESC]}.,..}];


Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 11:52 08-05-2014
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Куда здесь запихивать IIF? И самое главное, зачем?  

Отлично запихивается.

Код:
select FIELD1, FIELD2
from (select 1 FIELD1, 9 FIELD2  
      from RDB$DATABASE  
      union all  
      select 8, 2  
      from RDB$DATABASE  
      union all  
      select 3, 7  
      from RDB$DATABASE)  
order by iif(field1>field2,field1,field2)
 


Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 12:23 08-05-2014 | Исправлено: exteris, 12:25 08-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А причем здесь определение порядка сортировки выходных данных?  

Неправильно понял запрос, каюсь.
 
Тем не менее, с ходу не вижу причин почему нельзя использовать iif как в секции select так и в order by. Интереса ради надо бы тест сделать.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 13:26 08-05-2014
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exteris
Поясню еще раз, про стандартный путь, т.е. определенный стандартом,  для упрощения возьмем за основу  SQL-92, ибо текст SQL-86 уже не найти, где есть описание синтаксиса order by.  Если задача решается с использованием синтаксиса, определенного стандартом, то зачем изобретать велосипед?  Завтра, текст этого запроса будет разбирать другой разработчик, упорно  пытаясь понять сакральный смысл этого order by.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 13:43 08-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA
 
SELECT ... FROM ...
   ...
   ORDER BY <ordering-item> [, <ordering-item> ...]
 
<ordering-item>  ::=  {col-name | col-alias | col-position | expression}
                         [COLLATE collation-name]
                         [ASC[ENDING] | DESC[ENDING]]
                         [NULLS {FIRST|LAST}]
 
 
Отсюда.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 13:47 08-05-2014
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OXDBA
SQL-92 уже 22 года, как бэ.
 
Во многих популярных СУБД есть фичи, отсутствующие в стандарте. В том числе и order by expression.  
Если это удобно и помогает в разработке, не вижу смысла этим не пользоваться.

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 14:09 08-05-2014
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
Этот документ мне до боли знаком , но
exteris

Цитата:
Если это удобно и помогает в разработке, не вижу смысла этим не пользоваться.

Конечно, но за много лет выработал правило использовать стандартный синтаксис, если это возможно для решения задачи и не ухудшает план.  Неизвестно  под какую СУБД будет следующий проект, а портировать существующие наработки будет намного проще. Это может показаться незначительной мелочью, но жизнь облегчает.

Цитата:
SQL-92 уже 22 года, как бэ.

Так после 92го синтаксис особенно и не менялся, только дополнялся новой функциональностью.
Мдаа.. мечтательно.. помню те прекрасные времена, когда еще не было FB, а IB приходил на 4 дискетах, с коробкой печатной документации

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:53 08-05-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA
 
А чего помнить те времена, FB и сейчас влезет на четыре дискеты.

Всего записей: 985 | Зарегистр. 30-05-2002 | Отправлено: 15:03 08-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy
 
На 5. А 64-разрядный - даже на 7
 
OXDBA
Стандарт - это хорошо и правильно, кончено. В связи с чем вопрос - вы процедуры и тригеры вообще не используете по тем же причинам?
 

Цитата:
Так после 92го синтаксис особенно и не менялся, только дополнялся новой функциональностью.  

Не берусь судить, так как не имел возможности ознакомиться, но - вы точно уверены, что в дополненой новой функциональности стандарта нету order by expression? А то википедия, например утверждает что так можно делать.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 15:48 08-05-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В последнее время наблюдаю ошибки при подключению к базам с кириллицей в путях.
т.е. C:\БАЗА\b.fdb - ошибка, а C:\S\b.fdb - все хорошо.
 
Система win 7, FB 2.1/2.5, antivir COMODO.
 
Уже не заню где искать причину, ранее такой проблемы не было.
 
Кто сталкивался с такой проблемой?

Всего записей: 985 | Зарегистр. 30-05-2002 | Отправлено: 17:06 08-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy
Текст ошибки (полный) - большой-большой секрет?

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 10:23 09-05-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всех с праздником Победы!
 
 
 
miwa текст, ошибки
 
Error Message:
----------------------------------------
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
I/O error for file "D:\Р—РђРљРђР—Р§Р&#152;РљР&#152;\DB\F.FDB".
Error while trying to open file.
Системе не удается найти указанный путь. .
 
 
сам файл лежит D:\Заказчики\DB\F.FDB

Всего записей: 985 | Зарегистр. 30-05-2002 | Отправлено: 12:28 09-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy
Тоесть, проблема в переменной, в которой хранится путь к базе в программе и firebird тут вообще не при делах. Скорее всего в твоей программе/среде программирования/библиотеке доступа где-то путаница с unicode/win1251 строками.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 12:48 09-05-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
 
Спасибо. Действительно проблема в кодировке была.

Всего записей: 985 | Зарегистр. 30-05-2002 | Отправлено: 11:30 10-05-2014
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В базе имеется поле varchar (500). Требуется после всех запятых, в этом поле, добавить пробел (если его нет). Конструкция с '_,_' на '_, _' не прокатила. Подскажите, как оформить сей фокус.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 11:52 11-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
Где полный текст запроса, в котором конструкция "не прокатила"? И чтоб два раза не вставать - в этом запросе функция replace используется?

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 12:34 11-05-2014
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
UPDATE CLIENT_CATALOG SET ITEM_KOMMENT = REPLACE(ITEM_KOMMENT, '_,_', '_, _');

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 12:43 11-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
Если после приведенного запроса в item_comment ничего не поменялось, значит там нет последовательности символов «подчеркивание-запятая-подчеркивание».  
 
Еще варианты - не закоммичена транзакция, неправильные параметры транзакции, данные меняются в одной базе, а просматриваются во второй...

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 13:45 11-05-2014
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
Мне надо найти все запятые, которые имеются в тексте этого поля и поставить после них пробел. Если пробел уже есть, то такие места не трогать. Т.е. если в поле встречается "бла-бла-бла,бла-бла", то надо заменить на "бла-бла-бла, бла-бла".

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 15:47 11-05-2014
ant0ni02004

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
ох, не на SQL такое делать... тут бы регуляркой
но можно и так вывернуться:
1. поставьте пробел после каждой запятой (заменяете "," на ", ")
2. заменяете все ",  " (там 2 пробела!) на ", " пока что-то заменяется (т.е. пока пред. и текущая версия строки не станут равны)

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 15:55 11-05-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru