|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Привет всем... Я пишу среду разработки учетных, управленческих и аналитических систем уже почти два года, еще два года до этого занимался разработкой другого подобного продукта. Конечно, параллельно я сделал не одну программу (в том числе на этой среде), и просто бездельничал (два последних месяца почти ничего не сделал). И почти никому не показывал, так как хотел сначала все закончить. Но мне настолько это надоело (в особенности переделывать 20 раз одно и тоже), что собираюсь за месяц выпустить BETA-версию в течении месяца. Я преследовал две цели при написании этой среды: 1) накопления и анализа. Среда должна быть универсальной, но оптимизированной для разработки программы накопления данных и последующего анализа, расчетов, управления на их основе. Этакие мыслительные программы. 2) И последующее простое сопровождение и доработка программы (другими) программистами. Как следствие. Что бы программа была как можно короче, проще и содержала лишь код относящийся к решению задачи. Я использовал самые популярные языки программирования, и максимально все упростил. Программа содержит в себе: Проработанный, мощный и простой набор компонент Я собрал все самое интересное, что есть в различных популярных средах разработки. И убрал все, что не нужно для написания определенных программ. Все компоненты полностью на скинах (кроме скролл-бара, руки не добрались). Весь функционал программы не зависящий от программиста, максимально расширен и проработан. Среда и пользовательский интерфейс снабжен утилитами. То есть, все что не усложнит программу, потом ведь с этим разбираться Экранные формы содержат ограниченный (но достаточный) набор компонент. Благодаря этому становится проще поддержка чужого кода, а также позволило организовать WEB-интерфейс и переносимость без модификации программ. Но скорее всего я добавлю ActiveX компоненты, потому что пользователи требуют работу с документами MS Word в форме, и компоненты просмотра чертежей для станков с ЧПУ. Компоненты выполняют блокировку базы данных различными способами, для корректности работы с данными (транзакции, флаги, хранимые процедуры). Транслятор SQL диалектов. Для обеспечения переносимости программ между любыми SQL-серверами (возможна также работа с сервером имеющим язык запросов отличный от SQL) программа использует язык запросов максимально похожий на SQL92. Только имеющий одно понятное и простое дополнение к стандартному синтаксису SQL select customer.filial.town.name, code from orders Кол-во поддерживаемых серверов баз данных расширяется написанием специальных модулей, без доработки программы. Типов данных в SQL столько же, сколько и в Паскале. Только есть две разновидности строк STRING и MEMO. STRING имеет ограниченную длину, а MEMO не может участвовать в арифметических операциях при выполнении запроса. В бета версии будет поддерживаться MySQL, MySQL Embedded, MS SQL Server, JetDB (MS Access), Firebird и встроенная локальная однопользовательская БД, не претендующая пока на скорость. При этом программист может использовать запросы без трансляции, но переносимости, проверки и подсказки не будет. Редактор SQL-запросов и исходного кода В программе используется редактор очень похожий на MS Visual Studio 2005 (с фоновой проверкой, подсказкой и авто дописываем в любом месте программы, сворачиванием кода, перехода по функциях по CTRL). Редактор экранных и печатных форм (по моему единственный Wysiwyg) Позволяющий редактировать диалоги с использованием масштабирования, отката, групповых операций и редактировать все одном щелчком. Имеющий вместо списка свойств, панель форматирование аналогичную MS Word. Языки программирования PASCAL, JAVA, BASIC Изначально был взят Delphi ® (да простят за копирайт), из которого было убрано все лишнее и добавлены возможности современных языков. (Я пишу в основном на C++) Компилируют в байт-код, который интерпретируется либо компилируется в машинный код, который записывается DLL. Язык использует сборщик мусора. Потом в него была добавлена возможность непосредственно писать SQL-запросы в коде. Во время редактирования программы программисту будет доступна подсказка, авто-проверка и контроль типов. А так же запрос будет синтаксически разобран, и при запуске программы этот разжеванный запрос будет транслирован в язык SQL-сервера. Скорость работы программ принесена в жертву кроссплатформенности, простоты разработки и сопровождения. Но при этом цикл вычисляющий сумму элементов массива выполняется не существенно медленнее C#. И у массива/датасета есть метод Sum(), написан с учетом многопоточности и MMX (что б было) Пока меня ограничивает лишь медленный граф. вывод через GDI. Набор утилит Анализатор запросов ER-диаграммы Система обновления программ (загрузка обновлений в интернет, блокировка и перезагрузка программ в локальной сети) Многомерный и графический анализ. Архивирование баз данных Перенос баз данных между серверами Отладчик Конроль прав доступа Системный монитор Профилер Встроенная база данных … Ответы на вопросы - А почему? (еще раз в другой проекции) Delphi / C# + FastReport + SQL Server+ плюс компоненты интерфейса EhLib, ElPack, Component One Studio. Вот от этого я шел, только объединил все эти продукты в одно целое. Еще раз повторюсь, в отличии от отдаленно программ (Clarion и 1С например). Я использовал СТАНДАРТНЫЙ СИНТАКСИС языков программирования и SQL. Я тут упомянул не раз 1С в основном, что бы подчеркнуть отличия. Почти любая команда знает - SQL92, BASIC/PASCAL/JAVA, положительные отличия узнаются за день. Поэтому учится не надо, а учится никого не заставишь - все пишут на том, что знают. Эта программа в предназначена, что бы писать много узкоспециализированных программ для накопления информации, управления, анализа чем-либо. Что предполагается в будущем дорабатывать. Быстро пишите программу и отдаете клиенту, возможно даже с исходниками. Когда потребуется доработать программу, то можно привлечь любого программиста с минимальными проблемами. Возможно раздадутся крики - Oracle, C++, Assembler! (раздавались) Но выбор среды, в которой разработка программы займет больше времени, а её дальнейшее сопровождение будет сложнее и дороже - это признак интеллекта? Тут я не сказал, что сама среда нужна для работы программы. Я собираюсь зарабатывать на продаже самой среды клиентам (подобно 1С, или фирмам продающим SQL-сервера), а программистам раздавать их бесплатно, а так же помогать им и дорабатывать под них среду. Написанная в этой среде программа может поставляться в исходных кодах (программа при запуске скомпилируется в байт-код, либо в исполняемый код) и при этом программу можно будет редактировать, дописывать и отлаживать во время работы многих пользователей в сетевом режиме. Кстати еще, в отличии от Delphi, 1С, программировать и исправлять ошибки можно прямо во время работы кучи народа по сети. А написал я это потому, что такой программы нет. По крайней мере в России. Еще немного про язык Набор типов: boolean, integer, float, string, datetime, currency, variant, array of, dataset of, (обьекты) Нет ассемблера Нет заголовков (IMPLEMENTATION, INTERFACE, UNIT, USES...) Нет фишек дельфи (FILE, PACKED, THREADVAR, OBJECT) Функции не требуют предварительного описания. (FORWARD) Статических строк нет (STRING[1]). Указателей нет, для объектов вместо NIL используется NULL (NIL) Нет классов ошибок. Используется RAISE со строкой ''. (Exception) Нет вложенных функций в функции Нет (непосредственно) описания классов. Каждый модуль (кроме GLOBAL) является классом, а вложенных классов нет. Есть структуры, которые не могут содержать методов. Нет процедурных типов (OF OBJECT, ASSIGNED) Объекты на форме связываются жестко по имени. Нельзя выводить своих собственных типов данных (type my = integer) Все массивы начинаются с нуля. И доработал: Добавил сборку мусора Все типы данных (втч ARRAY OF, RECORD) можно привести к VARIANT Добавил свойства по умолчанию, как в Visual Basic Edit1.Text = 'A' Edit1 = 'A' Добавил встроенный SQL D : Dataset; D := (select code,name from clients) N : string; C : integer; N := (single name from clients where code=:C); Добавил блок TRANSACTION END. Если внутри происходит исключение, БД изменения откатывается назад и во время действия блока TRANSACTION база данных _как_бы_ переходит в монопольный режим. TRANSACTION A := (single max(code) from clients); B := (single max(code) from clients); IF A<>B THEN Raise('Никогда не выполнится'); END Еще добавил класс DАТАSET OF X, почти полностью аналогичный ARRAY OF X. Как и у массивов OF - это аналог шаблонов С++ (ARRAY OF INTEGER = vector<int>), но пользователь не может описывать собственные шаблоны, так как это лишь усложнит программу. Остальные языки (JAVA (или С#, только он (r)), BASIC) отличаются лишь синтаксисом, возможности те же. Еще немного про SQL Простой запрос: SELECT var {,var} Запрос из таблицы: SELECT [DISTINCT] var {,var} FROM TABLE [WHERE var] Запрос из таблицы с группировкой: SELECT [DISTINCT] gvar {,gvar} FROM TABLE [WHERE var] GROUP BY var {,var} [HAVIG BY gvar] var - это выражение типа (var+var)-var/var+1+'a'+true+null var - может быть поле таблицы CODE var - может быть fn([var {,var}]), cast(var as type), case... var - может быть реляцией CLIENT.CITY.NAME var - может быть функцией gvar - это выражение типа (gvar+gvar)-gvar/gvar+1+'a'+true+null gvar - может быть SUM(var), AVG(var)... gvar - может быть fn([gvar {,gvar}]), cast(gvar as type), case... gvar - может быть запрос использованный в GROUP BY Эта запросы могут быть объединены <SELECT> { UNION ALL <SELECT> } [ORDER BY var [DESC] {, var [DESC]] Так же поддерживаются UPDАTЕ table SET field=var {,field=var} WHERE var DELЕTЕ FROM table WHERE var INSERT INTO table(field {,field} ) values ( var {,var} ) Служебные слова: "select","as","from","where","group","by","order","desc","having", "union","all","update", "set","delete","insert","into", "values","and","or","not","xor","like","in","sum","avg", "min","max","count","cast","in","integer","string","when", "datetime","float","currency","case","when","then","else", "end","ifnull","is","null" Это в общем, в отличии от стандарта нет JOIN :) Есть скрытый LEFT OUTER JOIN по первичному ключу, хоть убейте остальные они не нужны в 99.9% случаев. Скриншоты http://vkontakte.ru/photos.php?gid=4922029 Сейчас я разрабатываю справку и отлаживаю, дописываю версию. Конструктивная критика приветствуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 00:09 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей МорозовПривет всем... Я пишу среду разработки А написал я это потому, что такой программы нет. По крайней мере в России. Конструктивная критика приветствуется. конструктивно. * Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину. * Все что описано - возможности любого интерпретатора, того же Dream. * Особенно в России IDE для программистов не пользуются популярностью, по причине того, что используются "стандартные", а тюнинг русский программист любит делать самостоятельно. Что Вы собственно и сделали, для себя. * если хотите заработать на помощи программистам, то лучше это делать на поприще разработки компонент. Но опять же... покупать в России будут единицы. Поэтому регистрируйте корпорацию или LLC где-нибудь в США (~900$) и пробуйте на том рынке работать. Примеров масса, главное что-бы было что предложить. * если же Вы все же специалист в прикладной области, то лучше занятся разработкой прикладных решений. * Не выкладывайте файлы или демки на сайты, требующие регистрации. 99% их просто проигнорируют по указанной причине. Все имхо, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 00:42 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
> Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину. Все проекты, что я видел убоги. И они загнулись на начальной стадии, мой на конечной и имеет качественный приимущества перед флагманскими продуктами (в своей узкой специализации). Что за Афина? Можно Url? > Все что описано - возможности любого интерпретатора, того же Dream. Я язык не изобретал и тут нет моих идей - я использовал стандрат. Кстати в отличии от того же Dream, у меня есть подсказка, автодописывание, переименование переменных и встроенный SQL. Что бы такое сделать, необходимо использоваться специальный лексичесский анализатор с компилятором. Фотографии попробую переложить. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 01:03 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей Морозов Фотографии попробую переложить. лучше проект конечно, демку. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 01:09 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Я всетаки нашел рабочий бесплатный хостинг! :)) И выгрузил фотографии http://vinxn.by.ru/ iscrafm: Значит вы пишите подобную систему, даже неудобно. Я надеюсь завоевывать сердца внешней простотой и красотой. Я завтра посмотрю ваши презентации с сайта ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 02:36 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
МНЕ понравилось! Кстати, чем то напоминает интерфейс 1с8 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 08:02 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
iscrafm[quot Алексей Морозов]Привет всем... * Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину. Канувшая в Лету Афина - это сильное преувеличение. :D Тот же класс ПО делает ЦФТ. Все под лозунгом "Вот уже мы сделаем оптимальную систему с крутым использованием фич Oracle". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 10:17 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей Морозовiscrafm: Значит вы пишите подобную систему, даже неудобно. Я надеюсь завоевывать сердца внешней простотой и красотой. Я завтра посмотрю ваши презентации с сайта Алексей, я не пишу подобную систему. Занимаюсь продуктами другой архитектуры и назначения. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 10:32 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
СюмоМНЕ понравилось! как получилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 10:38 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
А6дуллаhТот же класс ПО делает ЦФТ. имхо, ЦФТ как-то совсем в стороне. Они специализируются на банковских системах и календарях в стиле НЮ. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 10:48 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Полностью согласен с iscrafm. Подобных проектов было много в 90-ых. Еще одину "универсальную" и "самую лучшую" среду разработали Вы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 11:10 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Обьясните мне пожалуйста, почему вы причисляете мою программу к программам 90-х годов? Глобально, от того же Delphi 2009 эта программа отличается лишь наличием более тесной интеграции с SQL. Если бесконтрольно расширить спсиок компонент, их методов и различных классов стандартной библиотеки - то вооьще различия пропадут. Алексей, я не пишу подобную систему. Занимаюсь продуктами другой архитектуры и назначения. Я рад, что вы так считаете Просто я посмотрел программы созданне на базе вашего фреймворка, и на 98% уверен, что реализую из на своей среде в течении дня. Для меня в этом похожесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 12:36 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей МорозовПросто я посмотрел программы созданне на базе вашего фреймворка, и на 98% уверен, что реализую из на своей среде в течении дня. заработаете $миллион за неделю тогда. Я думал вы с серьезными намерениями сюда пришли. Успехов конечно! p.s. среду все таки покажите? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 12:47 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
iscrafmзаработаете $миллион за неделю тогда. Я думал вы с серьезными намерениями сюда пришли. Успехов конечно! Я думал вы со мной будете говорить о технических деталях, как я решил те или иныне проблемы. Ни вопросов "как вы это сделаете?", ни возражений. Нет мыслей о том, что вам нравится в подобных системах, что не нравится в моей. Я от вас слышу лишь обрывки мыслей о возможности заработать. Что бы заработать миллион, надо найти покупателей. Если вы найдете мне покупателей на 1000000$, я отдам вам 50% чистого дохода. Заработать я конечно хочу, но я знаю, что для этого надо сделать - сначала надо сделать удобное средство разработки. На этот вопрос кроме неаргументированного сравнения, никто неичего не сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 13:10 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей Морозов Заработать я конечно хочу, но я знаю, что для этого надо сделать - сначала надо сделать удобное средство разработки. На этот вопрос кроме неаргументированного сравнения, никто неичего не сказал. Алексей, вы не читаете умышленно? цитата* Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину. * Все что описано - возможности любого интерпретатора, того же Dream. * Особенно в России IDE для программистов не пользуются популярностью, по причине того, что используются "стандартные", а тюнинг русский программист любит делать самостоятельно. Что Вы собственно и сделали, для себя. * если хотите заработать на помощи программистам, то лучше это делать на поприще разработки компонент. Но опять же... покупать в России будут единицы. Поэтому регистрируйте корпорацию или LLC где-нибудь в США (~900$) и пробуйте на том рынке работать. Примеров масса, главное что-бы было что предложить. * если же Вы все же специалист в прикладной области, то лучше занятся разработкой прикладных решений. могу добавить, что интеграция с языком SQL (типа Линки, аксапты) настолько мизерный прирост вскорости разработки дает в отличие от понижения производительности, что не совсем интересная тема, по крайней мере для меня. Во-вторых, нет предмета обсуждения. Никто его не видел. Вам уже сказали, что подобных проектов море, часть живых, часть канувших в лету. Поэтому чтобы технические вопросы обсуждать, нужно видеть предмет обсуждения. Описанные вами возможности присутствуют во многих проектах, но используя их невозможно реализовать ERP систему за день, или хотя-бы значимую часть ее. Если нашли способ, прекрасно. Но навряд-ли он заключается в ускорении процесса написания программногог кода. Если конечно этот код не выглядит так: Create MRPShedulerInstance as MRPS; MRPS.StartDate = Now; MRPS.DueDate = Now + 5*week; MRPS.Recalc; MRPS.Output into Excel(Display); ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 13:42 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Интеграция с языком SQL дала переносимость между серверами различных типов. Подсказка. проверка и тесная интеграция - это неотемлимая часть современного продукта, почти все программисты, с которыми я общался не будут пользоваться средой, которая не поддерживает Ctrl+Space. А по поводу демки, я не выкину дему до того, как не создам принудительную 10 минтную справку. Иначе человек запустит и будет рассматривать лишь детали интерфейса. Общаясь с программистами на других форумах, составлял список проблем и пожеланий. Обсуждал совю прогармму тем самым составляя справку и план дальнейшего развития. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 13:58 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
У Вас уже есть некое подобие объектности в SQL. - Хотелось бы видеть дальнейшее развитие ООП: наследование классов данных (таблиц), виртуализацию и полиморфизм методов. Выполнение на SQL сервере логики (трансляция в родной SQL сервера) - SQL включить в язык непосредственно, а не как язык запросов в языке С уважением, Naf ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 14:28 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
NafУ Вас уже есть некое подобие объектности в SQL. - Хотелось бы видеть дальнейшее развитие ООП: наследование классов данных (таблиц), виртуализацию и полиморфизм методов. Выполнение на SQL сервере логики (трансляция в родной SQL сервера) Нет. Язык запрсов у меня плоский и банально реляционный. Он внешне похож на ООП только из за автоматических JOIN-ов. SELECT CLIENT.CITY.NAME FROM ORDERS Это выражение будет заменено на CI.NAME и к запросу дописаны следующие JOIN-ы LEFT OUTER JOIN CLIENTS CL ON CL.CODE=ORDER.CLIENT LEFT OUTER JOIN CITIES CI ON CI.CODE=CL.CITY Приветите примеры: наследование классов данных (таблиц), виртуализацию и полиморфизм методов. Я себе это плохо представляю. NafSQL включить в язык непосредственно, а не как язык запросов в языке Вы имеете ввиду полноценное использование в запросах Массивов (Датасетов) и выполнение запросов на клиенте ? NafВыполнение на SQL сервере логики (трансляция в родной SQL сервера) У меня будет трансляция встроенного языка в язык SQL-сервера, это будет достигатся префиксом перед функций. server function Kurs(D:DocDate; C:integer) : currency; begin if c=1 then return 1; return (single top 1 value from CurrValues where Curr=:C and DocDate<=:Date order by DocDate desc) end будет транслирован FUNCTION Kurs(D DATETIME, C INT) RETURNS DECIMAL(14,4) BEGIN DECLARE A DECIMAL(14,4); IF C=1 THEN SET A := 1; RETURN A; END IF; SELECT Value INTO A FROM CurrValues WHERE Curr=C AND DocDate<=D ORDER BY DocDate desc LIMIT 1; RETURN A; END; С уважением, Vinx ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 15:15 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
ООП и SQL С уважением, Naf ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 15:48 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
авторООП и SQL Читал, много думал. Я тоже хотел сделать часть того, что вы писали. Абзац номер 3 По поводу организации ссылки на таблицу по ид-класса и ид-записи больше проблем, чем пользы при организации программ. А в особенности потому что контролировать целостность данных (на уровне сервера баз данных) сложно, Это удаление записей на которые существуют ссылки, это недопустимые классы (таблицы). Ну и просто медленно. select ifnull(t1.name,ifnull(t2.name,ifnull(t3.name,t4.name))) left outer join table1 t1 on (cid=1) and (t1.code=oid) left outer join table2 t2 on (cid=2) and (t2.code=oid) left outer join table2 t3 on (cid=3) and (t3.code=oid) left outer join table2 t4 on (cid=4) and (t4.code=oid) Я сейчас использую другой способ - таблица вместо двух полей (класс,код), содержит такое кол-во переменных, сколько разных таблиц (классов) может быть выбрано. Получение общего для всех таблиц поля Name происходит по запросу select ifnull(t1.name,ifnull(t2.name,ifnull(t3.name,t4.name))) left outer join table1 t1 on t1.code=a left outer join table2 t2 on t2.code=b left outer join table2 t3 on t3.code=c left outer join table2 t4 on t4.code=d Этот способ работает существенно быстрее, так как простейшие условия в JOIN-ах содержат NULL. Необходимо контролировать лишь выбор единственного поля. Можно на уровне языка запросов работать с группами переменных, как с одной переменной X.Name (будет транслирован в пример описанный выше). По логике (X as CLASS).Summa - будет возвращать NULL если обьект не этого класса. Но это получится само собой, так как запросы для таблиц не содержащих поля SUMMA составить невозможно. select ifnull(t1.summa,t2.summa) left outer join table1 t1 on t1.code=a left outer join table2 t2 on t2.code=b Абзац номер 4 - методы, свойства То есть вместо Integer для идентификации записи, используем типы данных соответствующие таблицам. Постоянно об этом думаю. Новые конструкции в OQL по сравнению с SQL Сделал. Только без наследования. Древовидная таблица классов мне изначально не подходила. Хочу группы таблиц, например: - Приходные платежные документы - Расходные платежные документы - Начисления дохода - Начисления расходов И таблицу оплаты документов из двух полей: Pay : Расходные платежные документы Invoice : Начисления расходов При этом эти документы будут входить в другие группы: Движение по кассе (платежные документы, внутренние перемещения, остатки) И т.д. Итого Я и так собираюсь: - Ввести специальные типы данных в программе (в запросах они уже есть) - Ввести поля ссылающиеся на одну из указанных таблиц ООП предложенное вами я возможно сделаю в следующей версии, потому что доработками будут минимальными: - Ограничить древовидное наследование для SQL-классов - Сделать виртуальные методы для SQL-классов Еще мысль об организации данных Еще есть мысль, попробовать размещать некоторые (или все) таблицы в одной таблице SQL-сервера. При этом любой объект идентифицируется один значением - первичным ключом, и JOIN будет только один. Но невозможно исключить некорректные ссылки, и большое кол-во неиспользуемых полей и необходимость дополнительной фильтрации по типу записи явно снизит производительность. Может быть реализовать этот подход для небольшого числа таблиц на уровне транслятора. Для программиста разницы не будет, а упрощение запроса при обращении к таким объектам возможно увеличит общую производительность ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 21:29 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
И всетаки, мне ктонибудь скажет отличительные черты сред разработки у.а.с. 90-ых ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 21:43 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей Морозов http://vinxn.by.ru/ Мне тоже понравилось. На чем пишешь и что используешь. слишком много текста вывалил, читать не стал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2008, 16:30 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
trdmслишком много текста вывалил, читать не стал. тебя тоже послали там? vinxn.by.ruВы можете вернуться на предыдущую страницу и пойти другой дорогой . вежливо так. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2008, 16:34 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Алексей, а есть где-нибудь в сети разработанный вами редактор отчетов (а-ля Access), описание или примеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2008, 17:00 |
|
Новая Среда разработки. Может быть мне это получится.
|
|||
---|---|---|---|
#18+
Вот еще зеркало: http://www.vinx.ho.ua/ iscrafmАлексей, а есть где-нибудь в сети разработанный вами редактор отчетов (а-ля Access), описание или примеры? Печатных форм, Access умеет еще автоматически группировать данные, мой не будет уметь. Я его в последнюю очередь стал писать, и пока он используется лишь в тестововом режиме, параллельно с отчетами на основе Excel. За следующие несколько дней я его хочу полностью переделать, вот это будет финальная версия. Отдельно от программы его не будет Отчеты работают так: В редакторе на прямоугольных областях (бендах), шириной равной в ширине листа, и происзольной высотой размещаются различные обьекты. Некоторые обьекты могут быть связаны с обьектами БД и формы (изображения), тестовые вставки могут в [] скобках содержать SQL-выражения. Бенды выводятся в отчет последовательно формируя страницы, если бенд связан с таблицей (БД или на форме), то вывод бенда повторяется для каджой строки этой таблицы. Бенды с типов колонтитул выводится на каждую страницы сверху и снизу. Вид редактора отчетов http://www.vinx.ho.ua/editor/report.jpg Эксель http://www.vinx.ho.ua/editor/excel.jpg Если кто то смотрел скриншоты, то все редакторы (Меню, ER-диаграммы, Справочников, Форм, Отчеты, Графики, Визуализаторы структуры программы и рабочей сети) - выглядят одинакого и по факту - один и тот же модуль. Для черчерния чего либо, он используется описания иногда вылючающую в себя функции отрисовки. Благодаря этому получилось все сделать очень гибким - и все надписи, иконки, обласи в редакторе - это отдельные обьекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2008, 18:19 |
|
|
start [/forum/topic.php?fid=33&fpage=4&tid=1547171]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
119ms |
get tp. blocked users: |
2ms |
others: | 365ms |
total: | 568ms |
0 / 0 |