powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Новая Среда разработки. Может быть мне это получится.
25 сообщений из 768, страница 1 из 31
Новая Среда разработки. Может быть мне это получится.
    #35586912
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем...

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

И почти никому не показывал, так как хотел сначала все закончить. Но мне настолько это надоело (в особенности переделывать 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

Сейчас я разрабатываю справку и отлаживаю, дописываю версию.
Конструктивная критика приветствуется.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35586940
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовПривет всем...

Я пишу среду разработки
А написал я это потому, что такой программы нет. По крайней мере в России.
Конструктивная критика приветствуется.
конструктивно.
* Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину.
* Все что описано - возможности любого интерпретатора, того же Dream.
* Особенно в России IDE для программистов не пользуются популярностью, по причине того, что используются "стандартные", а тюнинг русский программист любит делать самостоятельно. Что Вы собственно и сделали, для себя.
* если хотите заработать на помощи программистам, то лучше это делать на поприще разработки компонент. Но опять же... покупать в России будут единицы. Поэтому регистрируйте корпорацию или LLC где-нибудь в США (~900$) и пробуйте на том рынке работать. Примеров масса, главное что-бы было что предложить.
* если же Вы все же специалист в прикладной области, то лучше занятся разработкой прикладных решений.
* Не выкладывайте файлы или демки на сайты, требующие регистрации. 99% их просто проигнорируют по указанной причине.

Все имхо, конечно.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35586954
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину.

Все проекты, что я видел убоги. И они загнулись на начальной стадии, мой
на конечной и имеет качественный приимущества перед флагманскими
продуктами (в своей узкой специализации).

Что за Афина? Можно Url?

> Все что описано - возможности любого интерпретатора, того же Dream.

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

Кстати в отличии от того же Dream, у меня есть подсказка,
автодописывание, переименование переменных и встроенный SQL.
Что бы такое сделать, необходимо использоваться специальный
лексичесский анализатор с компилятором.

Фотографии попробую переложить.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35586959
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
Фотографии попробую переложить.
лучше проект конечно, демку.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35586981
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я всетаки нашел рабочий бесплатный хостинг! :))
И выгрузил фотографии

http://vinxn.by.ru/

iscrafm:
Значит вы пишите подобную систему, даже неудобно.
Я надеюсь завоевывать сердца внешней простотой и красотой.
Я завтра посмотрю ваши презентации с сайта
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587073
Сюмо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МНЕ понравилось!
Кстати, чем то напоминает интерфейс 1с8 :)
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587262
Фотография А6дуллаh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm[quot Алексей Морозов]Привет всем...

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


Канувшая в Лету Афина - это сильное преувеличение. :D
Тот же класс ПО делает ЦФТ.

Все под лозунгом "Вот уже мы сделаем оптимальную систему с крутым использованием фич Oracle".
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587316
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозовiscrafm:
Значит вы пишите подобную систему, даже неудобно.
Я надеюсь завоевывать сердца внешней простотой и красотой.
Я завтра посмотрю ваши презентации с сайта
Алексей, я не пишу подобную систему. Занимаюсь продуктами другой архитектуры и назначения.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587335
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СюмоМНЕ понравилось!

как получилось?
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587357
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А6дуллаhТот же класс ПО делает ЦФТ.

имхо, ЦФТ как-то совсем в стороне. Они специализируются на банковских системах и календарях в стиле НЮ.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587427
Рус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полностью согласен с iscrafm.
Подобных проектов было много в 90-ых. Еще одину "универсальную" и "самую лучшую" среду разработали Вы.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587721
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обьясните мне пожалуйста, почему вы причисляете
мою программу к программам 90-х годов?

Глобально, от того же Delphi 2009 эта программа отличается
лишь наличием более тесной интеграции с SQL.

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

