![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
StayAtHome |
|
||||||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: нет Всего: 16 |
Начал изучать Interbase, возникает много элементарных вопросов. Поэтому, чтобы не плодить темы, с разрешения модеров хотелось бы все спрашивать здесь.
Есть таблица CUSTOMER:
Пытаюсь заставитьь юзера указывать либо имя либо фамилию клиента. Для этого хочу создать триггер:
Но он не компилируется:
То есть "матерится" на слово "AND" Почему? Firebird 1.5.2 + IBExpert 2005.01.16 |
||||||
|
|||||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 7 Всего: 162 |
А так:
Добавлено @ 17:37 Модератор: Пожалуйста, один топик - один вопрос. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: нет Всего: 16 |
Помоголо! Тормоз я.
Работает даже так:
Это нормальная запись? Приколов как в Pascal не будет? |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 7 Всего: 162 |
Я предпочитаю записывать так как показал выше
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
AZDesign |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.6.2005 Репутация: нет Всего: нет |
1) Очень нежелательно исправлять структуру БД в IBExpert или тому подобных.
Все что делается в БД можно записать в виде SQL-скрипта. Таким образом можно написать программу с комментариями, которая генерирует БД без наличия дополнительных инстументов. Для примера смотри: http://www.az-design.ru/Support/DataBase/SQL/mnDB_SQL.shtml 2) Login под которым пользователь вошел в БД доступен через переменную USERNAME, поэтому необязательно запрашивать его снова через тригер |
|||
|
||||
StayAtHome |
|
||||||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: нет Всего: 16 |
![]() |
||||||
|
|||||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 7 Всего: 162 |
У меня БД более 80 таблиц, на разработку всей БД с помощью IBExpert'а потрачено месяца два хотел бы я посмотреть сколько вы будите это скриптом составлять... Добавлено @ 01:17 AZDesign, насколько я понимаю, вы не очень хорошо знаете IBExpert, т.к. в нем есть возможность всю спроектированную БД сохранить в виде sql скрипта. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
AZDesign |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.6.2005 Репутация: нет Всего: нет |
1) Я знаю IBExpert, но после того как обнаружил в нем несметное количество ошибок, перешел на EMS Interbase Manager. одна из глупейших ошибок IBExpert, кстати и у EMS при сохранении таблицы в SQL-скрипте он дополняет текстовые поля пробелами до заявленной длины. При сохранении БД ввиде скрипта он делает как ему проще, но совсем не думает как этот скрипт будет читать человек. Первая глава знаменитой книги Ван Тассела начинается словами - "ПОМНИТЕ: программы читаются людьми". 2) У меня в БД более 300 таблиц, более 200 процедур, более 150 триггеров. Разработка ведеться с 1998 года. Скрипт пишется в Wordе, что позволяет писать нормальные комментарии, использовать навигацию по гиперссылкам или закладкам, составлять оглавление, вести журнал изменений БД где главным образом записано ПОЧЕМУ были внесены изменения. Весть скрипт занимает 6Mb в Worde (630 страниц, 50000 строк). Общее время редактирования 28425 минут (считает Word) 3) И теперь, совершенно недавно мне потребовалось в простой таблице ( 4 поля Integer, таблица пустая) добавить ОДНО поле, но оно должно входить первичный ключ. Я было попробовал вставить через EMS, но от этой таблицы зависят еще 15 таблиц и 32 процедуры. Теперь скажите мне - пока Вы удаляете все эти таблицы и процедуры, добавите поле, потом вернете на место таблицы и процедуры - сколько ошибок допустите?? Задача скрипта уменьшить количество ОШИБОК при исправлениях. Методы работы IBExpert, EMS меня замучили когда я работал с СУБД Paradox (еще ДОСовский вариант) 4) За это время (с 1998г) происходило два параллельных процесса : - из этого проекта отпочковывались другие проекты путем копирования СКРИПТА и обрезки его по необходимости - из других проектов аккумулировались различные идеи путем правки этого СКРИПТА В результате проект теперь состоит из нескольких модулей, которые могут быть использованы в любом проекте, вместе с данными - Адреса, Товары, Персоналии, Юридические лица и прочее. Поэтому время заполнения скрипта не главное в работе программиста, главное время нахождения и исправления ошибок. Вы не считаете время написания программы на Паскале, C+ или другом языке. И наверное знаете, что оно пренебрежимо мало по сравнению с временем проектирования. Кстати, не забывайте что есть волшебные клавиши Ctrl+C, Ctrl+X,Ctrl+V |
|||
|
||||
Alex |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 7 Всего: 162 |
Учитывая тот факт, что разработчик IBExpert русскоговорящий, и очень быстро и грамотно отвечает на письма, любая найденная ошибка исправляется в течение нескольких дней.
Бр, что за бред. А поля у вас не char случайно?
И кто вам сказал, что я это не сделаю скриптом? PS: Универсальное средство написать нельзя. Но говорить что "Эксперты" это плохо и пользоваться ими нельзя это тоже не правильно. В 80% случаях они упрощали работу. Мы почему-то не пишем тексты программ в блокноте и не отправляем на сборку и компиляцию, а пользуемся нормальными средами разработки. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||||
|
|||||||
AZDesign |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.6.2005 Репутация: нет Всего: нет |
А я не говорил, что "Эксперты" это плохо и пользоваться ими нельзя. Просто за многие годы я научился находить методы работы, которые минимизируют количество ошибок. И сам пользуюсь EMS Meneger достаточно много, но не для коррекции структуры БД. Отладка отдельных процедур или запросов - это ДА. Но у меня должен сохраняться проект, который может быть заново собран используя только инструменты самой СУБД. |
|||
|
||||
Гость_Владимир |
|
|||
Unregistered |
Нормальные средства разработки программ голоа+руки+бумажка.
Лепление проги прямо за клавой приводит к экономии 1 минуты при вводе ценой 1 часа при отладке. И это еще хорош, а если из-за не продуманности ошибка выскакивает в 1 случае из 100 - тогда она вылезет при эксплуатации и горе автору. |
|||
|
||||
SergeBS |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: нет Всего: 22 |
Гость_Владимир
Ну спасибо. Еще перфокарты вспомни. Правильнее (ИМХО): 1. Нормальные средства разработки ИДЕОЛОГИИ программы: голова+руки+бумажка. Чертим квадратики, стрелочки и прочее. И то, если ни разу такого не делал. А если делал: берем готовые "кирпичики" (из головы и готовых проектов) и чуть подтачиваем. Добавляем бантиков по вкусу ![]() 2. Базы данных - это не только программа. А ручками рисовать все взаимосвязи - бумаги не хватит. На это есть UML и всякие ErWinы, EnterPrise Manager, IBExpert и т.п. Хотя начиная с 0 - эскизик на бумажке не помешает. С названиями объектов и стрелочками связей. Но чтобы ручками хотя бы структуру таблицы рисовать - время зря терять. StayAtHome Насчет скобок - из какой-то книжки: не бойтесь "лишних" скобок. Лучше десяток "лишних" скобок, чем две пропущенных. У alex скобки повышают читаемость. А что лишние - так компилятор их покоцает и все. И точно ошибки нет. Я сознательно выбрал способ именно как у него. AZDesign
Я бы так не сказал. При сопровождении готового решения проектировать уже практически нечего. И главное время уже занимает увеличение эффективности работы операторов вставкой всяких "умных бантиков". И соответственно - как раз написание программы. Но мы явно из разных сфер деятельности. Текст навевает на нечто типа жутко навороченной торгово-складской системы. Почему жутко - слишком много (для меня) таблиц. Хотя я знаю одну систему, в которой под 200 dbf-ников. Удивительно, но она работает. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |