Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Yurij



On Mar 6, 7:21 am, "Андрей Могильный" <[EMAIL PROTECTED]> wrote:
> > А меня от вида дизайнера форм и мышиной возни начинает бесить. Я
> А меня бесят автоматически сгенеренные интерфейсы, веришь - нет? Потому что
> юзабилити у них - ноль. Это я со стороны пользователя говорю, со стороны

Юзабилити и автоматическая генерация друг другу никак не противоречат.
И точно
так же сделанные вручную интерфейсы могут быть непригодными к
использованию.

Поля не обязательно расставлять линейно - в метаданные объекта вполне
могут
входить элементы описания расстановки.



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность rstas


Андрей Могильный пишет:


А меня бесят автоматически сгенеренные интерфейсы, веришь - нет? Потому что
юзабилити у них - ноль. Это я со стороны пользователя говорю, со стороны
программиста - конечно класс, один раз продумал все и айда автоматом лепить
формы. Похер что на них по 50-100 атрибутов в линеечку выстроены, главное
бухгалтер в любой момент может новый атрибут сам настроить и он будет
появляться на новых формах. Хотя известно из практики, что пользователю это
в 99% случаев не понадобится. В общем почаще надо о пользователях думать, об
их удобстве в первую очередь, а не о своем, для них мы родимых работаем...
_

С уважением, Андрей Могильный.

Можно использовать и оба подхода. А чтобы в формах, "сгенеренных" 
автоматически можно было "удобнее" работать ничто не мешает реализовать 
сохранение и применение затем нужного порядка обхода по тому же Tab-у. У 
меня в такой форме по нажатию правой кнопки мыши строится список 
объектов (заранее известных типов, например комбобокс, текстовое поле, 
кнопка и т.д.), лежащих на этой форме, затем пользователь изменяет 
положение (сортирует) этих объектов в списке, что приводит к сохранению 
порядка обхода в БД. При запуске "этой" формы в следующий раз опять 
строится список объектов и для каждого (из БД) выбирается ранее 
указанный порядок обхода. Такой подход позволяет изменять форму (менять 
объекты лежащие на ней) и при этом иметь настраиваемый порядок обхода.


Рубан Станислав
Нижний Новгород



Re: хоть еще и пятница

2007-03-05 Пенетрантность Alexandr Kochmin


EP>
EP> Hi  "Alexandr Kochmin"
EP>> вах тут и знатоком быть ненадо.
EP>> Я просто установил wine - 5 минут
EP>> потом скопировал программу в линукс свою.
EP>> Запустил. Подумал, закопировал gds32.dll, и все работает.
EP> Я обично просто делал link с именем gds32.dll на fbclient.so

а можно вот этот момент поподробнее.
Чего-то когда копируем gds32.dll от винды, то работает нормально.
А когда делаем линк, то не работает.
Мож надо что-то еще, я что-то упускаю?

--
С уважением
Кочмин Александр
Firebird Foundation associate member #257 





Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Kovalenko Dmitry

> Что об этом думает уважаемая публика.

Ну что тебе сказать про Сахалин? На острове нормальная погода.

Жаль я уже ушел из большего секса, а то бы я побуянил в этом
топике :-)

Коваленко Дмитрий.



Re: ������� � ����������� �

2007-03-05 Пенетрантность Plotnikov Y

>áËËÕÒÁÔÎÏÅ - ÜÔÏ × ÓÍÙÓÌÅ ÓÉÍÍÅÔÒÉÞÎÏÅ? á ÐÒÏ ÎÁÕËÕ ÜÒÇÏÎÏÍÉËÕ ÍÓØÅ 
> ÞÏÎÉÔØ ÓÌÙÈÁÌ? ôÉÐÁ ÛÔÏÐ ÕÄÏÂÎÏ ÇÌÁÚËÁÍÉ ÂÙÌÏ ÏÈ×ÁÔÙ×ÁÔØ ÚáÒÁÚ ÔÏ, ÞÔÏ 
> ÎÕÖÎÏ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÏÐÒÅÄÅÌ£ÎÎÙÈ ÉÎÆÏÒÍÁÃÉÏÎÎÙÈ ÆÕÎËÃÉÊ? é ÞÔÏÐ ËÕÒÓÏÒ ÐÏ 
> ÔÁÂÕ ÐÒÙÇÁÌ ËÕÄÁ ÕÄÏÂÎÏ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÜÔÉÈ ÓÁÍÙÈ ÆÕÎËÃÉÊ, Á ÎÅ 
> ÏÂÑÚÁÔÅÌØÎÏ ÓÌÅ×Á ÎÁÐÒÁ×Ï? é ÅÝ£ ×ÓÑËÏ-ÒÁÚÎÏ ÉÚ ÜÔÏÊ ÏÂÌÁÓÔÉ?

äÅÄ, Á ÂÅÚ ÀÍÏÒÁ ÅÓÌÉ (ÎÕ, ÉÌÉ × ÍÅÒÕ) - ÅÓÔØ ËÁËÉÅ ÎÉÔØ ÔÒÕÄÙ ÎÁ ÜÔÕ ÔÅÍÕ?
îÏ ÞÔÏÂÙ ÎÅ ÓÉÌØÎÏ ÚÁÍÏÒÏÞÎÏ. ôÁË, ÉÚ ÌÀÂÏÐÙÔÓÔ×Á.
ô.Å. ÎÁ×ÅÒÎÏÅ ÅÓÔØ, ÎÏ ËÏÎËÒÅÔÉËÉ ÂÙ ñ, ×ÏÔ ÔÏÖÅ, "ÎÅÍÏÄÎÏ" ËÏÎÔÒÏÌÙ 
ÒÁÓÓÔÁ×ÌÑÀ - ÒÕËÁÍÉ. ðÒÁ×ÄÁ ÄÅÌÁÌÉ É Á×ÔÏÍÁÔÉËÕ, ÎÏ ÐÏÔÏÍ ÏËÁÚÁÌÏÓØ ÞÔÏ ÏÎÁ 
ÎÅ ×ÓÅ ÍÏÖÅÔ × ÎÁÛÅÊ ÒÅÁÌÉÚÁÃÉÉ, É ÐÒÉËÒÕÔÉÌÉ Ë Á×ÔÏÍÁÔÉËÅ "ÒÕËÁÍÉ 
ÎÁÒÉÓÏ×ÁÎÎÙÅ ÐÏÒÔÑÎËÉ" (ôÉÐÁ TPanel), ÐÏÌÕÞÉÌÏÓØ ÈÕÖÅ, ÞÅÍ ÅÓÌÉ ÂÙ ×ÓÅ 
ÉÚÎÁÞÁÌØÎÏ ÒÕËÁÍÉ ÓÄÅÌÁÌÉ ;) 





Re: Provider hanging

2007-03-05 Пенетрантность Kovalenko Dmitry

> > Я сначала подумал, что сюда занесло нерусский дух ;)
>
> Хто к нам с провайдером придёт...

Бугыгы.

Коваленко Дмитрий.



Re: SATA RAID1+1.5.3 супер win2000: что за код ошибки?

2007-03-05 Пенетрантность Ovchinnikov Vasily


Oleg LOA пишет:

"Ovchinnikov Vasily" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
И вопрос второй: где-то уже вроде поднимали проблему по поводу используемых совместно с FB 
RAID-контроллеров, а также кто и на какие грабли наступал при этом. Напомните, плз, где это было?


FB никакого отношения к RAID не имеет. Настройки RAID общие для приложение типа 
сервер БД.
Да это-то как раз все понятно, что не имеет. FB и знать не знает, на чем база физически лежит: на 
обычном диске или RAID-массиве. Ему путь к ней дали и вперед! Просто казалось (или де жа вю), что 
кто-то где-то когда-то что-то обсуждал про возникшие косяки с RAID-контроллерами. Видать, это было 
не в нашей конфе. Буду искать.


--
Regards,
Ovchinnikov Vasily
ova at tkvc ru



Re: ������� � ����������� �

2007-03-05 Пенетрантность ������ ��������

> á ÍÅÎÑ ÏÔ ×ÉÄÁ ÄÉÚÁÊÎÅÒÁ ÆÏÒÍ É ÍÙÛÉÎÏÊ ×ÏÚÎÉ ÎÁÞÉÎÁÅÔ ÂÅÓÉÔØ. ñ
> ÐÒÏÓÔÏ
> ÎÅ × ÓÏÓÔÏÑÎÉÉ ÁËËÕÒÁÔÎÏ ÒÁÓÓÔÁ×ÉÔØ 20 ÐÏÌÅÊ ÐÏ ÆÏÒÍÅ. ðÒÏÝÅ
> ÓÇÅÎÅÒÉÒÏ×ÁÔØ
> Á×ÔÏÍÁÔÉÞÅÓËÉ - ÔÁË ÏÎÉ ÇÁÒÁÎÔÉÒÏ×ÁÎÎÏ ÁËËÕÒÁÔÎÏÅ ÒÁÓÐÏÌÏÖÅÎÉÅ ÉÍÅÔØ
> ÂÕÄÕÔ

á ÍÅÎÑ ÂÅÓÑÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÇÅÎÅÒÅÎÎÙÅ ÉÎÔÅÒÆÅÊÓÙ, ×ÅÒÉÛØ - ÎÅÔ? ðÏÔÏÍÕ ÞÔÏ
ÀÚÁÂÉÌÉÔÉ Õ ÎÉÈ - ÎÏÌØ. üÔÏ Ñ ÓÏ ÓÔÏÒÏÎÙ ÐÏÌØÚÏ×ÁÔÅÌÑ ÇÏ×ÏÒÀ, ÓÏ ÓÔÏÒÏÎÙ
ÐÒÏÇÒÁÍÍÉÓÔÁ - ËÏÎÅÞÎÏ ËÌÁÓÓ, ÏÄÉÎ ÒÁÚ ÐÒÏÄÕÍÁÌ ×ÓÅ É ÁÊÄÁ Á×ÔÏÍÁÔÏÍ ÌÅÐÉÔØ
ÆÏÒÍÙ. ðÏÈÅÒ ÞÔÏ ÎÁ ÎÉÈ ÐÏ 50-100 ÁÔÒÉÂÕÔÏ× × ÌÉÎÅÅÞËÕ ×ÙÓÔÒÏÅÎÙ, ÇÌÁ×ÎÏÅ
ÂÕÈÇÁÌÔÅÒ × ÌÀÂÏÊ ÍÏÍÅÎÔ ÍÏÖÅÔ ÎÏ×ÙÊ ÁÔÒÉÂÕÔ ÓÁÍ ÎÁÓÔÒÏÉÔØ É ÏÎ ÂÕÄÅÔ
ÐÏÑ×ÌÑÔØÓÑ ÎÁ ÎÏ×ÙÈ ÆÏÒÍÁÈ. èÏÔÑ ÉÚ×ÅÓÔÎÏ ÉÚ ÐÒÁËÔÉËÉ, ÞÔÏ ÐÏÌØÚÏ×ÁÔÅÌÀ ÜÔÏ
× 99% ÓÌÕÞÁÅ× ÎÅ ÐÏÎÁÄÏÂÉÔÓÑ. ÷ ÏÂÝÅÍ ÐÏÞÁÝÅ ÎÁÄÏ Ï ÐÏÌØÚÏ×ÁÔÅÌÑÈ ÄÕÍÁÔØ, ÏÂ
ÉÈ ÕÄÏÂÓÔ×Å × ÐÅÒ×ÕÀ ÏÞÅÒÅÄØ, Á ÎÅ Ï Ó×ÏÅÍ, ÄÌÑ ÎÉÈ ÍÙ ÒÏÄÉÍÙÈ ÒÁÂÏÔÁÅÍ...
_

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ íÏÇÉÌØÎÙÊ.






Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Ded


Yurij wrote:


Множество же объектов класса не во всех реализациях ООП
доступно вообще.


   Не может быть, чтоб в ООП что-то было не то што недоступно, а просто 
некузяво. Не верю!



Действие раскладывается на его отображения в разных аспектах
информационной системы и поэтому описывается сложным объектом.


   А я всю жись думал что действие - это 2+2 :(


Если действие еще и длительное и сложное - то его можно описать
в терминах жизненного цикла объекта, расписать диаграмму состояний,
методы вызывающие переходы, права пользователей на эти методы
и придти в итоге к настраиваемому документообороту.


   Для этого мне сначала придёццо от него уйти...


На склад могут товары попасть без накладной? Например из торгового
зала
обратно отнесут. Если могут - то уже движение по складу имеет смысл
выносить в отдельный объект.


   Накладная есть всего лишь один из видов документов, обуславливающих 
или инициирующих движение товаров. Обожествлять её не надо. А вот ежели 
движение товаров осуществляется ваще без всякой причины и документа, 
обуславливающего-фиксирующего матответсвенность, само собой, то этта, 
канешна, вышший пилотаж настраиваемого документооборота, до которого мне 
ышо расти и расти...



 При проектировании и реализации проще представлять накладную
как один объект, чем как набор из  нескольких связанных
записей в нескольких таблицах.


   Ну и представляй на здоровье. Это действительно один, только 
докУмент, а не объект. Хранящийся в нескольких записях в связанных 
таблицах. И даже, страшно себе представить, ссылающихся походу на туеву 
хучу справочников...



Я просто
не в состоянии аккуратно расставить 20 полей по форме.


   Сочувствую. Кстате, знаю несколько прекрасных психоаналитиков...


Проще
сгенерировать
автоматически - так они гарантированно аккуратное расположение иметь
будут


   Аккуратное - это в смысле симметричное? А про науку эргономику мсье 
чонить слыхал? Типа штоп удобно глазками было охватывать зАраз то, что 
нужно для выполнения определённых информационных функций? И чтоп курсор 
по табу прыгал куда удобно при выполнении этих самых функций, а не 
обязательно слева направо? И ещё всяко-разно из этой области?




Это я так разобрал по слоям структуру - объекты с бизнес-логикой
отдельно,
гуи отдельно, сохранение объектов отдельно.


   А... Не, тут я поддерживаю. Обънкты с бизнес-логикой в гуях 
хранить, право, несподручно...




А потому что при любой попытке сделать для объектных баз что-либо
настолько
же удобное, как sql для получения отчетов и списков (фактически -
обработки
множеств объектов), получается либо птичий язык запросов, либо
многословный код
на императивном птичьем языке :)


  Тогда - ОВСФ?

 > Пределом шизофрении была хранимая процедура, дергающая udf, которая

обращается
к кларионовским таблицам. Скорость работы гораздо выше чем обращение
этим к
таблицам с рабочих мест, так как сервер с fb и файл-сервер с таблицами
были
рядом и соединены гигабитным каналом. И запросы выполнялись на
сервере, а не
данные мотались туда-сюда от клиента к файл-серверу.


  О, знакомые слова и аргументы пошли - быстродействие, 
эффективность... Ничего извращённого я в них не вижу :)


--
Regards. Ded.




Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Yurij

On Mar 5, 7:02 pm, "Alexandr Kochmin" <[EMAIL PROTECTED]> wrote:
>  Y>  Описание объекта в свою очередь состоит из описания его
>  Y> хранения в СУБД(адаптер объект-СУБД), нескольких вариантов
>  Y> описания его интерфейса(адаптеры GUI,адаптеры веб-интерфейса)
>
> вот налицо типичный образец человека, принявшего за веру книги Фаулера.

Я уже два года собираюсь Фаулера почитать и никак не соберусь. А
бредней
про паттерны начитался у последователей в разбросанных по интернету
статьях.

> А теперь признайся, ты реальной проект сделал такой?
> Сколько человеко-веков ушло?

Два с половиной года. Описанная модель реализована частично - нет
редактируемых
описаний метаданных объектов - т.е. для изменений надо
перекомпилировать
код. И скорее всего так и останется, для метаданных будут использованы
атрибуты .NET, а гибкость будет обеспечена загрузкой сборок с
объектами
сервером приложений.

