Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Alexander A. Venikov


Hello, Dmitri!
You wrote  on Wed, 13 Jun 2007 23:17:50 +0400:

 Постараюсь, согласно советам Дмитрия Кузьмука,
  DK кого-кого??? :-F
А ещё они обзвывали тебя жёлтым земляным червяком! Да-да, червяком (с)
--
Удач
Alexander A. Venikov, Tobolsk, Russia 





Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность PEAKTOP


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

Кстати, у меня что-то оператор delete from mon$statements st where
(st.mon$statement_id = ...) работает только для записей, у которых mon
$transaction_id = NULL.

1) Я так понимаю, что это записи ранних (fbclient.dll  2.1)
клиентов ?

2) Это так и должно быть ?



OFF: Разгон машины тьюринга :)))

2007-06-14 Пенетрантность Kovalenko Dmitry

Привет всем.

... Не все таки меня здорово подкололи насчет моей реализации
управления деревом, хранящимся в файле. Ржунемогу. Респект шутнику :)

Вообщем, к своему великому огорчению, я так и не смог сдвинутся с
места со своей идеей текстовой индексации. Бьюсь головой апстену, но
это факт. Заклинило на механизме регистрации комбинаций. Который я
пытался реализовать на базе AVL дерева. Натурального дерева - с Left,
Right, Parent, Key. Дерево хранится в страничном файле. На каждой
странице (4K) помещалось 88 нодов.

Вывод который я сделал своей новизной особо не отличается - что
русскому хорошо... то есть, что хорошо для конструкций в оперативной
памяти, то для внешних хранилищ - смерть. Гы. Я знаю, что этому еще в
школе учат, но вот проверил на своей шкуре :)

Тормоза на этапе балансировки. Если эти самые left,right,parent
(заголовок элемента дерева) всегда держать в памяти, то дикого падения
производительности не наблюдается. Как только заканчивается место в
кэше (начинается обмен с диском) то моск у этого дерева заклинивает
напрочь. И ничего его не спасает. Все из-за того, что ноды,
задействованные при балансировке, разбросаны по разным страницам.
Короче, при добавлении одного нода, который весит всего-то  ~50 байт,
меняется до 10 страниц данных. Это для тех маленьких объемов данных,
которые я пытался обработать.

Если убрать балансировку - моск залинивает сразу. И бесповоротно.

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

Еще пытался развалить индекс на секции (думал, это уменьшит число
коллизий в многопоточной программе) - но толку мало.

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

Есть конечно еще идея - радикально увеличить размер кэша для
заголовков нодов и упорядочить их выгрузку в файл (начать с тех,
страницы которых сейчас в кэше, а потом группировать по страницам) -
но я думаю это тоже нифига не поможет :))

-
Я посмотрел как сделано в FB 1.5 (tree.h). Но, боюсь, я такую
реализацию пока не осилю. Нужно пересматривать реализацию свего кэша,
а это  достаточно рискованное мероприятие.

... Самофатова надо придушить за оформление иходников.


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

Указатель на список - 6 байт. Получается что на странице (4K) будет
хранится свыше 650 указателей. Если заюзать хеш-таблицу размером 5
млн, то размер справочника будет в районе 7700 страниц.

Каждый элемент списка должен хранить явно больше одного элемента. Но
тут я по-эксперементирую. Гы.

Да. Размер самого описателя комбинации - 22 байта.


Всего-то нужно 350 млн комбинаций обработать. Хотя, судя по той
статистике которую я лицезрел во время этого секс-марафона - число
повторений 2. Так что, если быть оптимистом - то 175 млн
максимум :)))


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



целая часть числа

2007-06-14 Пенетрантность Alexey Popov


Имеем следующие результаты округления:
cast(0.5 as integer)=1
cast(-0.5 as integer)=-1
По большому счёту это пофиг, но как тогда безопасно
выделить целую часть числа?
сast(x-0.5 as integer) может привести к ошибке.

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




Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность PEAKTOP

Прошу прощения, очепятка

 ... работает только для записей, у которых mon$transaction_id NOT
NULL ...

версия 2.1.0.15972



Re: целая часть числа

2007-06-14 Пенетрантность Кузнецов Евгений


Доброго времени суток!

Alexey Popov wrote:


По большому счёту это пофиг, но как тогда безопасно
выделить целую часть числа?


case when (:alpha  0) then cast(:alpha+0.5 as integer)
 when (:alpha  0) then cast(:alpha-0.5 as integer)
 else 0
end

С уважением, Евгений



Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Andrei Yeryomin


Alexander A. Venikov пишет:


Hello, Dmitri!
You wrote  on Wed, 13 Jun 2007 23:17:50 +0400:

  Постараюсь, согласно советам Дмитрия Кузьмука,
   DK кого-кого??? :-F
А ещё они обзвывали тебя жёлтым земляным червяком! Да-да, червяком (с)

Ну, такая аналогия скорее всего Деду бы подошла. ;-)
А Дима у нас скорее Балу, который раздает подзатыльники своей тяжелой 
... битой.


--
С уважением,
 Андрей Еремин.



Re: OFF: Разгон машины тьюринга :)))

2007-06-14 Пенетрантность Kovalenko Dmitry

 И всё же не понятно...
 Вот есть специально оптимизированные для блочных манипуляций Б и Б+
 дерева 
 (http://en.wikipedia.org/wiki/B-tree,http://en.wikipedia.org/wiki/B%2B_tree)
 Алгоритмы балансировки даже проще чем AVL | RB.
 Библиотек и отдельных исходников в сети - пруд пруди...

 Нет, ты доблестно шагаешь по лесу граблей тобой же и разбросанных! ;-)

Вот такой я бледнолицый товарищ :)

Спасибо.

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



Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP

Хотел задать вопрос разработчикам о будующем :)

Нет ли у Вас в планах доработки механизма наследования таблиц ?

Например, есть у меня некая автоматизированная система учета (наш
маркетолог ее с гордостью называет ERP, но здесь взрослые люди,
поэтому мы будем называть вещи своими именами :)

Основа идеологии системы - система документооборота или журналы
документов. Как реализовано сейчас:
Есть таблица ГЛАВНЫЙ ЖУРНАЛ, в которой регистрируются все документы
(шапочная часть) и хранящая общие для всех документов атрибуты (дата
создания, пользователь, флаг-проведения, коментарии и т.д.) Есть куча
таблиц по отношению один-к-одному с главным журналом, которые хранят
специфические для данного вида документов атрибуты (например, расход
по кассе, хранящий там счет, субконто, вид ВД/ВР и т.д.) То есть,
чтобы получить выборку документов в GIU-интерфейс, делается join этих
таблиц. А иногда и нескольких, т.к. конечные документы имеют третье
поколение наследования.

Отсюда и возникла хотелка конструкции а-ля CREATE TABLE ЖУРНАЛ
РАСХОДА EXTENDS ГЛАВНЫЙ ЖУРНАЛ (  ).
Пускай, например, с ограничением, что в наследуемой таблице не может
быть доменов с такими же именами, как в родительской. Хотелось, чтобы
можно было делать INSERT-UPDATE-DELETE в дочернюю, с автоматической
вставкой записей в родительскую.

Сама мысль не бредовая ?



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

2007-06-14 Пенетрантность ������� ����������

Hello, Dmitri!
You wrote  on Wed, 13 Jun 2007 11:07:42 +0400:

  Это решается с помощью генератора. Можно с использованием пары
  генераторов.
 DK Это решается отдельным тредом, который выдает остальным записи
 DK на обработку. т.е. читать данные должен кто-то один, а обрабатывать -
 DK сколько угодно.

Не, оно решается оракловыми SAQ :

--
-=Особенности статистики: о добрых дельфинах сообщают те, кого дельфины толкали 
к берегу...=-
With best regards,  Nikolay Ponomarenko




Re: Разгон машины тьюринга :)))

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



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

Указатель на список - 6 байт. Получается что на странице (4K) будет
хранится свыше 650 указателей. Если заюзать хеш-таблицу размером 5
млн, то размер справочника будет в районе 7700 страниц.

Каждый элемент списка должен хранить явно больше одного элемента. Но
тут я по-эксперементирую. Гы.

Да. Размер самого описателя комбинации - 22 байта.


Всего-то нужно 350 млн комбинаций обработать. Хотя, судя по той
статистике которую я лицезрел во время этого секс-марафона - число
повторений 2. Так что, если быть оптимистом - то 175 млн
максимум :)))



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


With b/r. Gleb. 





Re: Firebird и наследование

2007-06-14 Пенетрантность Dmitry Yemanov


PEAKTOP wrote:


Нет ли у Вас в планах доработки механизма наследования таблиц ?


В ближайших - нет.


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



Re: Firebird и наследование

2007-06-14 Пенетрантность Boulitchev Aleksey



Хотел задать вопрос разработчикам о будующем :)

Нет ли у Вас в планах доработки механизма наследования таблиц ?

Например, есть у меня некая автоматизированная система учета (наш
маркетолог ее с гордостью называет ERP, но здесь взрослые люди,
поэтому мы будем называть вещи своими именами :)



Сама мысль не бредовая ?


Вы, любезный, согласны это оплатить? в смысле время, которое придется 
потратить на мотивированный отказ в реализации этой --йни?


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




Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Dmitry Yemanov


PEAKTOP wrote:


 ... работает только для записей, у которых mon$transaction_id NOT
NULL ...


Так и задумано, остановить можно только активный (выполняющийся) запрос. 
У препарированных, но не активных - ID тр-ции равен NULL, их 
останавливать бессмысленно.



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



Re: Firebird и наследование

2007-06-14 Пенетрантность Kovalenko Dmitry

 Есть таблица ГЛАВНЫЙ ЖУРНАЛ, в которой регистрируются все документы
 (шапочная часть) и хранящая общие для всех документов атрибуты (дата
 создания, пользователь, флаг-проведения, коментарии и т.д.)

Честное слово - это не я маскируюсь под этим ником :)))

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



Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


 Вы, любезный, согласны это оплатить? в смысле время, которое придется
 потратить на мотивированный отказ в реализации этой --йни?


Ну так сразу и фигни ...
http://www.interface.ru/fset.asp?Url=/oracle/nto.htm

Кстати, там статья начинается с Типы в поликлинике :) Может это
перст божий ?



Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


 Честное слово - это не я маскируюсь под этим ником :)))

Это ты к чему ? Я что-то пропустил ?



Re: OFF: Разгон машины тьюринга :)))

2007-06-14 Пенетрантность Ded


Kovalenko Dmitry wrote:

Нет, ты доблестно шагаешь по лесу граблей тобой же и разбросанных! ;-)



Вот такой я бледнолицый товарищ :)


   И про кулер военный забыл...

--
Regards. Ded.



Re: Firebird и наследование

2007-06-14 Пенетрантность Boulitchev Aleksey



Ну так сразу и фигни ...
http://www.interface.ru/fset.asp?Url=/oracle/nto.htm

Кстати, там статья начинается с Типы в поликлинике :) Может это
перст божий ?


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



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




Re: Firebird и наследование

2007-06-14 Пенетрантность Ded


PEAKTOP wrote:


Сама мысль не бредовая ?



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


--
Regards. Ded.



Re: Firebird и наследование

2007-06-14 Пенетрантность Boulitchev Aleksey



Честное слово - это не я маскируюсь под этим ником :)))


ясен пень, человек, который вместо нормализации адреса (читай хеша) один раз 
на 400 тыс вхождений и по разу на каждый запрос, вырастил целый лес деревьев


этот еще нормальный

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





Re: Firebird и наследование

2007-06-14 Пенетрантность Kovalenko Dmitry

  Сама мысль не бредовая ?

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

Ну, плох тот программист, который не тоскует по чорному ящику.
Выполняющему мысленную команду Напечатай накладную!

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



Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Ded


Dmitri Kuzmenko wrote:


явный план в ХП? ну-ну...



   А що ну-ну то. До сих пор есть запросы, которые хинтами не рулятся. 
То есть индексы все как лучше и надо, а последовательность как всегда.


--
Regards. Ded.



Re: ОФФ чей продукт ИнфоАптека Склад

2007-06-14 Пенетрантность Ovchinnikov Vasily

Dmitri Kuzmenko пишет:

как ни странно, тут в основном тусуются разработчики своих систем, не 
тиражируемых. Это вообще характерная особенность разработчиков

тиражируемых систем - не любят они по форумам ходить, в саппортах
спрашивать, и т.п.


А вот и неправда ваша выходит :-) И такие тут есть ;-)

--
Regards,
Ovchinnikov Vasily
ova at tkvc ru



Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


 этот еще нормальный

Не факт.

 у меня документооборот уже сделан

У меня тоже. Более того, развитие подобной функциональности заставит
все переделывать

 исключительно моском

Главное - не чем, главное - через что :)

 элементарно делается клиентской или прослойковой частью

Ну делается. А ведь хочеться, чтобы выполнялись мысленные команды
Напечатай накладную!  :)



Re: Firebird и наследование

2007-06-14 Пенетрантность Kovalenko Dmitry

  Честное слово - это не я маскируюсь под этим ником :)))

 ясен пень, человек, который вместо нормализации адреса (читай хеша) один раз
 на 400 тыс вхождений и по разу на каждый запрос, вырастил целый лес деревьев

 этот еще нормальный

Давай не будем судить о вещах, о которых (судя по стёбу) имеем _очень_
отдаленное представление ;)

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



Re: 1-я часть статьи Firebird 2.0 на полную катушку

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





А если FetchAll для обеих запросов сделать?



Дык у меня в настройка IBExpert-a стоит FetchAll по-умолчанию. И был
сделан FetchAll, т.к. IBExpert вернул одинаковое кол-во записей для
обоих запросов (по сути количество записей в справочнике TABL$TMC).

Слушай, а ты часом не за Fetches from cache уцепился ?




Ну да. Ежели оно такое разное, при выковыривании одних и тех же данных, то 
первое, что в голову приходит - неполный фетч для одного из вариантов. 
Следующей версией видимо был-бы как раз неверный план. Но тут тебе Ded уже 
все растолковал... Кстати у меня на подобных запросах обычно оптимизатор и 
сам нормально справляется, без подсказок.
 Тут еще маленько почитал статью. Я б уж коли упомянул бы ES, то постарался 
