powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / с чего подойти к задачи
20 сообщений из 20, страница 1 из 1
с чего подойти к задачи
    #32325315
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброй всем сети...
Проблема:
Есть куча доков методичек и всякого другого хлама.
Написан проект в CASE ERwin пока неполностью.
нужно сделать сервер свалить это все в кучу прикрутить к этому интерфейс
и тд. Срок к Марту - Апрелю
в качестве СУБД был выбран FireBird
в качестве ОС FreeBSD
в качестве web server Apache
в качестве языка для написания CGI пока ничего

Вопрос собственно в следующем
1. какой язык выбрать и где взять поо нему доку при работе с FireBird
2. как с ERwin перелить проект в gdb или пока непозно лудше использовать IBExpert
3. где можно взять примеры подобных систем если они были.
4. приветствуюдтся любые соображения на эту тему и около нее

Заранее всем спасибо.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325566
Maks_f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассуждение следующее. Видел как исспользуют сервер на основе Lin/Free
а рабочие места и разработка из под Win. Это обеспечивает достаточное удобство разработки, если вы конечно привыкли к Win системам, да и пользователи если быть откровенными лучше знают WIn. Если же система планируется для использования под специфические задачи под U* то тогда ваш выбор вполне правильный и продуманный.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325631
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 - что знаете. наш веб программер на перле делал скрипты. с firebirdом идут примеры на си. достаточно просто пишется клиент на яве, причем переносимость серверной части на винды (а вдруг?) пройдет без проблем. с пхп тоже люди работают.

2/3 - к сожалению, помочь не смогу.

4 - ibase.ru
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325688
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то Maks_f - да сервер точно под фри, клиент точно под вин доступ по локалке
или через нет. это просто работа на шару для вуза просто куча
людей всегда сталкивется с тем что неможет достать конкретный
документ в конкретное время отсюда возникло мнение создать
систему доступа к данным как в нутри института так и за его
пределами так как инет проктически халявный отсюда и желание
поучится и поиметь с этого опыт и строчку в резюме.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325690
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то alex_k
сп за ссылку ;)

а можно у него стрельнуть реальный примерчик под перл и/или жаву, совсем простенький чтобы только принцип понять... заранее спасибо.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325695
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для тех у кого такиеже проблемы.
пример на PHP

http://www.php.net/manual/en/ref.ibase.php

сначала описание функций а потом в самом низу 2 примера. все просто и внятно изложено.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325705
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужно я в понедельник спрошу.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325709
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оч нужно заране сп...
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325776
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. - где взять примеры - не знаю, но базу проектирую под ErWin-ом.
Поставь BDE для Interbase6, там есть примочки: DataPump и ODBC.
Настраиваешь ODBC, ну и все...
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32325832
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Пробовал, давно, Perl + Interbase 5.6, все было нормально. С сайта скачай IBPerl там есть пара примеров, но очень простые (левые)
2. ErWin хорошая штука, вот только проблемы могут возникнуть! Лучше не цепляться через ODBC, а сделать Preview и скопировать текст в файл, потом проверить все что там написано (например ссылочную целлостность ErWin делает триггерами, не всегда удобно да и лишний запрос select count(*) from - не красиво) и в IBExpert'е запустить на выполнение.
3. 4. Соображений много, если есть вопросы. А вот с примерами ... за готовое решение обычно денег просят, а так ... мож и помогут (к сожалению мои опытные исходники затерялись во времени).

С уважением, Denis Uskov
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326045
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то Denis Uskov
я правильно понял что просмотреть SQL код и сохранить с расширением .sql
а где там обработать... честно не работал я IBExpert

вопросы всегда есть например.
5. как правильно сделать идентификацию пользователя при работе с бд через веб при каждом запросе спрашивать пароль или положить при первом запросе в кукис.
6. как правильно сделать логирование у бд те кто что куда записал ....
(помоему там чтото есть встроенное, но точно незнаю, усиленно читаю литературку но этого мало, если подскажеш куда копать буду оч рад)
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326219
Малиновский Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шлю по мылу пример проекта ErWin, который без проблем генерит SQL-скрипт для FireBird. Делаешь "Generate Report", а потом файл используешь, как нравитсяю. ErWin 3.5.2 (с 4-й версии были какие-то проблемы с макросами)
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326248
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Малиновский Владимир