Три проекта уже используются, еще один разрабатывается, это которые
используют Firebird и Delphi. Еще один на mssql и .net, но его надо
жутко рефакторить, чтобы упростить, как раз полностью используя
описанный подход. И документооборот надо делать на основе таблиц
состояний объектов.



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Yurij



On Mar 5, 6:41 pm, Ded <[EMAIL PROTECTED]> wrote:
> Yurij wrote:
> >  Складская операция - сложный объект,
> Стоп-стоп-стоп. Тока што объектом была таблица, а операция - это
> как-никак функция...
Тут возникает путаница из-за того, что таблица выполняет несколько
функций -
это и множество записей, и описание их структуры. А класс - это только
структура
объекта. Множество же объектов класса не во всех реализациях ООП
доступно вообще.

> > состоящий из связанных объектов
> И состоит она (информационная реализация) из кода, а не из объектов.
> А материальная реализация состоит из вытаскивания из транспортного
> средства всякой хрени и ракладывания ея по площадям. Тоиссь, как ни
> крути - действие это, а не объект.

Действие раскладывается на его отображения в разных аспектах
информационной системы и поэтому описывается сложным объектом.

Если действие еще и длительное и сложное - то его можно описать
в терминах жизненного цикла объекта, расписать диаграмму состояний,
методы вызывающие переходы, права пользователей на эти методы
и придти в итоге к настраиваемому документообороту.


> >  Каждый подобъект в своих методах меняет то к чем относится -
> > накладная, как наследник документа, проходит свои этапы(прием,
> > проведение, итд), движение по складу меняет складские запасы, итд.

> Тока одно без другого не имеет смысла ибо нарушает целостность
> данных. Нет, можно, канешна, пойти на прынцып и размножить и запутать
> код окончательно, но чота не хочется.

На склад могут товары попасть без накладной? Например из торгового
зала
обратно отнесут. Если могут - то уже движение по складу имеет смысл
выносить в отдельный объект.


> >  Объекты накладной состоит из шапки(полей объекта)
> > и строк(вложенного списка объектов-строк). Чорт его знает,
> > как автоматически такие объекты отображать на реляционную
> > модель - OR мапперы, hibernate всякие это как-то делают.
 > А точно надо?
 При проектировании и реализации проще представлять накладную
как один объект, чем как набор из  нескольких связанных
записей в нескольких таблицах.

> > Создается или
> > открывается объект "Складская операция", GUI для него генерируется
> > автоматически по описанию объекта,
> Пошол пить иад... Статические у меня гуя, не модно-то как :-( Дурень
> старый, ну нет сделать так, чтоп каждый раз всё само изобреталось,
> проц-то надо же чем-то занимать...

А меня от вида дизайнера форм и мышиной возни начинает бесить. Я
просто
не в состоянии аккуратно расставить 20 полей по форме. Проще
сгенерировать
автоматически - так они гарантированно аккуратное расположение иметь
будут


> >  Описание объекта в свою очередь состоит из описания его
> > хранения в СУБД(адаптер объект-СУБД), нескольких вариантов
> > описания его интерфейса(адаптеры GUI,адаптеры веб-интерфейса)
> А теперь ап стенку... Сколько умных слоф, мне ж до утра не
> осмыслить...
Это я так разобрал по слоям структуру - объекты с бизнес-логикой
отдельно,
гуи отдельно, сохранение объектов отдельно.

> Не надо, не надо скатываться в косный консервативный примитивизьм!
> Так хорошо начал, а тут - датасет, сиквел :-( Надо этта, извернуться
> как-нить из последних сил, наследование применить. И этот, как его,
> полиморфизьм, вот.

А потому что при любой попытке сделать для объектных баз что-либо
настолько
же удобное, как sql для получения отчетов и списков (фактически -
обработки
множеств объектов), получается либо птичий язык запросов, либо
многословный код
на императивном птичьем языке :)


> Не, ну почему. Ацкесс и дбф - вот мудрость жизни. Или это таки всё
> же тоже СУБД?

Когда к системе, использующей firebird, заставляют подключить еще
старые
системы, писанные на фокспо и кларионе - то там еще и не такое
придумается.

Пределом шизофрении была хранимая процедура, дергающая udf, которая
обращается
к кларионовским таблицам. Скорость работы гораздо выше чем обращение
этим к
таблицам с рабочих мест, так как сервер с fb и файл-сервер с таблицами
были
рядом и соединены гигабитным каналом. И запросы выполнялись на
сервере, а не
данные мотались туда-сюда от клиента к файл-серверу.



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Alexandr Kochmin


Y>  Описание объекта в свою очередь состоит из описания его
Y> хранения в СУБД(адаптер объект-СУБД), нескольких вариантов
Y> описания его интерфейса(адаптеры GUI,адаптеры веб-интерфейса)

вот налицо типичный образец человека, принявшего за веру книги Фаулера.
А теперь признайся, ты реальной проект сделал такой?
Сколько человеко-веков ушло?

--
С уважением
Кочмин Александр
Firebird Foundation associate member #257 





Re: проблемы с isc_cancel_events

2007-03-05 Пенетрантность Dmitry Yemanov


Alexey Popov wrote:


Прога асинхронно падает где то в ядре после вызова isc_cancel_events
и последующих вызовов isc_free и  isc_detach_database.


Какой-такой isc_free?


Если сразу после isc_cancel_events поставить MessageBox, то всё
проходит нормально. Ошибка не всегда воспроизводится. Например под
отладчиком не возникает.


Тестовый пример в мыло.


--
Дмитрий Еманов



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность WildSery

On Mon, 05 Mar 2007 19:23:11 +0300, Yurij <[EMAIL PROTECTED]> wrote:
> Т.е. если по хорошему - клиент вообще не касается таблиц, а
> работает с объектами через сервер приложений.

Казалось бы, при чём тут Firebird?

-- 
Сергей Смирнов.



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Ded


Yurij wrote:


 Складская операция - сложный объект,


   Стоп-стоп-стоп. Тока што объектом была таблица, а операция - это 
как-никак функция...



состоящий из связанных объектов


   И состоит она (информационная реализация) из кода, а не из объектов. 
А материальная реализация состоит из вытаскивания из транспортного 
средства всякой хрени и ракладывания ея по площадям. Тоиссь, как ни 
крути - действие это, а не объект.



 Каждый подобъект в своих методах меняет то к чем относится -
накладная, как наследник документа, проходит свои этапы(прием,
проведение, итд), движение по складу меняет складские запасы, итд.


   Тока одно без другого не имеет смысла ибо нарушает целостность 
данных. Нет, можно, канешна, пойти на прынцып и размножить и запутать 
код окончательно, но чота не хочется.



 Объекты накладной состоит из шапки(полей объекта)
и строк(вложенного списка объектов-строк). Чорт его знает,
как автоматически такие объекты отображать на реляционную
модель - OR мапперы, hibernate всякие это как-то делают.


   А точно надо?


 Аггрегированные отображения делать расчетными, считать
по мере надобности на сервере приложений, кэшировать,
т.е. ленивый расчет.


   Можно. И порой удобно, а порой нет.


 Т.е. если по хорошему - клиент вообще не касается таблиц, а
работает с объектами через сервер приложений.


   О. Надо же. Так и есть. Только не из-за ООП, а из-за того, что база 
центра одна, а комплектационные склады и их АРМы и в Чушке, и в 
Голландии, и в Питере, и в Ростове и во Владике. Не открывать же порт 
3050 :-D



Создается или
открывается объект "Складская операция", GUI для него генерируется
автоматически по описанию объекта,


   Пошол пить иад... Статические у меня гуя, не модно-то как :-( Дурень 
старый, ну нет сделать так, чтоп каждый раз всё само изобреталось, 
проц-то надо же чем-то занимать...



 Описание объекта в свою очередь состоит из описания его
хранения в СУБД(адаптер объект-СУБД), нескольких вариантов
описания его интерфейса(адаптеры GUI,адаптеры веб-интерфейса)


   А теперь ап стенку... Сколько умных слоф, мне ж до утра не 
осмыслить...



 Остается описание списков объектов и отчетов - тут в некоторых
случаях хватает обычного датасета, заполняемого sql запросом,
а иногда можно еще сверху прицепить обработку какую-нибудь сложную.


   Не надо, не надо скатываться в косный консервативный примитивизьм! 
Так хорошо начал, а тут - датасет, сиквел :-( Надо этта, извернуться 
как-нить из последних сил, наследование применить. И этот, как его, 
полиморфизьм, вот.



 А, и еще советуют вообще не пользоваться кодом внутри СУБД, типа
хранимых процедур - типа "чтобы можно было сервер заменить на другой"
Но по-моему, "замена СУБД" это иллюзия :)


   Не, ну почему. Ацкесс и дбф - вот мудрость жизни. Или это таки всё 
же тоже СУБД?


--
Regards. Ded.



проблемы с isc_cancel_events

2007-03-05 Пенетрантность Alexey Popov


 Прога асинхронно падает где то в ядре после вызова isc_cancel_events
и последующих вызовов isc_free и  isc_detach_database.
Если сразу после isc_cancel_events поставить MessageBox, то всё
проходит нормально. Ошибка не всегда воспроизводится. Например под
отладчиком не возникает.
 Т.к. для работы с эвентами АПИ создаёт поток, то наверняка какие
то косяки с синхорнизацией внутри.


--
--- Home Page http://ok.novgorod.net/ap ---




Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Yurij


On Mar 5, 5:50 pm, Ded <[EMAIL PROTECTED]> wrote:
> > Что об этом думает уважаемая публика.
> Вот скажи-ка, мил человек. Вспоминая многострочные
> докУменты-проводки. Вот у мну, например, процедура завершения складской
> операции, скажем, приёмки, задевает 13 таблиц:
> - хидер входной накладной
> - маршрутный лист транспортной партии
> - агрегированный потоварно состав входной накладной
> - подетальный товарный состав входной накладной
> - резервы (назначение товаров) в составе накладной
> - хидер складской операции
> - агрегированный потоварно состав складской операции
> - подетальный состав складской операции
> - агрегированное состояние запасов на складе потоварно
> - состояние запасов на складе подетально
> - назначение запасов на складе
> - состояние запасов по ГТД
> - средняя себестоимость товаров на складе

> Это без бухгалтерии которая отдельно и в своём темпе. Может ещё чего
> забыл, давненько туда не заглядывал, работает как часики. Ну и методом
> какой из этих таблиц объявим сию процедуру? Али просто вместо Update
> Table бум писать Table.Update?

 Складская операция - сложный объект, состоящий из связанных объектов
накладной, объекта-списка бухгалтерских проводок, объекта-списка
движений по складу, чего еще там душе угодно.

 Каждый подобъект в своих методах меняет то к чем относится -
накладная, как наследник документа, проходит свои этапы(прием,
проведение, итд), проводки меняют бухгалтерские остатки(если
их хранить), движение по складу меняет складские запасы, итд.

 Объекты накладной состоит из шапки(полей объекта)
и строк(вложенного списка объектов-строк). Чорт его знает,
как автоматически такие объекты отображать на реляционную
модель - OR мапперы, hibernate всякие это как-то делают.

 Аггрегированные отображения делать расчетными, считать
по мере надобности на сервере приложений, кэшировать,
т.е. ленивый расчет.

 Т.е. если по хорошему - клиент вообще не касается таблиц, а
работает с объектами через сервер приложений. Создается или
открывается объект "Складская операция", GUI для него генерируется
автоматически по описанию объекта, выполняемые операции
дергают методы на сервере приложений, который в свою очередь
уже отображает изменения в СУБД.

 Описание объекта в свою очередь состоит из описания его
хранения в СУБД(адаптер объект-СУБД), нескольких вариантов
описания его интерфейса(адаптеры GUI,адаптеры веб-интерфейса)

 Остается описание списков объектов и отчетов - тут в некоторых
случаях хватает обычного датасета, заполняемого sql запросом,
а иногда можно еще сверху прицепить обработку какую-нибудь сложную.

 А, и еще советуют вообще не пользоваться кодом внутри СУБД, типа
хранимых процедур - типа "чтобы можно было сервер заменить на другой"
Но по-моему, "замена СУБД" это иллюзия :)



Re: Provider hanging

2007-03-05 Пенетрантность sasha


Ой, промахнулся :-)