бы привести пример, в котором от него прок какой-никакой был. К примеру 
написал бы код, который в один проход упорядоченно по коду товара табличку 
остатков вычитывает и по смене кода товара выдает накопленные остатки. Всяко 
быстрее работать будет. Кроме того стоит упомянуть о том, что все это можно 
перевернуть на клиенте. Как многие и делают. Создать к примеру ClientDataSet 
с нужным количеством полей, вычитать данные из таблицы остатков и заполнить 
созданную табличку. Коду - 10-20 строк. Кроме того, всю эту работу умеют 
многие генераторы отчетов делать. Ну и инструментов OLAP хватает у которых 
возможностей поболе будет. Об этом тоже упомянуть бы стоило.


With b/r. Gleb.

P.S. Вообщем-то ты сам просил попинать, так что не обижайся, если что.
P.P.S. А по сравнению с другими статьями про FB на delphiplus этo всеж-таки 
определенный шаг вперед. Там столько бреда откровенного понаписано... (это 
мое imho).





Re: 2 ДЕ

2007-06-14 Пенетрантность sasha



мнения узнать насчёт использовать NOT DISTINCT в CASE вместо равно.

На эту тему есть стандарт.


Что ж он так NULL то загоняет :-(


Я видел риквест. Надо бы выяснить наличие оной фичи у конкурентов.


Дык она то и не нужна бы была если б оптимизатор пофиксили, хотя конечно 
удобная...



Отписал в комментах.


Только что-то баг так и числиться Closed :-(



Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность PEAKTOP


   Тут еще маленько почитал статью. Я б уж коли упомянул бы ES, то постарался
 бы привести пример, в котором от него прок какой-никакой был.

Цель была - показать идею. А уж применение - эт каждый сам под себя. В
смысле, затачивает :)

 P.S. Вообщем-то ты сам просил попинать, так что не обижайся, если что.

Наоборот, полезно. Я вот тут еще одну фишку про оптимизатор узнал.
(Тут переделал кое-чего в проекте, учтя полученную информацию, клиенты
довольныя ... :) )

 P.P.S. А по сравнению с другими статьями про FB на delphiplus этo всеж-таки
 определенный шаг вперед. Там столько бреда откровенного понаписано...

Не будем судить.

Основная проблема, на мой взгляд, этих статей в том, что они
ориентированы на Interbase/Firebird/Yaffil. То есть либо авторы для
себя ставят знак равенства для этих серверов, либо пытаются сделать
код, который пойдет на всех версиях (что подразумевает строгое
ориентирование на дедушку Interbase 6.0). А по-моему, давно пора
признать, что Firebird - уже отдельный проект, давно и далеко ушедший
вперед. И хоть в принципе с точки зрения программиста-прикладника
радикально ничего не изменилось и до сих пор можно писать
универсальные приложения под все версии, стоит помнить, что цена
универсальности - скорость.

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



и опять про isc_segstr_eof

2007-06-14 Пенетрантность Константин

Hi, многоуважаемый All!

  Хорсун Влад говорил что isc_blob_info может вернуть
  размер юникодного BLOB отличимый от размера реальных
  данных транслитерированного блоба меня поразила фраза

  ибо реальная длина может отличаться в любую сторону от
  оригинального блоба

  Это не опечатка ? ;)

  Как в таком случае быть со всем уже надоевшим алгоитмом ? :

  while (BlobSize  0) do
  begin
if SegLenBlobSize  then
 SegLen :=BlobSize ;
  
  Меня интересует вероятность BlobSize  реального размера
  как тут быть ? или можно ориентироватся ТОЛЬКО на isc_segstr_eof
  для ЛЮБЫХ ТИПОВ БЛОБОВ ?
 
С уважением,
Константин Григорьевич.
===




Re: 1-я часть статьи Firebird 2.0 на полную катушку

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





Основная проблема, на мой взгляд, этих статей в том, что они
ориентированы на Interbase/Firebird/Yaffil.


Основная проблема этих статей в том, что их пишут чукчи (в смысле - чукча 
не читатель, чукча писатель). :)))


With b/r. Gleb. 





Re: Firebird и наследование

2007-06-14 Пенетрантность Константин

P Сама мысль не бредовая ?

   Похоже на то ;) (хоть я и не разаботчик)

   Могу подкинуть идею - View - тебе в руки ...
   То-же самое что ты пытался обьяснить только вид сбоку ...
   Всё-равно от доп тпбличек не уйдёшь, хоть и наследуемых
   - сделай на каждую 1 view с наследованием и наслаждайся ...
   
С уважением,
Константин Григорьевич.
===




Re: Firebird и наследование

2007-06-14 Пенетрантность sasha


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


Так что лично я за то чтобы ALTER VIEW сделали это раз. И чтобы INSTEAD 
OF триггеры отдельные появились, а не как щас...




Re: 2 ДЕ

2007-06-14 Пенетрантность Dmitry Yemanov


sasha wrote:


Дык она то и не нужна бы была если б оптимизатор пофиксили, хотя конечно 
удобная...


А причем тут оптимизатор?


Только что-то баг так и числиться Closed :-(


Переоткроем чуть позже.


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



Re: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Dmitry Yemanov


Константин wrote:


  Как в таком случае быть со всем уже надоевшим алгоитмом ? :


Переписывать.


  или можно ориентироватся ТОЛЬКО на isc_segstr_eof
  для ЛЮБЫХ ТИПОВ БЛОБОВ ?


Читаем ApiGuide:

When isc_get_segment() reads the last segment of the Blob, the function 
returns the code isc_segstr_eof.


Еще вопросы есть?


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



Re: 2 ДЕ

2007-06-14 Пенетрантность sasha



А причем тут оптимизатор?


Условие выхода из цикла я могу задатьи без этого MAX LEVEL, но на 
листовых элементах, когда условие ограничения уровня уже не выполняется, 
сервер всё равно фетчит все записи. Я в трекер тоже писал на эту тему.


Проверить это элементарно. Возьми любую таблицу с данными и сделай к ней 
запрос типа такого:


SELECT * FROM Table WHERE 1 = 0

и ты увидишь что сервер все записи отфетчит из таблицы.
Та же самая хрень каждом листовом элементе происходит.

Поэтому мы и жаждем MAX LEVEL как не просто удобную фичу, а и обходной 
путь этой недоделки.




Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP

Могу подкинуть идею - View - тебе в руки ...

Была такая мысль, но не за чем.

- сделай на каждую 1 view с наследованием и наслаждайся ...

не за чем. TIBDataSet и TpFIBDataSet рулят это все ...



Re: Firebird и наследование

2007-06-14 Пенетрантность Yurij


PEAKTOP:

 Отсюда и возникла хотелка конструкции а-ля CREATE TABLE ЖУРНАЛ
 РАСХОДА EXTENDS ГЛАВНЫЙ ЖУРНАЛ (  ).
 Сама мысль не бредовая ?

 Не бредовая. У меня в трех системах такое имитируется, с помощью
view, ORM прослойками и прочим мракобесием.

 В сервер такое встроить было бы полезно, хотя имхо это будет всего
лишь синтаксический сахар вокруг view и триггеров instead of.



Re[2]: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Константин

DY When isc_get_segment() reads the last segment of the Blob, the function
DY returns the code isc_segstr_eof.

DY Еще вопросы есть?

Да ;),
1) всё-же повторюсь - для ЛЮБЫХ ТИПОВ БЛОБОВ ?
2) как узнать реальный размер блоба в случее если
   isc_blob_info вернул размер блоба скажем 100 байт
   а после чтения 100 байт - isc_get_segment() не
   возвратил isc_segstr_eof