И мне на мыло пож-та(только < 1 Mb), хочется посмотреть как раелизованы некоторые вещи, да и поучиться не мешало бы.
Насколько я помню в ErWin НЕТ типа поля Дата+Время только Date. Для IB < 6, Date был как раз самое то, но в 6 и в FireBird Date это только Дата, а вот TimeStamp все вместе. И опять же про ссылочную целлостность?
В общем интересно.

С уважением, Denis Uskov
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326279
Малиновский Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Денис Усков
Да пожалуйста. 385 килобайт

Если каких-то типов не подддерживается автоматически, то в Domain Dictionary Editor - в закладке InterBase прямо ручками набираем TimeStamp или чтотам Вам нравится.

Со ссылочной целосностью - то же, выбор варинтов огромнейший. Я выбрал с помощью триггеров. Может, несколько громоздко, зато легко реализуется нестандартное поведение (типа связь много <-> много). Или при контроле ссылочной целостности - чтобы эксцепшны по-русски ругались.
Да, в высланном проекте особый интерес представляет на Logical уровне. (реализация деревьев, например).
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326607
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
красиво только на логическом уровне проблема немогу нормально отобразить все через закорючки а вот на физ уровне все ок английским по белому :)
сп за файлик... :)
только у меня 4 :(
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326721
Sclif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кракозяблики пишутся, попробуй nls в реестре подправить.
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32326958
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Малиновский Владимир
Да уж, давно не видел таких проектов(это не критика) :)
Но все же:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TRIGGER tU_Bill FOR Bill AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  ...
  IF (OLD.bill_id <> NEW.bill_id) THEN
  BEGIN
    select count(*)
      from Billing
      where
        Billing.bill_id = OLD.bill_id into numrows;
    IF (numrows >  0 ) THEN
    BEGIN
      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
    END
  END
  ...


Если таблица "Billing" большая и часто меняющаяся, то select count(*) работает достаточно долго. Если уж триггером, то лучше

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TRIGGER tU_Bill FOR Bill AFTER UPDATE AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
  ...
  IF (OLD.bill_id <> NEW.bill_id) THEN
  BEGIN
    IF (EXIST(select * from Billing where Billing.bill_id = OLD.bill_id)) THEN
    BEGIN
      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;
    END
  END
  ...


Вот пример по ограничениям:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE BILL (
    BILL_ID INTEGER NOT NULL, ...);

CREATE TABLE BILLING (
    BILLING_ID INTEGER NOT NULL,
    BILL_ID INTEGER, ...);

ALTER TABLE BILLING ADD CONSTRAINT FK_BILL FOREIGN KEY (BILL_ID) REFERENCES BILL (BILL_ID) ON UPDATE CASCADE;


ON UPDATE CASCADE - взято для наглядности, т.к. RESTRICT - это по умолчанию и не пишется.
Но в целом проект очень даже.
Спасибо.

С уважением, Denis Uskov
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32327827
toshik-star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ура разобрался куда запихать .sql скрипт и как его исполнить оч удобно...

но все еще остались нерешенные вопросы 5.6.

7. немогу понят как можно отобразить View (посути этож запрос)
:)
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32328134
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5. Смотря как надо по задаче.
Если с 1 компа только 1 чел. то можно и в кукис, но в большинстве случаев это не так! Можно положить аутентификацию в БД(имя, IP, UID, дата+время последнего соединения) и проверять на корректность(в урле UID, а время + х < текущего). Но вариантов много!

6. Можно создавать каждого юзера и он(юзер) коннектится со своими правами, а в таблице истории(кто, когда и т.д.) >=2 поля (Update_Date TimeStamp default CurrentTime, UserName Varchar() default CurrentUser) переменная по default может меняться в зависимости от версии сервера.
Можно держать табличку с юзерами, а коннектиться с SYSDBA. Проверка на наличие юзера и корректность сессии(из ответа №5), и UserName вместо default брать из этой таблички.
В общем, фантазия безгранична.

7. Поконкретнее, вопрос не понят :(

С уважением, Denis Uskov
...
Рейтинг: 0 / 0
с чего подойти к задачи
    #32328334
Малиновский Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хлопцы, нативные ограничения работают так же, но через системные триггеры. На высланном проекте (с некоторыми изменениями) работают несколько фирм, несколько десятков одновременных коннектов на самых разных клиентских машинах. Базы относительно большие - под несколько сотен мегабайт. Интерактивно - никаких задержек не отмечено. Если возникнут, тут же заменю ненавистные Вам
select count(*)
from Billing
where
Billing.bill_id = OLD.bill_id into numrows;


на что-то более приятное.

Я просто выступил в защиту ErWin, и все.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / с чего подойти к задачи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]