Re: Provider hanging

2007-03-05 Пенетрантность Ded


Alexandr Kochmin wrote:


Я сначала подумал, что сюда занесло нерусский дух ;)


   Хто к нам с провайдером придёт...

--
Regards. Ded.



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Ded


sw wrote:

Вот я подумал почему нельзя использовать некоторые приимущества ООП не 
отходя от Коддовской теории.


   Однажды лебедь раком щуку...


Например:
Таблица - Класс,


   Не-а. Это описатель свойств множества.


Столбцы таблицы - Поля объекта,


   С натяжкой покатит.


Процедуры для получения и записи строки таблицы - методы доступа


   Тоись, вместо селектов с джойнами и прочей отсталой фигни пишем 
методы таблицы. Круто.


Процедура для обработки обной строки таблицы (удаление, изменение) - 
метод объекта


   Тоись, вместо излишне универсальных апдейтов с инсёртами и делетами 
пишем методы таблицы. Ещё круче.



Процедура выполняющая обработки связанные с данными таблицы - метод класса


   Тут мне вообще умишка не хватило понять обо што речь...


Информация в метаданных - Поля класса


   То ли дежавю со столбцами то ли опять умишком не вышел...

Конечно все эти идеи далеко не новы. 


   Иопть! А я и не знал...

А в том чтобы при проектировании схемы позаботится о том, чтобы данная 
Таблица "могла" при необходимости выглядить как класс.


   Мы поймаем чёрную кошку в тёмной комнате, даже если её там нет.

Т.е. при наличии хорошо отработанной "терминологии", конвенций (коими 
обладает ООП) и мощности реляционной теории, воплощенной в SQL, можно 
снизить сложность проектирования и сопровождения.


   Сумнительно. Мож для извращённого ума понятие сложности какое-то 
другое, а мож это мой извращённый...


Например ООП элементарно может реально снизить "повторение" одинакового 
кода в разных местах, уменьшить перекрестные ссылки, сделать код более 
удобным для изменений.


   Только ООП?


В тоже время не ставить палки в колёса реляционной теории.


   Ну, палки вставить мы можем когда и как угодно, нивапрос...


Что об этом думает уважаемая публика.


   Вот скажи-ка, мил человек. Вспоминая многострочные 
докУменты-проводки. Вот у мну, например, процедура завершения складской 
операции, скажем, приёмки, задевает 13 таблиц:


- хидер входной накладной
- маршрутный лист транспортной партии
- агрегированный потоварно состав входной накладной
- подетальный товарный состав входной накладной
- резервы (назначение товаров) в составе накладной
- хидер складской операции
- агрегированный потоварно состав складской операции
- подетальный состав складской операции
- агрегированное состояние запасов на складе потоварно
- состояние запасов на складе подетально
- назначение запасов на складе
- состояние запасов по ГТД
- средняя себестоимость товаров на складе

Это без бухгалтерии которая отдельно и в своём темпе. Может ещё чего 
забыл, давненько туда не заглядывал, работает как часики. Ну и методом 
какой из этих таблиц объявим сию процедуру? Али просто вместо Update 
Table бум писать Table.Update?


P.S. Наверное большинство, так или иначе попадали на 
объектно-ориентированный "крючок",


   Хвала создателю, уберёг.

--
Regards. Ded.



Re: Provider hanging

2007-03-05 Пенетрантность Alexandr Kochmin


s>
s>>> Hi!
s>>
s>> переведи
s>
s> Переводится как Ё!
s>
s> PS А то вы не знаете что конференция альвареза рядом. Я тут в большой
s> спешке всё делал, напултал, ошибся :-)
s>

Я сначала подумал, что сюда занесло нерусский дух ;)