Особенно интересует второй случай, а именно:
Может ли такое произойти и если да - то не бага ли это ?

PS: не пинайте сильно ...

С уважением,
Константин Григорьевич.
===




Re[2]: Firebird и наследование

2007-06-14 Пенетрантность Константин

Могу подкинуть идею - View - тебе в руки ...
P Была такая мысль, но не за чем.
- сделай на каждую 1 view с наследованием и наслаждайся ...
P не за чем. TIBDataSet и TpFIBDataSet рулят это все ...

   Могу поспорить ;) ...
   Ибо если есть наследование свойств - то нужно -
   же как-то организовать и перекрытие методов ... ;)
   В данном случае очень помогут тригера на эти вьюхи ...
   Что средствами TIB.../TpFIB...  не очень то красиво
   реализуется, да и целостность даных под вопросом ...
   ИМХО любые каскадные операции обновления лучьше делать
   на стороне сервера ... - так спокойнее: не забудешь
   влепить всё в одну танзакцию, соблюсти нужную
   последовательность проверок/изменений, ...
   Да и единообазность использования ...

   Единственное отступление, в моём случае, это обьекты ООБД,
   но для них был написан спец-класс и обращение к обьектным
   таблицам у меня оганизуется ТОЛЬКО через него и никаких
   шалостей напрямую ...
   
С уважением,
Константин Григорьевич.
===




Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


 Кто мешает реализовать insert/update/delete во view?

Ничего. Хотелка возникла из-за того, что есть случаи:
1) необходимо родителю добавить аттрибуты. И потомки должны их
унаследовать. следствие - переколбасить ручками все VIEW.
2) Есть документы, которые имеют в организации таблицы журнала (шапка)
и таблицы документа (деталь). Теоретически возникает возможность
вставлять детальные записи, характерные для расходной накладной
например приходному кассовому ордеру. Приходиться колбасить ручками
кучу проверок, ограничений ...



Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


Могу поспорить ;) ...
Ибо если есть наследование свойств - то нужно -
же как-то организовать и перекрытие методов ... ;)
В данном случае очень помогут тригера на эти вьюхи ...

Подобный механизм есть в о'Ракле, хотя если приглядеться
повнимательней - не более чем обертка над INTERNAL VIEW, как
говорилось выше.

Что средствами TIB.../TpFIB...  не очень то красиво
реализуется, да и целостность даных под вопросом ...
ИМХО любые каскадные операции обновления лучьше делать
на стороне сервера ... - так спокойнее: не забудешь
влепить всё в одну танзакцию, соблюсти нужную
последовательность проверок/изменений, ...
Да и единообазность использования ...

Ну не напрямую же туды INSERT-UPDATE-DELETE писать. Можно например,
вызов ХП, а она-то уж и разложит все по полочкам.


Единственное отступление, в моём случае, это обьекты ООБД,
но для них был написан спец-класс и обращение к обьектным
таблицам у меня оганизуется ТОЛЬКО через него и никаких
шалостей напрямую ...


Как я понял из ответа Димы Еманова, на том стояла и стоять будет
Русская земля. :)



Re: Firebird и наследование

2007-06-14 Пенетрантность Boulitchev Aleksey



Ничего. Хотелка возникла из-за того, что есть случаи:
1) необходимо родителю добавить аттрибуты. И потомки должны их
унаследовать. следствие - переколбасить ручками все VIEW.
2) Есть документы, которые имеют в организации таблицы журнала (шапка)
и таблицы документа (деталь). Теоретически возникает возможность
вставлять детальные записи, характерные для расходной накладной
например приходному кассовому ордеру. Приходиться колбасить ручками
кучу проверок, ограничений ...


делайте второй слой метаданных. об этом в свое время очень подробно и 
обстоятельно писал Тенцер.


массу изменений и зависимостей пр. очень легко делают препроцессоры. тянуть 
все это барахло (использующееся только в момент создания БД, или 
административного регламента) на сервер не стоит


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




Re: Off: Нужон текстовый редактор для файлов 4Gb

2007-06-14 Пенетрантность Yurij
On 13 июн, 09:12, Константин [EMAIL PROTECTED] wrote:
   Help me, пожлуйста ...
   Нужен текстовый редактор который может
   отредактировать текстовый файл около 3.5 Gb
   БЕЗ загрузки ПОЛНОСТЬЮ в память ...

Тут нужен не редактор, а средство потоковой обработки, файл подать на
stdin, stdout вывести в другой файл.


Re: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Dmitry Yemanov


Константин wrote:


1) всё-же повторюсь - для ЛЮБЫХ ТИПОВ БЛОБОВ ?


Да.


2) как узнать реальный размер блоба


Что есть реальный размер? OCTET_LENGTH не устраивает?


   isc_blob_info вернул размер блоба скажем 100 байт
   а после чтения 100 байт - isc_get_segment() не
   возвратил isc_segstr_eof


Если таковое случится, то скорее будем считать багой.


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



Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


 делайте второй слой метаданных. об этом в свое время очень подробно и
 обстоятельно писал Тенцер.
На том и стоим.


 массу изменений и зависимостей пр. очень легко делают препроцессоры. тянуть
 все это барахло (использующееся только в момент создания БД, или
 административного регламента) на сервер не стоит

Вставку записей осуществляет ХП, которая как раз бегает по второму
слою метаданных, выбирает настройки, формирует скрипты и прогоняет их
через EXECUTE STATEMENT. И одна транзакция, и примитивный
препроцессор, и логгирование, и полиморфизм потомков - все в одном
флаконе.

А хочеться, чтобы было красиво :)



Re: Firebird и наследование

2007-06-14 Пенетрантность Boulitchev Aleksey



Вставку записей осуществляет ХП, которая как раз бегает по второму
слою метаданных, выбирает настройки, формирует скрипты и прогоняет их
через EXECUTE STATEMENT. И одна транзакция, и примитивный
препроцессор, и логгирование, и полиморфизм потомков - все в одном
флаконе.

А хочеться, чтобы было красиво :)


избавьтесь от ES :)

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


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




Re[2]: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Константин

isc_blob_info вернул размер блоба скажем 100 байт
а после чтения 100 байт - isc_get_segment() не
возвратил isc_segstr_eof

DY Если таковое случится, то скорее будем считать багой.

Извини за назойливость, последний вопрос:

код isc_get_segment() = 0 остаётся корректным даже
при достижении конца блоба если прочитан хоть 1 байт
а ежели не прочитанно ни одного - то
isc_get_segment() = isc_segstr_eof, павильно ?

т.е. надо писать

  case isc_get_segment() of
0: прочитано пормально, пробовать читать далюше
isc_segstr_eof : достигнут конец, выход
else Ошибка чтения
 end;

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

С уважением,
Константин Григорьевич.
===




Re: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Dmitry Yemanov


Константин wrote:


Извини за назойливость, последний вопрос:

код isc_get_segment() = 0 остаётся корректным даже
при достижении конца блоба если прочитан хоть 1 байт
а ежели не прочитанно ни одного - то
isc_get_segment() = isc_segstr_eof, павильно ?