Алексей, я не пишу подобную систему. Занимаюсь продуктами другой архитектуры и назначения.
Я рад, что вы так считаете Просто я посмотрел программы созданне на базе
вашего фреймворка, и на 98% уверен, что реализую из на своей среде
в течении дня. Для меня в этом похожесть.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587763
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовПросто я посмотрел программы созданне на базе
вашего фреймворка, и на 98% уверен, что реализую из на своей среде
в течении дня.
заработаете $миллион за неделю тогда. Я думал вы с серьезными намерениями сюда пришли. Успехов конечно!

p.s. среду все таки покажите?
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587840
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmзаработаете $миллион за неделю тогда. Я думал вы с серьезными намерениями сюда пришли. Успехов конечно!

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

Я от вас слышу лишь обрывки мыслей о возможности заработать.

Что бы заработать миллион, надо найти покупателей.
Если вы найдете мне покупателей на 1000000$, я отдам вам 50% чистого дохода.

Заработать я конечно хочу, но я знаю, что для этого надо сделать - сначала
надо сделать удобное средство разработки. На этот вопрос кроме
неаргументированного сравнения, никто неичего не сказал.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35587956
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
Заработать я конечно хочу, но я знаю, что для этого надо сделать - сначала
надо сделать удобное средство разработки. На этот вопрос кроме
неаргументированного сравнения, никто неичего не сказал.
Алексей, вы не читаете умышленно?

цитата* Подобных проектов много начиналось и кануло в лету. Взять к примеру туже Афину.
* Все что описано - возможности любого интерпретатора, того же 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);
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35588023
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интеграция с языком SQL дала переносимость между серверами различных типов.

Подсказка. проверка и тесная интеграция - это неотемлимая часть современного
продукта, почти все программисты, с которыми я общался не будут пользоваться
средой, которая не поддерживает Ctrl+Space.

А по поводу демки, я не выкину дему до того, как не создам принудительную
10 минтную справку. Иначе человек запустит и будет рассматривать лишь
детали интерфейса.

Общаясь с программистами на других форумах, составлял список проблем
и пожеланий. Обсуждал совю прогармму тем самым составляя справку и
план дальнейшего развития.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35588141
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас уже есть некое подобие объектности в SQL.
- Хотелось бы видеть дальнейшее развитие ООП:
наследование классов данных (таблиц), виртуализацию и полиморфизм методов. Выполнение на SQL сервере логики (трансляция в родной SQL сервера)
- SQL включить в язык непосредственно, а не как язык запросов в языке
С уважением, Naf
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35588348
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35588483
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООП и SQL
С уважением, Naf
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35589089
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторООП и 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 будет только один.
Но невозможно исключить некорректные ссылки, и большое кол-во
неиспользуемых полей и необходимость дополнительной фильтрации
по типу записи явно снизит производительность.

Может быть реализовать этот подход для небольшого числа таблиц
на уровне транслятора. Для программиста разницы не будет, а
упрощение запроса при обращении к таким объектам возможно
увеличит общую производительность
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35589108
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всетаки, мне ктонибудь скажет отличительные черты
сред разработки у.а.с. 90-ых ???
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35589540
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
http://vinxn.by.ru/
Мне тоже понравилось.
На чем пишешь и что используешь.
слишком много текста вывалил, читать не стал.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35589542
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdmслишком много текста вывалил, читать не стал.

тебя тоже послали там?

vinxn.by.ruВы можете вернуться на предыдущую страницу и пойти другой дорогой .

вежливо так.
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35589558
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, а есть где-нибудь в сети разработанный вами редактор отчетов (а-ля Access), описание или примеры?
...
Рейтинг: 0 / 0
Новая Среда разработки. Может быть мне это получится.
    #35589602
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще зеркало:
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-диаграммы, Справочников,
Форм, Отчеты, Графики, Визуализаторы структуры программы и рабочей сети) -
выглядят одинакого и по факту - один и тот же модуль.

Для черчерния чего либо, он используется описания иногда вылючающую
в себя функции отрисовки. Благодаря этому получилось все сделать очень
гибким - и все надписи, иконки, обласи в редакторе - это отдельные обьекты.
...
Рейтинг: 0 / 0
25 сообщений из 768, страница 1 из 31
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Новая Среда разработки. Может быть мне это получится.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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