--
С уважением
Кочмин Александр
Firebird Foundation associate member #257 





Re: Provider hanging

2007-03-05 Пенетрантность sasha



s> Hi!

переведи


Переводится как Ё!

PS А то вы не знаете что конференция альвареза рядом. Я тут в большой 
спешке всё делал, напултал, ошибся :-)




Re: Provider hanging

2007-03-05 Пенетрантность Alexandr Kochmin


s>
s> Hi!

переведи

--
С уважением
Кочмин Александр
Firebird Foundation associate member #257 





Re: Provider hanging

2007-03-05 Пенетрантность Alex Cherednichenko

Привет, sasha!
Вы пишешь  05 марта 2007:

 s> You also can try to specify ServerType=1 or charset NONE in connection 
 s> string to check that all fine in this cases.

"Папа, а с кем это ты сейчас разговаривал?.." (С)


--
With best regards, Alex Cherednichenko.




Provider hanging

2007-03-05 Пенетрантность sasha


Hi!

We made test application to reproduce provider hanging (tested on 1.7.1 
and 2.1).


The situation is next:

1) We have database with default character set NONE

2) We connecting to database with character set UNICODE_FSS and storing 
our UNICODE_FSS data in NONE fields


3) _Sometimes_, when posting string length near max. NONE chars count 
provider hangs


4) Provider does not hangs when working via febedded.dll or specifying 
NONE char set.




To reproduce the bug:

1) Run attached application

2) Replace path to DB file (longvarchars.fdb in application folder)

3) Select correct path to file war1.xml (also in project folder)

4) Press "Run test"


You also can try to specify ServerType=1 or charset NONE in connection 
string to check that all fine in this cases.



I've uploaded test at http://vps110.dotnethost.at/LongVarChars2.rar



Re: SATA RAID1+1.5.3 супер win2000: что за код ошибки?

2007-03-05 Пенетрантность Oleg LOA
"Ovchinnikov Vasily" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> И вопрос второй: где-то уже вроде поднимали проблему по поводу используемых 
> совместно с FB 
> RAID-контроллеров, а также кто и на какие грабли наступал при этом. 
> Напомните, плз, где это было?

FB никакого отношения к RAID не имеет. Настройки RAID общие для приложение типа 
сервер БД.

Re: Реализация серверной логики

2007-03-05 Пенетрантность Мадорский Г . В .



"Alex Cherednichenko" <[EMAIL PROTECTED]> 
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]


Привет, Мадорский!
Вы пишешь  05 марта 2007:

[Sorry, skipped]
МГ> Работа с первыми двумя состояниями происходит так примерно:
МГ> Есть пара SP - проведение/отмена проведения документа.

Хм...
Что-то ты, Глеб, недоговариваешь...
;о)

:)))

Рука дрогнула, а дописать таки не успеваю... Пора бежать.

With b/r. Gleb. 





SATA RAID1+1.5.3 супер win2000: что за код ошибки?

2007-03-05 Пенетрантность Ovchinnikov Vasily


Глюкнулся сервер при ресторе базы на аппаратный RAID1 (модель не знаю, юзвери 
далеко, но могу узнать)
В логе винды следующее:

Тип события:Ошибка
Источник события:FirebirdGuardianDefaultInstance
Категория события:Отсутствует
Код события:281
Дата:05.03.2007
Время:15:04:29
Пользователь:Нет данных
Компьютер:SRV-AV
Описание:
Не найдено описание для события с кодом ( 281 ) в источнике ( FirebirdGuardianDefaultInstance ). 
Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для 
отображения сообщений удаленного компьютера. В записи события содержится следующая информация: 
Abnormal Termination: C:\Program Files\Firebird\Firebird_1_5\bin\fbserver.exe: terminated abnormally 
(4294967295)ote, a number o|.


После numer в конце кракозямбы.

Помню, были мнения, что гвардеец нафиг ненужен. Снести его нафиг, чтоб не 
путался под ногами?
Хотя, он ведь тут только просигнализировал, что Firebird-бабай кирдык... А ведь в логе firebird.log 
чистота...


И вопрос второй: где-то уже вроде поднимали проблему по поводу используемых совместно с FB 
RAID-контроллеров, а также кто и на какие грабли наступал при этом. Напомните, плз, где это было?

У пользователей собрано зеркало на PCI RAID-контроллере на обычных SATA-дисках.

--
Regards,
Ovchinnikov Vasily
ova at tkvc ru



Re: Реализация серверной логики

2007-03-05 Пенетрантность Alex Cherednichenko

Привет, Мадорский!
Вы пишешь  05 марта 2007:

[Sorry, skipped] 
 МГ> Работа с первыми двумя состояниями происходит так примерно:
 МГ> Есть пара SP - проведение/отмена проведения документа. 

Хм...
Что-то ты, Глеб, недоговариваешь... 
;о)

--
With best regards, Alex Cherednichenko.




Re: Реализация серверной логики

2007-03-05 Пенетрантность Мадорский Г . В .


У меня примерно так реализовано:
У документа 3 состояния - не проведен, проведен, закрыт (последнее - 
документ неизменяемый, корректировка только сторнированием). Работа с 
первыми двумя состояниями происходит так примерно:
Есть пара SP - проведение/отмена проведения документа. 





Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Yurij


sw:
> Много копий и не только переломано на фронте R vs OO.
...
> P.S. Наверное большинство, так или иначе попадали на объектно-ориентированный 
> "крючок",
> хотелось бы узнать опыт и сделанные выводы.

 Какая-то печальная тема. Проблема согласования кода и метаданных для
языков со статическими типами все равно остается. В итоге все сводится
к OR мапперам и автоматической генерации кода, который получается
сырым и его приходится доделывать напильником. А уж что при этом
придется делать при изменении схемы базы данных, да еще если на
работающей базе - лучше даже не думать.



Re: Firebird 2 под Ubuntu

2007-03-05 Пенетрантность Ovchinnikov Vasily


Valery Gruzdev пишет:
В общем, там в исходниках скрипт autogen.sh, он все делает, кроме 
install. Если чего не хватает - ругается.