т.е. надо писать

  case isc_get_segment() of
0: прочитано пормально, пробовать читать далюше
isc_segstr_eof : достигнут конец, выход
else Ошибка чтения
 end;


Ты таки пойдешь читать ApiGuide или нет?


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


Бузз уже все за тебя пофиксил.


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



Re: Разгон машины тьюринга :)))

2007-06-14 Пенетрантность Kovalenko Dmitry

  памяти, то для внешних хранилищ - смерть. Гы. Я знаю, что этому еще в
  школе учат, но вот проверил на своей шкуре :)

 А тебя сразу предупреждал ;-), накопитеоль на ленте от сильно отличается от 
 накопителя на феритовых кольцах ;-);-);-)

Типа мне еще повезло? Это хорошое еще не с перфокартами вожусь. Я их в
работе даже и не видел :) Но в руках держал :)))

  Есть конечно еще идея - радикально увеличить размер кэша для
  заголовков нодов и упорядочить их выгрузку в файл (начать с тех,
  страницы которых сейчас в кэше, а потом группировать по страницам) -
  но я думаю это тоже нифига не поможет :))

 Дима, с какой объём всего этого безобразия? Может проще докупить ОЗУ?

ОЗУ не поможет. Тут (на тестах) 30 тыс объектов перелопатил (всего их
1.1 млн) программа выжрала 200 метров памяти. А их хочется обработать
все за раз. Понятно, что мало ли хочется, но я пока не сдаюсь :)

  Я посмотрел как сделано в FB 1.5 (tree.h). Но, боюсь, я такую
  реализацию пока не осилю. Нужно пересматривать реализацию свего кэша,
  а это  достаточно рискованное мероприятие.
  ... Самофатова надо придушить за оформление иходников.

 Эээ... не понял о чём ты?

Я не превередливый, но, @#$, читал этот код с j[ebntkmysv трудом. Он
хоть бы префиксы использовал для данных-членов. Или, как это нынче
модно, юзал бы this-. А то, @#@, смотришь на переменную level и
вообще не фтыкаешь откуда она. Ну реально - нагромождение кода. Типа
заоптимизировал, что бы никто туда и не пытался лазить :)

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



Re: Firebird и наследование

2007-06-14 Пенетрантность Yurij

On 14 июн, 14:13, Boulitchev Aleksey [EMAIL PROTECTED] wrote:

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

Хехе, к вопросу о фреймворках:
a href=http://metaclass.livejournal.com/205320.html;про птичьи
языки программирования/a



Re[2]: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Константин

DY Ты таки пойдешь читать ApiGuide или нет?
Всё ушёл на фронт

DY Бузз уже все за тебя пофиксил.

Или Фибсы у меня старые,
хотя вроде 6.7 от 12.05.2007,
или видать не всё пофиксено ;)

С уважением,
Константин Григорьевич.
===




Re: OFF: Разгон машины тьюринга :)))

2007-06-14 Пенетрантность Slava Ekimov


KD ... Не все таки меня здорово подкололи насчет моей реализации
KD управления деревом, хранящимся в файле. Ржунемогу. Респект шутнику :)

Да че там, обращайтесь :-) Я в институте даже программы для нее писал :-) 





Re: Firebird и наследование

2007-06-14 Пенетрантность Roman Rokytskyy



массу изменений и зависимостей пр. очень легко делают препроцессоры. тянуть
все это барахло (использующееся только в момент создания БД, или
административного регламента) на сервер не стоит


Вставку записей осуществляет ХП, которая как раз бегает по второму
слою метаданных, выбирает настройки, формирует скрипты и прогоняет их
через EXECUTE STATEMENT. И одна транзакция, и примитивный
препроцессор, и логгирование, и полиморфизм потомков - все в одном
флаконе.

А хочеться, чтобы было красиво :)


Бл$%/ как у вас тут сложно!... Какие ХП, какие VIEW, какие EXECUTE 
STATEMENT, какие скрипты?!


У вас что, до сих пор никто нормального O/R маппера для Дельфи не 
написал? И наследование будет, и полиморфизм, и инкапсулирование и все 
остальные sexy-штучки из ОО программирования. А реляционную базу оставь 
в покое - она без этих фич спокойно обойдется, ее задача свои джойны 
быстро-быстро считать, а в объекты их переделывать - это уже из другой 
области.


Роман



Re: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Dmitry Yemanov


Константин wrote:


Или Фибсы у меня старые,
хотя вроде 6.7 от 12.05.2007,
или видать не всё пофиксено ;)


В конце мая он это делал.


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



Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, Oleg!

Oleg LOA wrote:


Ну блин, кто же Вас знает разработчиков, что Вы там понакрутили :) Я
сырцы для ознакомления в последний раз открывал еще при v1.5.3. Слава
богу, что Вы хоть оставили возможность план писать ручками в ХП.


явный план в ХП? ну-ну...


Дим, у меня например вагон процедур с планами, правда индексы в ya давно уже 
именуются нормально.


да без проблем, я ж про контекст. и read-транзакции роллбэком завершают,
и т.д., плюс еще и явные планы в ХП. То есть, товарищ однозначно отстал 
от жизни.


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




Re: ОФФ чей продукт ИнфоАптека Склад

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, Vasily!

Ovchinnikov Vasily wrote:


тиражируемых систем - не любят они по форумам ходить, в саппортах
спрашивать, и т.п.


А вот и неправда ваша выходит :-) И такие тут есть ;-)


мало вас. остальные не ходят.

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




Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, Dmitry!

Dmitry Yemanov wrote:


Сегодня утром направил на мыло хостерам сайта вторую часть статьи,
посвященную таблицам MON$*.


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


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

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




Re: и опять про isc_segstr_eof

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, Dmitry!

Dmitry Yemanov wrote:


2) как узнать реальный размер блоба


Что есть реальный размер? OCTET_LENGTH не устраивает?


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

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

А размер блоба - это размер блоба, а не количество символов
в хранимой строке. Вот такое мое жестокое имхо.

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




Re: Firebird и наследование

2007-06-14 Пенетрантность Alexandr Kochmin


 RR У вас что, до сих пор никто нормального O/R маппера для Дельфи не
RR написал?

у нас тут один маппер - FibPlus. На все случаи жизни.  ;)
Более лучшего я не видел.

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





Re: OFF: Разгон машины тьюринга :)))

2007-06-14 Пенетрантность Kovalenko Dmitry

  KD ... Не все таки меня здорово подкололи насчет моей реализации
  KD управления деревом, хранящимся в файле. Ржунемогу. Респект шутнику :)

 Да че там, обращайтесь :-) Я в институте даже программы для нее писал :-)

У меня уже истерика от смеха :

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



Re: Firebird и наследование

2007-06-14 Пенетрантность PEAKTOP


 У вас что, до сих пор никто нормального O/R маппера для Дельфи не
 написал?

Какая Delphi ?

Есть ядро, писанное на Delphi, поддерживающее компилятор некоего
объектного языка, очень похожего на язык самой Delphi (здесь
remobjects.com рулит).

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

Плюс ко всему 30-35% заказов - симметричные системы, то есть у них
еще доступ через пыхпыхающего индейца (Apache+PHP). Там, отчетность
всякая, все на read-only в общем.

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



Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, Реактор!

PEAKTOP wrote:


P.P.S. А по сравнению с другими статьями про FB на delphiplus этo всеж-таки
определенный шаг вперед. Там столько бреда откровенного понаписано...


Не будем судить.

Основная проблема, на мой взгляд, этих статей в том, что они
ориентированы на Interbase/Firebird/Yaffil. То есть либо авторы для
себя ставят знак равенства для этих серверов, либо пытаются сделать


будем судить. По-моему, на 30-40% статьи на delphiplus.org это или
статьи графоманов, или в стиле о! я узнал крутую фичу!.
При этом уровень образованности в предмете и кругозора сильно
близок к нулю.


А по-моему, давно пора
признать, что Firebird - уже отдельный проект, давно и далеко ушедший
вперед. 


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


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


что-то я не понял идею. ну есть Firebird. Есть Interbase. У каждого
есть своя специфика. Есть общее. Хочешь - пиши общую статью.
Хочешь - частную, про конкретный сервер. Где тут задумка?
Firebird уже как популярный сервер порядка 5-ти лет существует.

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




Re: Firebird и наследование

2007-06-14 Пенетрантность Roman Rokytskyy



 RR У вас что, до сих пор никто нормального O/R маппера для Дельфи не
RR написал?

у нас тут один маппер - FibPlus. На все случаи жизни.  ;)
Более лучшего я не видел.


А запросы вы где храните? Если где-то что-то поменять надо (или еще 
хуже, что-то в базе меняется), то в каждую TQuery лезете и там ручками 
правите? Или уже их централизировано хранят?


П.С. Моя работа с Дельфи закончилась в 97-ом году, с тех пор на Java 
пишу, так что пардон за вопросы...




Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность PEAKTOP

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

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


Чует сердце, будут бить ...
Долго. Ногами. А у Дмитрия Еманова еще есть бейсбольная бита ...



Re: Firebird и наследование

2007-06-14 Пенетрантность Kovalenko Dmitry

  А хочеться, чтобы было красиво :)

 Бл$%/ как у вас тут сложно!... Какие ХП, какие VIEW, какие EXECUTE
 STATEMENT, какие скрипты?!

 У вас что, до сих пор никто нормального O/R маппера для Дельфи не
 написал?

Да мы, как-то, все по-старинке - руками ... управляемся.

Бугагага.

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



Re: Firebird и наследование

2007-06-14 Пенетрантность Roman Rokytskyy



Есть ядро, писанное на Delphi, поддерживающее компилятор некоего
объектного языка, очень похожего на язык самой Delphi (здесь
remobjects.com рулит).

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


И на том языке O/R маппер нельзя написать, что ли? У нас эдак лет 7-8 
назад писали примитивненький маппер на JavaScript, кода было что кот 
наплакал... но работал прекрасно.



Плюс ко всему 30-35% заказов - симметричные системы, то есть у них
еще доступ через пыхпыхающего индейца (Apache+PHP). Там, отчетность
всякая, все на read-only в общем.


Хммм... у них кажется тоже O/R маппера нет...


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


Каких скриптов? PHP?



Re: Firebird и наследование

2007-06-14 Пенетрантность Yurij



On 14 июн, 16:01, Roman Rokytskyy [EMAIL PROTECTED] wrote:
   RR У вас что, до сих пор никто нормального O/R маппера для Дельфи не
  у нас тут один маппер - FibPlus. На все случаи жизни.  ;)
 А запросы вы где храните? Если где-то что-то поменять надо (или еще
 хуже, что-то в базе меняется), то в каждую TQuery лезете и там ручками
 правите? Или уже их централизировано хранят?

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

Для просто запросов(не датасеты) я сделал отдельную табличку.




Re: Firebird и наследование

2007-06-14 Пенетрантность sasha


А у меня вот есть маппер самописный, только мучений с ORM не меньше. 
Очень недостаёт множественного наследования. Вот мода дурацкая пошла щас 
 его не поддерживать :-(


К стати, а как вы в жабе связывание данных с контролами делаете? Вот в 
нете для этого ObjectDataSource есть, который помогает всё это дело 
визуализировать. А в жабе что? Я помню когда свинг смотрел года 4 назад, 
так у них вобще небыло такого понятия как DataBinding. Только горстку 
убогих борландовский контролов dbSwing видил...




Re: Firebird и наследование

2007-06-14 Пенетрантность Yurij



On 14 июн, 15:26, Roman Rokytskyy [EMAIL PROTECTED] wrote:
  Вставку записей осуществляет ХП, которая как раз бегает по второму
  А хочеться, чтобы было красиво :)
 Бл$%/ как у вас тут сложно!... Какие ХП, какие VIEW, какие EXECUTE
 STATEMENT, какие скрипты?!

 У вас что, до сих пор никто нормального O/R маппера для Дельфи не
 написал? И наследование будет, и полиморфизм, и инкапсулирование и все

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

Я вместо OR маппера объекты в XML сериализую и в блобе храню. Не нужно
заморачиваться с изменениями в схеме базы, если что :)

А пионеры до сих пор пишут в дельфи складывая кнопки на форму
мышкой, кто бы их всех поубивал наконец.



Re[2]: Firebird и наследование

2007-06-14 Пенетрантность Max Rezanov

Hello Roman,

Thursday, June 14, 2007, 4:26:35 PM, you wrote:
RR У вас что, до сих пор никто нормального O/R маппера для Дельфи не
RR написал? И наследование будет, и полиморфизм, и инкапсулирование и все 
RR остальные sexy-штучки из ОО программирования. А реляционную базу оставь 
RR в покое - она без этих фич спокойно обойдется, ее задача свои джойны 
RR быстро-быстро считать, а в объекты их переделывать - это уже из другой 
RR области.

Нету и не будеть :)
Для того чтобы он был нужен полный RTTI а его в дельфе - ой.
Да и толку ну получил ты обьект а дальше ЩО?

Биндинга нету - нету.
Это значиться нада ручками текстбокс установить, затем считать...
:)))

А посему
Обьекты это датасеты :)

5 минут гугления и у тебя и дерево из дата сета и грид и само
фильтруеть (даже запросы можеть переписать за тебя)и поиск
встроеныей не обьекты нам не нужны. :))

Толи дело кинул 4 компоеннты насадил 2 свойства и усе работаеть. :)))

Ты еще заставь конфиги писать для О/R мапера да еще и в XML-е. :)

И мапер у нас FIB-ы :)

  Тема Дня: Тот, кто хpапит, всегда засыпает пеpвым.
  До не скорой встречи в аду,
 Maxmailto:[EMAIL PROTECTED]




Re: Firebird и наследование

2007-06-14 Пенетрантность Alex Cherednichenko

Привет, Yurij!
Вы пишешь  14 июня 2007:

[Sorry, skipped] 
 Y А пионеры до сих пор пишут в дельфи складывая кнопки на форму
 Y мышкой, кто бы их всех поубивал наконец.

Сейчас тебя будут бить. Возможно, ногами...
(С)

-- 
With best regards, Alex Cherednichenko.




Re: Firebird и наследование

2007-06-14 Пенетрантность Roman Rokytskyy


А у меня вот есть маппер самописный, только мучений с ORM не меньше. 
Очень недостаёт множественного наследования. Вот мода дурацкая пошла щас 
 его не поддерживать :-(


Ну мне пока без него хорошо :) честно :)

