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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

X11



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

Цитата:
У таблицы есть поле значения кторого может быть null или не null. Те что не null должны быть уникальными.

 
А ещё вариант: использовать генератор.

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:39 17-11-2011
AlexCoRu

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Генератор никак, это поле руками вводят - оно EAN-13.
О, как. Заодно проверяем что б 13 цифр было и null эту проверку проходит.

Код:
ALTER TABLE PRODUCTION
ADD CONSTRAINT CHK_PRODUCTION_EAN
CHECK ((EAN similar to '[0-9]{13}') and (EAN not in (select A.EAN from PRODUCTION A where (A.EAN is not null))));

Всего записей: 911 | Зарегистр. 04-09-2003 | Отправлено: 15:08 17-11-2011
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexCoRu
Мне все же интересно, чем UNIQUE CONSTRAINT не угодил?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 17:14 17-11-2011 | Исправлено: OXDBA, 17:14 17-11-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверное тем, что допускаются две и более записей со значением NULL?

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:29 17-11-2011
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хм, а в скрипте на предыдущей странице сколько записей с null?

Цитата:
 
insert into table_test(id, testunq) values (1, null);
insert into table_test(id, testunq) values (2, null);  


Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 17:34 17-11-2011
AlexCoRu

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

Цитата:
чем UNIQUE CONSTRAINT не угодил?
Пытался создать, но в таблице уже были одинаковые EAN и индекс не создавался. Думал, что из за записей с null.  Оставил только уникальные и сработало:

Код:
ALTER TABLE PRODUCTION
ADD CONSTRAINT UNQ_PRODUCTION_EAN UNIQUE (EAN)
USING INDEX PRODUCTION_EAN_IDX;

Значит так и будет. А в CHECK оставлю только (EAN similar to '[0-9]{13}').

Всего записей: 911 | Зарегистр. 04-09-2003 | Отправлено: 19:17 17-11-2011
Master9000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
забыт пароль к sysdba он был изменен
какими путями можно скинуть на стандарт либо восстановить
firebird 1.5.0

Всего записей: 120 | Зарегистр. 29-12-2008 | Отправлено: 00:11 18-11-2011
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Master9000
Установи новую копию сервера и возьми из нее security.fdb для замены в старом

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 00:54 18-11-2011
X11



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

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:12 18-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Master9000
Переустанавливать не обязательно. Просто скачай zip-архив соответствующей версии.
Останови firebird (важно!) и замени security.fdb из архива.
Если были заведены другие пользователи, они при этом пропадут.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 10:06 21-11-2011
Master9000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот где бы сейчас достать firebird 1.5.0

Всего записей: 120 | Зарегистр. 29-12-2008 | Отправлено: 21:34 21-11-2011
volser

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

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 21:50 21-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Народ, подсобите с запросом
Table1 - мастер таблица
FIO
...
Table1_ID
 
Table2 детал таблица
Table1_ID,
Table2_ID,
Kolvo
........
Table2_ID
 
Table3 справочник наименований
Tovar_Name
.....
Table3_ID
 
Table4
Tovar_Type_Name
Tovar_Type может быть от 1 до 6
Table4_ID
 
Так вот надо составить запрос и разместить данные по горизонтали в зависимости от Tovar_Type
типа такой таблички
     |  Tovar_Type=1   |  Tovar_Type=2   |  ....  |  Tovar_Type=6   |
FIO|TovarName|Kolvo|TovarName|Kolvo|  ....   |TovarName|Kolvo|

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 13:55 24-11-2011
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol
НУ связь первых двух таблиц видно -
Цитата:
Table1_ID,  

А остальные то как связаны?
 

Цитата:
Так вот надо составить запрос

Это один вопрос.
 

Цитата:
разместить данные по горизонтали в зависимости от Tovar_Type
типа такой таблички  

А это уже другой вопрос.
 
Это уже не к запросу, а скорее всего к форме вывода данных по результату запроса...
В отчете, или на форме, или еще где-нить.
Запрос не формирует табличку... Это только набор данных, а как ты их размещать - другое дело.

----------
Все принципиальное-просто,а все простое-принципиально!
На каждого мудреца достаточно простоты!
Не изменишь существующее,не изменив себя!!

Всего записей: 706 | Зарегистр. 28-04-2004 | Отправлено: 14:26 24-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GloThin
блин, упустил ключевые поля
Table1 - мастер таблица  
 FIO  
 ...  
 Table1_ID  
   
Table2 детал таблица  
 Table1_ID,  
 Table3_ID,
 Kolvo  
 ........  
 Table2_ID  
   
Table3 справочник наименований  
Tovar_Type
 Tovar_Name  
 .....  
 Table3_ID  
   
Table4  
 Tovar_Type_Name  
 Tovar_Type может быть от 1 до 6  
 Table4_ID
 

Цитата:
Запрос не формирует табличку... Это только набор данных, а как ты их размещать - другое дело.

немного не согласен - любой запрос возвращает "табличку" данных
смотри, при
select fio,Tovar_Type_Name ,Tovar_Name ,Kolvo  from Table1
left join Table2 on Table1.Table1_ID=Table2.Table1_ID
left join Table3 on Table2.Table3_ID=Table3.Table3_ID
left join Table4 on Table3.Tovar_Type=Table4.Tovar_Type
я получаю табличку  
fio|Tovar_Type_Name|Tovar_Name |Kolvo|
и как ты не крути из етого запроса ты не сможеш получить отчет вида
     |  Tovar_Type=1   |  Tovar_Type=2   |  ....  |  Tovar_Type=6   |  
FIO|TovarName|Kolvo|TovarName|Kolvo|  ....   |TovarName|Kolvo|
 
 
Добавлено:
точнее даже так  
      |  Tovar_Type_Name(Tovar_Type=1) |Tovar_Type_Name(Tovar_Type=2)|  ....  
 FIO|TovarName           |Kolvo                 |TovarName         |Kolvo                |  ....  

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:40 24-11-2011
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Это кросс-таблица. Можно получить в любом генераторе отчета, например в FastReport.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:59 24-11-2011
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не вчитывался в запросы но для кросс-таблиц могут пригодиться OLAP-генераторы: FastCube/HierCube/RadarCube. Все пробегали в варезнике.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 16:21 24-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
volser
вполне возможно, но как мне в том же редакторе кросс объекта фастрепорта задать условия
 
Цитата:
|  Tovar_Type_Name(Tovar_Type=1) |Tovar_Type_Name(Tovar_Type=2)|  ....  

в упор не вижу такого

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 17:23 24-11-2011
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Фильтровать нужно запрос, сам генератор только отображает данные в нужном виде.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 17:27 24-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
блин, томожу, никогда не пользовался крос отчетами, потихоньку доходит.
Ну а sql запросом реально реализовать мою задачу??
 
Добавлено:
volser
только как?
никак не выходит у меня создать кросс запрос

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 17:39 24-11-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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