или если версии autoconf и пр. установлены старые - тоже ругнется. Скажет, чего 
хочет...
У меня вот в RedHat 7.3, помимо прочего, еще и glibc старенький (на что мне честно указано было). 
Из-за этого не могу даже 1.5.3 поставить. Обновив glibc, собрал было Firebird 1.5.3, но получил кучу 
неработающих других приложений, собранных со старым glibc :-(

Столько всего перекомпилять придется - просто жуть. Времени нету - забил пока.
Но если все ОК по версиям, то проходит без сучка и задоринки.

--
Regards,
Ovchinnikov Vasily
ova at tkvc ru



Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность sw



[мечтания автора грубо поскипаны]
s> В тоже время не ставить палки в колёса реляционной теории.
s> Что об этом думает уважаемая публика.



утопизм.
буль-буль.


Спасибо Ихтиандр. //без обид :-)

PS. Тут анекдот вспомнился:
Значит, попал к опытному сантехнику ЖЭКа студент ПТУшник на практику.
А тут аврия, мол потоп. Приежают - точно, подвал затоплен, пахнет фиклиями, они 
же и плавают.
Ну че делать, раздевается опытный и ныряет туда.
Минуту нет, две минуты нет. Студент думает - спасать же надо, но как посмотрел 
на фикалии - передумал.
Тут тот выплывает и говорит - "ключ на 12 давай", берет ключ и снова бульк..
Через какое-то время снова - "трубный ключ" - снова бульк.
Вдруг вода закрутилась и воронкой ушла куда-то.
Выходит опытный сантехник и, оттряхиваясь, что-то выплёвывая и высмаркиваясь, 
говорит:
"Учись студент, а то будешь всю жизнь ключи подавать". 





Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность sasha


Если в предметной области паралельно использовать оба подхода, для 
"абстракции".


Например:
Таблица - Класс,
Столбцы таблицы - Поля объекта,
Процедуры для получения и записи строки таблицы - методы доступа
Процедура для обработки обной строки таблицы (удаление, изменение) - 
метод объекта

Процедура выполняющая обработки связанные с данными таблицы - метод класса
Информация в метаданных - Поля класса
и т.д.


По моему это тянет максимум на задачу "телефонный справочник", потому 
как в реальной задаче этого недостаточно. Обычно добавляют промежуточный 
слой, который описывает что с чем и как связано. У нас в первой версии 
эта связь описывалась атрибутами, а во второй версии конфигурационным 
файлом. В общем случае класс может не соотвествовать ни одной таблице 
или представлению и его поля могут не совпадать с етеми полями, которые 
есть в БД.




Re: Объекты в реляционной СУБД

2007-03-05 Пенетрантность Alex Cherednichenko

Привет, sw!
Вы пишешь  05 марта 2007:

[мечтания автора грубо поскипаны] 
 s> В тоже время не ставить палки в колёса реляционной теории.
 s> Что об этом думает уважаемая публика.

утопизм.
буль-буль.

--
With best regards, Alex Cherednichenko.




Re: Реализация серверной логики

2007-03-05 Пенетрантность WildSery

On Mon, 05 Mar 2007 14:26:11 +0300, sw <[EMAIL PROTECTED]> wrote:
> Также получается, что клиент не гласно получает право на отмену проводки.
> Различать "отмену проводки" и "перепроводку" не очень и возможно.

Я вот чего понять не могу - что за операция такая, "перепроводка", и зачем она 
нужна?

-- 
Сергей Смирнов.



Объекты в реляционной СУБД

2007-03-05 Пенетрантность sw


Всем привет.

Много копий и не только переломано на фронте R vs OO.
Но часто у сторонников этих подходов наблюдается какая-то крайность взглядов.
Либо суют OO где не поподя, либо шарахаются от ООП - "не лучше мы постаринке".

Пытаться совмещать - это тоже компромис не впользу обоих подходов.

Вот я подумал почему нельзя использовать некоторые приимущества ООП не отходя 
от Коддовской теории.

Если в предметной области паралельно использовать оба подхода, для "абстракции".

Например:
Таблица - Класс,
Столбцы таблицы - Поля объекта,
Процедуры для получения и записи строки таблицы - методы доступа
Процедура для обработки обной строки таблицы (удаление, изменение) - метод 
объекта
Процедура выполняющая обработки связанные с данными таблицы - метод класса
Информация в метаданных - Поля класса
и т.д.

Конечно все эти идеи далеко не новы. И тут вопрос не в том чтобы Таблицу 
превратить в Класс.
А в том чтобы при проектировании схемы позаботится о том, чтобы данная Таблица 
"могла" при необходимости выглядить как класс.

Т.е. при наличии хорошо отработанной "терминологии", конвенций (коими обладает ООП) и мощности реляционной теории, воплощенной в 
SQL, можно снизить сложность проектирования и сопровождения.


Например ООП элементарно может реально снизить "повторение" одинакового кода в разных местах, уменьшить перекрестные ссылки, сделать 
код более удобным для изменений.

В тоже время не ставить палки в колёса реляционной теории.

Что об этом думает уважаемая публика.

Заранее спасибо.

P.S. Наверное большинство, так или иначе попадали на объектно-ориентированный 
"крючок",
хотелось бы узнать опыт и сделанные выводы. 





Re: Реализация серверной логики

2007-03-05 Пенетрантность sw



все мои объекты :), только там бухгалтеры - не самые главные люди, главные - 
хозяева



идя навстречу жизненным реалиям сделали фазу - "недействительный документ", но 
править или удалять не даем по-прежнему


А я тут ещё и автоматическую перепроводку зависымых документов прикрутил 
(правда не знаю может на рабочей базе отключу).

Вообще-то исходную проблему я решил добавив "промежуточные" ("буферные", 
"исторические") таблицы.
Клиент сперва пишет (вся работа через ХП) в промежуточные шапку и табличную 
часть.
Затем вызывается процедура ..._POST (для документов есть ещё и параметр 
С_ПРОВОДКОЙ,
которая проверяет и записывает данные в основную таблицу.

Просто сделал всё это и задумался - может оно и не стоило того.
Хотя вроде проблем никаких и небыло. 





Re: а мож вот такую фичу?

2007-03-05 Пенетрантность Vlad Horsun

"Plotnikov Y" ...

> Подозрительно однако молчат DY&HV ;))

У тебя хороший слух :)

--
Хорсун Влад




Re: Реализация серверной логики

2007-03-05 Пенетрантность Boulitchev Aleksey


нихрена не значит. отменить документ можно только обратным документом - 
сторно, т.е.

удалить тоже нельзя.



менять можно только непроведенные документы


Мил человек скажи, где такие предприятия (может перерееду...)  :-)


По правде говоря я и сам бы хотел, что бы документы после проводки не 
менялись, но заказчик непреклонен.


все мои объекты :), только там бухгалтеры - не самые главные люди, главные - 
хозяева


идя навстречу жизненным реалиям сделали фазу - "недействительный документ", 
но править или удалять не даем по-прежнему


--
Булычев Алексей
http://www.stella-npf.ru




Re: � ��� ��� ����� ����?

2007-03-05 Пенетрантность Plotnikov Y

á Ñ ÞÏ? ñ ÎÉÞÏ ;))) Ñ ÐÒÏÓÔÏ ÍÉÍÏ ÐÒÏÈÏÄÉÌ. ñ ÞÉÓÔÏ ÕÍÏÚÒÉÔÅÌØÎÏ ;) 





Re: Реализация серверной логики

2007-03-05 Пенетрантность Sergiy S. Tkachenko


sw пишет:
Вводим Расход 10 изделий, проводим, меняем на 5 изделий и !!! не 
перепроводим, хотя документ имеет флаг проводки.

ну а если так в триггере
IF (OLD.QUANTITY <> NEW.QUANTITY) THEN
BEGIN
  [RESTORE WITH OLD.QUANITY]
  [APPLY NEW.QUANTITY]
END

еще я в шапке заказа ,например, использую два поля
CLOSED SMALLINT DEFAULT 0 NOT NULL CHECK (CLOSED IN (0, 1))
UPDATE_RESTS SMALLINT DEFAULT 0 NOT NULL CHECK (CLOSED IN (0, 1))

Состояние поля CLOSED шапки в приложении позволяет (0) или запрещает (1)
вставку новых записей в элементы.

состояние поля UPDATE_RESTS контролирует изменение остатков на складе.

нельзя поменять наличие если CLOSED = 1 и UPDATE_RESTS = 1.

Вся логика полностью на сервере контролируется триггерами



Re: Реализация серверной логики

2007-03-05 Пенетрантность Boulitchev Aleksey



Значит ИЗМЕНЕНИЕ <---> НЕТ ПРОВОДКИ <---> ПРОВЕДЕННЫЙ

Т.е. чтобы изменить проведённый документ нужно отменить его проводку.

Хорошо, а если изменённый документ не проводится нужно в ручную отменить 
изменения и перепровести?


Также получается, что клиент не гласно получает право на отмену проводки.
Различать "отмену проводки" и "перепроводку" не очень и возможно.


нихрена не значит. отменить документ можно только обратным документом - 
сторно, т.е.

удалить тоже нельзя.

менять можно только непроведенные документы
--
Булычев Алексей
http://www.stella-npf.ru




Re: Реализация серверной логики

2007-03-05 Пенетрантность sw



наши документы имеют фазу



0 - созданный
10 - редактирование
50 - проведен



на головную и детальную таблицы вешаются триггеры, которые запрещают изменения 
документов с фазой больше 50



смена фаз - хранимые процедуры, в т.ч. с вычислениями и проверками


Значит ИЗМЕНЕНИЕ <---> НЕТ ПРОВОДКИ <---> ПРОВЕДЕННЫЙ

Т.е. чтобы изменить проведённый документ нужно отменить его проводку.

Хорошо, а если изменённый документ не проводится нужно в ручную отменить 
изменения и перепровести?

Также получается, что клиент не гласно получает право на отмену проводки.
Различать "отмену проводки" и "перепроводку" не очень и возможно. 