К стати, а как вы в жабе связывание данных с контролами делаете? Вот в 
нете для этого ObjectDataSource есть, который помогает всё это дело 
визуализировать. А в жабе что? Я помню когда свинг смотрел года 4 назад, 
так у них вобще небыло такого понятия как DataBinding. Только горстку 
убогих борландовский контролов dbSwing видил...


А ничего окромя их свинганутых Models. :( Это то чего я объяснить не 
могу... есть некоторые попытки сделать его для Eclipse/SWT, но вот 
аналога data binding из дотнета нет... Но это для стандартного 
GUI/RichClient.


А для Web все есть: и Struts умеет объекты к контролам привязывать, и 
Java Server Faces (что-то похожее на ASP.NET), и другие фреймворки. Там 
никаких проблем - я Hibernate-овский объект передаю по сети на 
веб-сервер, мой Struts манипулирует ним как хочет, передает назад в мой 
application server и в Hibernate, оно в свою очередь пишет это в базу.




Re: Firebird и наследование

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




А пионеры до сих пор пишут в дельфи складывая кнопки на форму
мышкой, кто бы их всех поубивал наконец.



Пора сваливать отсюда. Убъют же...

With b/r. Gleb. 





Re: Firebird и наследование

2007-06-14 Пенетрантность Tonal


Roman Rokytskyy пишет:
Бл$%/ как у вас тут сложно!... Какие ХП, какие VIEW, какие EXECUTE 
STATEMENT, какие скрипты?!


У вас что, до сих пор никто нормального O/R маппера для Дельфи не 
написал? И наследование будет, и полиморфизм, и инкапсулирование и все 
остальные sexy-штучки из ОО программирования.

А с чего ты взял, что на Delphi кому-то O/R мапперы с их ОО штучками нужны?
Народ же говорит о документах разных, отчётах.
Они на дельфе завсегда формами делались, да компонентами репортов.
Вот чтоб не городить в базе при этом всякого, и просит народ 
наследования таблиц.

Как удобно бы было - создал табличку - нарисовал формочку.
Отнаследовал табличку - отнаследовал формочку.
Ляпота!

А ты о какой-то инкапсюляции - тфу!



Re[2]: Firebird и наследование

2007-06-14 Пенетрантность Константин

 Y А пионеры до сих пор пишут в дельфи складывая кнопки на форму
 Y мышкой, кто бы их всех поубивал наконец.

AC Сейчас тебя будут бить. Возможно, ногами...

Я первый, можно ... ;)

С уважением,
Константин Григорьевич.
===




Re: Firebird и наследование

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, sasha!

sasha wrote:


А у меня вот есть маппер самописный, только мучений с ORM не меньше. 
Очень недостаёт множественного наследования. Вот мода дурацкая пошла щас 
 его не поддерживать :-(


составные объекты тебе нужны, а не множественное наследование.

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




Re: Re[2]: Firebird и наследование

2007-06-14 Пенетрантность Alex Cherednichenko

Привет, Константин!
Вы пишешь к Alex Cherednichenko 14 июня 2007:

 Y А пионеры до сих пор пишут в дельфи складывая кнопки на форму
 Y мышкой, кто бы их всех поубивал наконец.

 AC Сейчас тебя будут бить. Возможно, ногами...

 К Я первый, можно ... ;)

Я буду участвовать!
(С) 

-- 
With best regards, Alex Cherednichenko.




Re: Firebird и наследование

2007-06-14 Пенетрантность sasha



составные объекты тебе нужны, а не множественное наследование.


Нет, мне нужно множественное наследование. Хотя может меня перегрузка 
операторов ipmlicit/explicit спасёт. Не знаю пока...


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





Re: Re[2]: Firebird и наследование

2007-06-14 Пенетрантность WildSery

On Thu, 14 Jun 2007 17:58:23 +0400, Alex Cherednichenko [EMAIL PROTECTED] 
wrote:

 Я буду участвовать!
 (С)

Присоединюсь к драке с этой стороны.
Полностью автоматическое разбрасывание компонентов по формам - как пенопластом 
по стеклу.  :|

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



Re: Firebird и наследование

2007-06-14 Пенетрантность Yurij



On 14 июн, 17:01, WildSery [EMAIL PROTECTED] wrote:
 Присоединюсь к драке с этой стороны.
 Полностью автоматическое разбрасывание компонентов по формам - как 
 пенопластом по стеклу.  :|

А, мы уже это тут обсуждали, кстати :)

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

1) Из объекта и описаний полей(в .нет это атрибуты, для дельфей
придется использовать внешний файл описания) генерится список полей
для редактора. Загрузка,сохранение,создание элементов управления -
автоматически. В описаниях хранятся штуки типа справочник для
поля,подпись понятная юзеру. Внешний вид редактора пока игнорируем.
Вообще.

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

До сих пор все касалось только данных объектов, от конкретного способа
их отображения это все не зависит.

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

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

 Сплошная радость - и програмерам кнопки раскладывать не надо, и
обязанности разделить можно.

 Осталось этот кошмар реализовать или найти готовым, потому что это
какое-то дикое изобретение велосипеда, 100%



Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Константин

Hi, многоуважаемый All!

   Собственно Subj функции ког-да нибуть будут
   реально встроенными или нет ? Чо-бы не
   обьявлять их через
   DECLARE EXTERNAL FUNCTION
   
   Или может тогда убрать флаг RDB$SYSTEM_FLAG ?
   А то ни и не туды и не сюды ...

С уважением,
Константин Григорьевич.
===




Re[2]: Firebird и наследование

2007-06-14 Пенетрантность Константин

Y А, мы уже это тут обсуждали, кстати :)

   Тут это не там ;)

Y У меня с тех пор появилась новая идея безумная на тематику
Y автоматического раскладывания:

   http://www.devrace.com/ru/xmlinspector/

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

С уважением,
Константин Григорьевич.
===




Re: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Alexandr Kochmin


ничего не понял. Зачем их создавать, если они и так есть?


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





Re[2]: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Константин


AK ничего не понял. Зачем их создавать, если они и так есть?

Или у меня глюки, или в README.context_variables2.txt
написано:

DECLARE EXTERNAL FUNCTION RDB$GET_CONTEXT
VARCHAR(80) CHARACTER SET NONE NULL,
VARCHAR(80) CHARACTER SET NONE NULL
RETURNS VARCHAR(255) FREE_IT
ENTRY_POINT 'get_context' MODULE_NAME 'system_module';

эжели я не выполняю этот скрипт - function uncnown ...

С уважением,
Константин Григорьевич.
===




Re: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Alexandr Kochmin


К
К
AK ничего не понял. Зачем их создавать, если они и так есть?
К
К Или у меня глюки, или в README.context_variables2.txt
К написано:

ненадо делать никакое declare они УЖЕ есть. самим фактом ODS11

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





Re[2]: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Константин

AK ничего не понял. Зачем их создавать, если они и так есть?

Я к тому, что раз уж они встроенные - то зачем записи о них
держать в RDB$FUNCTIONS ?

Вообще-то я подял этот вопрос из наздорового любопытства ...
На эти функии, а точнее связки (ссылки) на них стали рубить на
корнню VCL Database Comparer - пришлось править код,
что не есть гуд ... да и в IBE мелькают - глаза мозолят ...