Re: Реализация серверной логики

2007-03-05 Пенетрантность Ded


sw wrote:


Ded> "Проводка" - понятие обширное, да ты и говоришь, что с этим у тебя
Ded>вроде проблем нет.

Ну я имел ввиду, что под проводку попадает один объект и если принимать 
ID документа в хранимку, то легко гарантировать : либо всё либо ничего в 
рамках лигики.


   Это и на транзакциях хорошо гарантируется. Но опять же - что 
понимать под проводкой. Бухгалтерские у нас через флаг в хидере, что-то 
делать можно только при его отсутствии. Надо - сначала откатите бухгалтерию.



Ded> А согласованность агрегатных полей шапки и строк мы,
Ded>например, обеспечиваем ведением агрегатных полей шапки своих документов
Ded>только на триггерах от строк, без прямого ввода-редактирования. При
Ded>регистрации чужих - два поля, типа сумма по составу и сумма по
Ded>документу, при отклонениях ворнинг на разбор полётов.

А если меняется только номенклатура, а не количественные показатели 
(суммы в т.ч.): были каски - стали маски?


   А какая разница? При снятии позиций отработают и при установке новых 
отработают. Неизменность при этом каких-то цифр - частный случай, не 
выпадающий из общего алгоритма.



Да и "разбор полётов" апосля не всегда тривиален.


   Чужие (входящие) документы должны регистрироваться as is, это закон 
природы. Если в них ошибки - должна быть инициирована соответсвующая 
организационная процедура, суть и результат которой depends.


--
Regards. Ded.



Re: Реализация серверной логики

2007-03-05 Пенетрантность sw


Ded> "Проводка" - понятие обширное, да ты и говоришь, что с этим у тебя
Ded>вроде проблем нет.

Ну я имел ввиду, что под проводку попадает один объект и если принимать ID документа в хранимку, то легко гарантировать : либо всё 
либо ничего в рамках лигики.


Ded> А согласованность агрегатных полей шапки и строк мы,
Ded>например, обеспечиваем ведением агрегатных полей шапки своих документов
Ded>только на триггерах от строк, без прямого ввода-редактирования. При
Ded>регистрации чужих - два поля, типа сумма по составу и сумма по
Ded>документу, при отклонениях ворнинг на разбор полётов.

А если меняется только номенклатура, а не количественные показатели (суммы в 
т.ч.): были каски - стали маски?

Да и "разбор полётов" апосля не всегда тривиален. 





Re: а мож вот такую фичу?

2007-03-05 Пенетрантность Ded


Plotnikov Y wrote:

Подозрительно однако молчат DY&HV ;)) 


   Ты бы луччи радовался що я молчууу...

--
Regards. Ded.



Re: � ��� ��� ����� ����?

2007-03-05 Пенетрантность Plotnikov Y

> ÷Ï-×Ï,
> íÏÖÎÏ ÕÇÁÄÁÀ ÓÌÅÕÀÝÉÊ ÒÅË×ÅÓÔ:
> ÷ ÐÒÏÃÅÄÕÒÅ ÕÚÎÁÔØ WHERE ÕÓÌÏ×ÉÑ, ËÏÔÏÒÙÅ ÎÁ ÎÅ£ ÎÁÌÏÖÅÎÙ. :-)

õÇÕ, Á ÐÏÔÏÍ ÇÒÕÐÂÁÊ, ÏÒÄÅÒÂÁÊ, ÈÁ×ÉÎÇ É ÔÅËÓÔ ÐÒÏÃÅÄÕÒÙ, ËÏÔÏÒÁÑ ×ÙÚÙ×ÁÅÔ 
ÎÁÛÕ ;)))
îÅ, ÜÔÏ Ñ×ÎÏ ÐÅÒÅÂÏÒ - ÞÅ ÍÅÛÁÅÔ ÓÕ×ÁÔØ WHERE ×ÎÕÔÒØ ÔÏ?

> PS. èÏÔÑ ÐÒÉ ÏÐÒÅÄÅÌ£ÎÎÏÍ "ÄÉÚÁÊÎÅ" ÄÁÎÎÁÑ ÆÉÞÁ ÓÍÏÔÒÅÌÁÓØ ÂÙ ÎÉÞÅÇÏ.
> íÏÖÎÏ ÐÏÓÌÅ ÂÕÌÅ×ÏÇÏ ÔÉÐÁ ÄÅÌÁÔØ.

÷ ÐÒÉÎÃÉÐÅ ÅÓÔØ ÖÅ ÞÔÏ ÔÏ ÔÉÐÁ ËÏÎÔÅËÓÔÁ, ÄÏÐÕÓÔÉÍ × ÔÒÉÇÇÅÒÁÈ new, old; ÔÕÔ 
ÂÙ ÞÔÏ ÔÏ ÔÉÐÁ ÔÏÇÏ ÖÅ.

Ô.Å. ËÁË × ÔÒÉÇÇÅÒÁÈ if (inserting) then ...
ÔÁË ÖÅ É ÔÕÔ if (requested(fieldname)) then ...

ðÏÄÏÚÒÉÔÅÌØÎÏ ÏÄÎÁËÏ ÍÏÌÞÁÔ DY&HV ;)) 





Re: Реализация серверной логики

2007-03-05 Пенетрантность Dmitri Kuzmenko


Hello, sw!

sw wrote:

Как кто решает подобные вопросы?


это workflow. которое надо прикручивать к БД.
например, при изменении состава документов "отменять" его.
И т.д. Я вообще не вижу тут вопроса, ибо все это относится
к состояниям, а следовательно должно решаться определением
состояний и переходов между ними.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Реализация серверной логики

2007-03-05 Пенетрантность Boulitchev Aleksey



Допустим есть документ с табличной частью, скажем накладная.

Логика ввода нового документа:
Пишем в NAKLS шапку.
Пишем в NAKLS_T табличную часть, (с сылкой на шапку).
Документ "проводится", т.е. формируются "операции"


наши документы имеют фазу

0 - созданный
10 - редактирование
50 - проведен

на головную и детальную таблицы вешаются триггеры, которые запрещают 
изменения документов с фазой больше 50


смена фаз - хранимые процедуры, в т.ч. с вычислениями и проверками



--
Булычев Алексей
http://www.stella-npf.ru




Re: Агрегатные домены

2007-03-05 Пенетрантность Oleg LOA
"Yurij" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> возвращение в запросах не плоских таблиц, а множеств объектов, и
> прочий
> ужас, от которого Кодд в гробу перевернется.

Чего ему переворачиваться? Это както противоречит ветхому завету?

Re: Реализация серверной логики

2007-03-05 Пенетрантность Ded


sw wrote:

PS. Просьба не концентрироваться на приведенном примере. Вопрос должен 
решаться обшим подходом, так как разных документов (и других 
"многострочных" объектов) много.


   "Проводка" - понятие обширное, да ты и говоришь, что с этим у тебя 
вроде проблем нет. А согласованность агрегатных полей шапки и строк мы, 
например, обеспечиваем ведением агрегатных полей шапки своих документов 
только на триггерах от строк, без прямого ввода-редактирования. При 
регистрации чужих - два поля, типа сумма по составу и сумма по 
документу, при отклонениях ворнинг на разбор полётов.


--
Regards. Ded.



Re: [Фичи] Агрегатные домены

2007-03-05 Пенетрантность Oleg LOA
"Tonal" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> Что скажите, разработчики?

goto Oracle

Re: Агрегатные домены

2007-03-05 Пенетрантность Yurij



On Mar 5, 11:06 am, WildSery <[EMAIL PROTECTED]> wrote:
> > я уже встречал такие архитектурные решения - все данные объекта,
> 1C ?

В 1С вроде попроще - там изменения конфигурации предметной области
автоматом отражаются в изменения структуры таблиц.



Re: а мож вот такую фичу?

2007-03-05 Пенетрантность Oleg LOA
"Alexandr Kochmin" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> 
> Предлагается обсудить такую штуку.
> Сделать способ получения внутри процедуры списка полей, которые из нее 
> запросили.