С уважением,
Константин Григорьевич.
===




Re[2]: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Константин

AK ненадо делать никакое declare они УЖЕ есть. самим фактом ODS11

Мда, тадя я понял что я их случайно прибил, -
а уж потом восстанавливал ;)

Но имхо, всё равно как-то некрасиво:
ни встоенные, ни чисто UDF
Какоя-то половинчатость ;)

С уважением,
Константин Григорьевич.
===




Re: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Alexandr Kochmin


К Мда, тадя я понял что я их случайно прибил, -

убил? хм. Оригинально. Убить часть сервера.
интересно , когда нибудь будет ddl
drop firebird;
я думаю оно должно uninstall делать

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





Re: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность sasha


А зачем им приставка RDB$, раз уж на то пошло? :-)



Re[2]: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Константин


s А зачем им приставка RDB$, раз уж на то пошло? :-)

   Я конечно не еврей (сори, это не антисемитский нанезд),
   но можно вопросом на вопрос ?
   А где такая UDF как system_module лежит ?
   Облазил весь диск - не нашёл ...

С уважением,
Константин Григорьевич.
===




Re[2]: Насчёт RDB$GET_CONTEXT и RDB$SET_CONTEXT

2007-06-14 Пенетрантность Константин


AK  К Мда, тадя я понял что я их случайно прибил, -

AK убил? хм. Оригинально. Убить часть сервера.

А шо тут такого ? в IBE видно - видно,
удалить даёт - даёт - значится млжно ;)

AK интересно , когда нибудь будет ddl
AK drop firebird;
AK я думаю оно должно uninstall делать

лучьше уж:

UPDATE RDB$FIREBIRD_SERVER
SET VERSION = x.x.x
CONNECTION HTTP or FTP

С уважением,
Константин Григорьевич.
===




Re: Firebird и наследование

2007-06-14 Пенетрантность Oleg Deribas


Hello,

sasha said the following on 14.06.2007 16:57:

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


Это как? Можно пример?

--
Oleg



Re: 1-я часть статьи Firebird 2.0 на полную катушку

2007-06-14 Пенетрантность Ded


Dmitri Kuzmenko wrote:


будем судить. По-моему, на 30-40% статьи на delphiplus.org это или
статьи графоманов, или в стиле о! я узнал крутую фичу!.
При этом уровень образованности в предмете и кругозора сильно
близок к нулю.


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


--
Regards. Ded.



Re: Нужон текстовый редактор для файлов 4Gb

2007-06-14 Пенетрантность Igor Lagov

On Wed, 13 Jun 2007 12:19:45 +0400, Sergey Nikolaenko
[EMAIL PROTECTED] wrote:

 Help me, пожлуйста ...
  Нужен текстовый редактор который может
  отредактировать текстовый файл около 3.5 Gb
 
MultiEdit умеет это делать. И всегда умел.



OFF Re: Firebird � �����������

2007-06-14 Пенетрантность ������� ����������

Hello, Oleg!
You wrote  on Thu, 14 Jun 2007 18:40:57 +0300:

  В нете ж засада есть. Вы не можете сделать двунаправленный датабиндинг с
  полем объекта внутри другого объекта :-(
 OD Это как? Можно пример?

Подозреваю, что невозможно связать TPerson.TCountry.Lang с контролом, в то
время как TCountry.Lang - можно.

TCountry{
  Lang:string;
}
TPerson{
  property Country:TCountry;
}

PS
Когда писали свой велосипед, от такой фичи тоже отказались :)))

--
-=Оказывается, все динозавры были одинаковые, просто разные археологи собирали 
их по-разному=-
With best regards,  Nikolay Ponomarenko




Re: ОФФ чей продукт ИнфоАптека Склад

2007-06-14 Пенетрантность Андрей Кручинин



On 13 июн, 08:07, Boltik Evgeny [EMAIL PROTECTED] wrote:
 Версия 3.0.1.80
 Вер БД 93.0
 YA 1.3.0.890a
 Я нонечно понимаю что вы далеко но клиентам надо помогать у них по 25 раз на
 дню обрым с серваком сетку посмотрел работает пакеты по 6 байт без
 потерь держит. Сервак не старовать может им что то новей поставить?

Собственно ссылочка на Аптеку-Холдинг реальная. Но с учетом того что
продукт двигается абы-как, думается что идея умершая, и программеров
там вполне может и не быть. У нас например в Волгоградской области я
не знаю ни одной аптеки которая под ним сидит, видно мы не входим в
эти самые 15 регионов которые рекламируются на сайте. Видел демку у
клиентов разве что года 3-4 назад. Не понравилась.

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

Так что может есть смысл перевести клиентов на что-то свое, оно ближе
к телу? Аптечная специализация не сильно отличается от обычного
склада, разве что несколько доп. цен идет в карточке, плюс сертификаты.



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

2007-06-14 Пенетрантность ������� ����������

Hello, Тренер!
You wrote  on Thu, 14 Jun 2007 11:07:47 -0700:

 Т Так все таки интересно чем генераторы не устраивают? 100% - простое и
 Т очевидное решение распределение гарантировано. Зачем огород городить с
 Т тредами и т.д.

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

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

Хотя, конечно, такой подходи имеет право на жизнь.

PS  в оракле народ тоже извращается, при том, что там в несколько раз больше
инструментов :)

Выбрать первую незаблокированную запись из таблицы, как?
http://www.sql.ru/forum/actualthread.aspx?tid=389300hl=aq

Таблица oracle как очередь
http://www.sql.ru/forum/actualthread.aspx?tid=309047hl=aq

Параллельная работа с записями.
http://www.sql.ru/forum/actualthread.aspx?tid=307911pg=-1hl=aq

Select for update - как получить незаблокированные данные
http://www.sql.ru/forum/actualthread.aspx?tid=264566pg=-1hl=aq

Таблица-буфер. Уникальная выборка строк для каждого процесса.
http://www.sql.ru/forum/actualthread.aspx?tid=239337hl=aq

--
-=Я не знаю куда уходит детство, но точно знаю где оно играет=-
With best regards,  Nikolay Ponomarenko




Re: Очередь и параллельное извлечение из нее

2007-06-14 Пенетрантность Dmitri Kuzmenko


Hello, Тренер!

Тренер wrote:

Так все таки интересно чем генераторы не устраивают? 100% - простое и
очевидное решение распределение гарантировано. Зачем огород городить с
тредами и т.д.


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

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

Т.е. тред-обработчик должен сидеть и ждать пока ему сунут пакет
на обработку. Ничего и ниоткуда он сам брать не должен.

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




Connect

2007-06-14 Пенетрантность Deep

Люди добрые помогите подключиться к базе!

Запарился уже, не могу понять как организовать подключение к базе.
Конкретно интересует подключение из С# и/или VB6.

Сервер стоит нормально (Firebird-2.0.1.12855-1-Win32 в комплекции
SuperServer), службы работают (Server и Guardian), подключение с
помощью isql работает нормально (создал новую базу и парочку табличек
в ней), пользователя/пароль не менял (sysdba/masterkey).

Запарился не могу врубиться как организовать подключение к базе из
среды разработки (необходимо в учебных целях) в найденной документации
этот вопрос не освещяется.

Если можно то со скринами и прочими подробностями.

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



  1   2   >