Нужен алгоритм построения дерева зависимостей операторов и выходных параметров.

Re: Firebird 2 под Ubuntu

2007-03-05 Пенетрантность Valery Gruzdev



"Сергей Фетискин" сообщил/сообщила в новостях следующее:


configure это стандартная утилита?


Это скрипт. Часто он идет прямо в составе исходников, в случае с firebird он 
строится пакетом autoconf.
Соответственно, autoconf должен быть предварительно установлен. У меня - уже 
был ;-)

Еще libtool нужен.

В общем, там в исходниках скрипт autogen.sh, он все делает, кроме install. 
Если чего не хватает - ругается.


Grue




Re: а мож вот такую фичу?

2007-03-05 Пенетрантность sw



Нравится мысль.
Уже вижу, где можно использовать такую фичу.



Хотя, имхо - рюшечка, и приоритет у ней соответствующий.


Во-во,
Можно угадаю слеующий реквест:
В процедуре узнать WHERE условия, которые на неё наложены. :-)

PS. Хотя при определённом "дизайне" данная фича смотрелась бы ничего.
Можно после булевого типа делать. 





Реализация серверной логики

2007-03-05 Пенетрантность sw


Привет всем форумчанам.

Вопрос такой (без жира).

Допустим есть документ с табличной частью, скажем накладная.

Логика ввода нового документа:
Пишем в NAKLS шапку.
Пишем в NAKLS_T табличную часть, (с сылкой на шапку).
Документ "проводится", т.е. формируются "операции"

Логика изменения проведенного документа:
Изменяем в NAKLS шапку.
Изменяем в NAKLS_T табличную часть, (с сылкой на шапку)
добовляем строки удаляем строки.
Отмена проводки (т.е. отмена операций по предыдущей редакции)
Документ "проводится", т.е. формируются "операции".

Как видно принципиальна возможность изменения и "перепроводки" уже 
"проведенного" документа.
Но по идее у пользователя не должно быть возможности изменить документ не скоректировав проводки, что бы содержание "проведенного" 
документа всегда соответствовало его "операциям".

Пример:
Вводим Расход 10 изделий, проводим, меняем на 5 изделий и !!! не перепроводим, 
хотя документ имеет флаг проводки.

Теперь собственно сам вопрос:
Как можно гарантировать, что "документ" и его "операции" всегда согласуются?

Проблема возникает от того, что клиент всегда может закомитить 
последовательность операций.
Можно, конечно, создать хранимку, но как в ней совместить "запись" шапки и 
табличной части?
С проводкой (и отменой проводки) проще она легко реализуется через хранимку.

Конечно можно триггер на шапку и список поставить, но иметь в тригере функции 
"расчетного" характера, - не то.

К тому же клиент может и неиметь права "отменять" проводку, а только 
"перепровести".

Как кто решает подобные вопросы?

PS. Просьба не концентрироваться на приведенном примере. Вопрос должен решаться обшим подходом, так как разных документов (и других 
"многострочных" объектов) много.


Заранее спасибо. 





Re: Будут ли встроенные функции в 2.1?

2007-03-05 Пенетрантность Dmitry Yemanov


WildSery wrote:


А если попытаться перекомпилировать функцию, использующую BIN_AND,
то останется на UDF, или переползёт на встроенную, или просто выругается?


Останется UDF. В отличие от ситуации до сих пор.


--
Дмитрий Еманов



Re: Агрегатные домены

2007-03-05 Пенетрантность WildSery

On Sat, 03 Mar 2007 22:59:22 +0300, Yurij <[EMAIL PROTECTED]> wrote:

> я уже встречал такие архитектурные решения - все данные объекта,
> хранятся в одном блобе в виде xml, а в реляционные
> таблицы вытаскиваются только те части объекта, которые нужны для
> запросов.

1C ?

-- 
Сергей Смирнов.



Re: Firebird 2 под Ubuntu

2007-03-05 Пенетрантность Сергей Фетискин


On Mon, 05 Mar 2007 10:57:20 +0300, Valery Gruzdev  
<[EMAIL PROTECTED]> wrote:






Я собирал недавно классик, правда, не под убунтой, а под дебианом, но  
они родственники.

Камней не нашел, все в классическом варианте:

 tar -jzf Firebird-2.0.0.12748.tar.bz2
 cd firebird
 make
<курим, пьем кофе с бубликами>
 sudo sh
 make install

И оно заработало ;-)

Не помню только, configure ручками вызывал, или оно само из make  
дергается.
Если каких-то библиотек или пакетов не установлено, то как раз configure  
об этом и скажет, а дальше по обстоятельствам.



configure это стандартная утилита?
до этого из исходников не собирал ничего, поэтому может идиотские вопросы  
такие.



--
Фетискин Сергей
http://stella-npf.ru



Re: ошибка загрузки DLL

2007-03-05 Пенетрантность WildSery

On Sat, 03 Mar 2007 21:56:07 +0300, Тренер <[EMAIL PROTECTED]> wrote:
> на разнах компьютерах. Но вот сегодня столкнулся со этой ошибкой.

С "этой" - это значит "точка входа не найдена"?
Потому как "ошибка загрузки DLL" - явно не то, что ты увидел.
Думаю, тебе может помочь FILEMON.

-- 
Сергей Смирнов.



Re: а мож вот такую фичу?

2007-03-05 Пенетрантность WildSery

On Sun, 04 Mar 2007 09:56:30 +0300, Kovalenko Dmitry <[EMAIL PROTECTED]> wrote:

> Кстати мысль. Нафуя список - нужно к OUT-параметрам прикрутить
> свойство типа RealRequired.

Нравится мысль.
Уже вижу, где можно использовать такую фичу.

Хотя, имхо - рюшечка, и приоритет у ней соответствующий.

-- 
Сергей Смирнов.



Re: Firebird 2 под Ubuntu

2007-03-05 Пенетрантность Oleg Deribas


Hello,

Сергей Фетискин said the following on 05.03.2007 9:38:


Есть желание поставить Firebird 2.0 SeperServer под эту ОСь.
Как я понял бинарных пакетов для нее нет и у меня единственный путь
это сборка из исходников. Если кто-нибудь так уже делал, подскажите
какие могут быть подводные камни.


Где-то на firebirdnews.org было обсуждение, помнится.

--
Oleg



Re: Будут ли встроенные функции в 2.1?

2007-03-05 Пенетрантность WildSery

On Sat, 03 Mar 2007 09:10:56 +0300, Dmitry Yemanov <[EMAIL PROTECTED]> wrote:
>> А что будет с базой на которой BIN_AND зареген как функция через UDF?
>
> Она будет продолжать работать с этой UDF.

А если попытаться перекомпилировать функцию, использующую BIN_AND, то останется 
на UDF, или переползёт на встроенную, или просто выругается?

-- 
Сергей Смирнов.



Re: [Фичи] Агрегатные домены

2007-03-05 Пенетрантность Boulitchev Aleksey



Было бы круто уметь создавать агрегатные домены.


финансируй

PS мне почему-то кажется, что на этом этапе полезность фичи станет 
неочевидна


--
Булычев Алексей
http://www.stella-npf.ru




Re: Firebird 2 под Ubuntu

2007-03-05 Пенетрантность Valery Gruzdev



"Сергей Фетискин"  сообщил/сообщила в новостях следующее:

Есть желание поставить Firebird 2.0 SeperServer под эту ОСь.
Как я понял бинарных пакетов для нее нет и у меня единственный путь
это сборка из исходников. Если кто-нибудь так уже делал, подскажите
какие могут быть подводные камни.


Я собирал недавно классик, правда, не под убунтой, а под дебианом, но они 
родственники.

Камней не нашел, все в классическом варианте:

tar -jzf Firebird-2.0.0.12748.tar.bz2
cd firebird
make
<курим, пьем кофе с бубликами>
sudo sh
make install

И оно заработало ;-)

Не помню только, configure ручками вызывал, или оно само из make дергается.
Если каких-то библиотек или пакетов не установлено, то как раз configure об 
этом и скажет, а дальше по обстоятельствам.


Grue