powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
60 сообщений из 60, показаны все 3 страниц
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32677972
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вступление
Как известно, начиная с 9-ой версии, в Sybase ASA появилась возможность использовать ее в качестве самостоятельного небольшого веб-сервера и создавать на WatcomSQL веб-сервисы с поддержкой RAW, HTML, XML, SOAP и DISH. Так же были добавлены системные процедуры и функции, позволяющие производить различные полезный операции при работе с вебом (например манипуляции с урлами, переменными форм и т.д.). Не сказать, что присутствуют все необходимые с точки зрения веб-программиста функции, но основной базис есть.

Предисловие
Еще с прошлого года я посматривал на веб-сервисы ASA, но особого применения им не находил, так как был занят и главное не было реального места в проекте, где их можно было бы использовать. Совсем недавно я столкнулся с проблемой генерации сложных по форме и заполнению форм строгой отчетности (отчеты по ЕСН, НДФЛ, кадры и т.д.). Такие отчеты невозможно нормально реализовать на бэндовых отчетниках, будь то Crystal Report, PB DataWindow или другой. Плюс такие отчеты желательно выгружать в редактируемый формат, чтобы перед печатью пользователь мог его изменить. Как следствие, обычно они реализуются как макет в MS Word и через COM/OLE заполняются нужными данными. Такой подход имеет много слабых сторон:
1. Тиражный продукт привязывается к чужому ПО и требует его инсталяции.
2. Макет и код его заполнения никак не связаны, поэтому изменяя макет, приходится потом переписывать код.
3. Код получается сложным, вперемешку с логикой получения данных с БД, бизнес-логикой заполнения макета и логикой работы с интерфейсом OLE.
4. Скорость работы получается достаточно низкой при использовании OLE/COM технологии для заполнения макета.
5. Нет возможности поддержки из за использования специализированных протоколов кросс-независимых отчетов, способных открываться и изменяться не только в MS Word, а например в Open Office (или же придеться все генерить через Ворд, сохранять и открывать в Open Office).

Думаю при желании недостатков подхода генерации через Word можно найти еще много. Соотвествующе я вспомнил об веб-сервисах ASA и с учетом того, что моя БД работает на ASA, решил попробовать покопать в сторону разработки отчетов на HTML.

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

Так как основным требованиям отчета является его возможность открытия в MS Word и Open Office, то первым делом было выясненно именно это. Как оказалось, если в стилях генерить соотвествующие тэги, то можно добиться соблюдений условий форматирования, отступов, размеров страницы, перевода страницы и даже характеристик документа как в Word, так и OpenOffice. Сами браузеры игнорируют большинство таких управляющих тэгов, однако было выявлено, что они так же при печати различают тэг перевода страницы.

Вторым шагом были рассмотрены и изучены принципы работы ASA как веб-сервера. Как и предполагалось, ничего там сложного не оказалось, сервер запускается с параметром "-xs http(port=80)" и по указанному порту начинает принимать http-запросы. Для организации сервисов возврата HTML-страничек предусмотренны веб-сервисы с типом RAW, в теле которых должен быть указан запрос, возвращающий данные. На веб-сервис можно указать уровень доступа к нему (по логину, анонимный) и режим защищенной работы. Для веб-сервисов в ASA автоматически существуют расширения, позволяющие во первых управлять уровнем вложенности урлов и работы с переменными, полученными с клиентской сессии, обращение к которым элегатно сделано в форме ":ИмяПеременной".

Лень, двигатель прогресса
Первое, что я сделал - это хранимую процедуру, которая через функцию List генерила по запросу на таблицу строки для каждой записи в виде
Код: plaintext
1.
2.
3.
SELECT
  List('<TR><TD>' || Field1 || '</TD><TD>' || Field2 || '</TD></TR>', 
        Char( 13 ) || Char( 10 ))
FROM Table1;
Далее полученный результат я ручками вставил в HTML, где уже была обьявлена таблица и получил демку отчета, как это примерно выглядело. С точки зрения разработчика это выглядело мягко говоря не очень и не было ничуть не лучше, чем генерить отчеты, используя Word. Соотвествующе я решил попытать счастья и попробовать "поизобретать" свой велосипед.

Что получилось после одной недели изобретения велосипеда
Получилась технология построения динамических веб-страниц на основе макета HTML, с возможностью использования выборок на SQL, макросов и возможностью регулирования формирования потока контента на WatcomSQL, которой я присвоил кодовое название WebSQL. На текущий момент она поддерживает:
1. Секции - позволяют выделить определенный фрагмент HTML документа, описать на него запрос и при генерации страницы повторить его столько раз, сколько было возвращего записей с указанного запроса. Поддерживается неограниченный уровень вложенности секций. В запросе секции разрешается ссылаться на поля родительских секций (особенно полезно для связи) и формировать части запроса динамически (например разная сортировка в Order By).
2. Алиасы - позволяют ассоциировать поля с алиасами, использующимися в теле текста секции. Например если в секции указать алиас "F1" на поле "Field1", то везде в тексте вместо "F1" при ее построении на каждую запись запроса секции будет вставлено значение поля "Field1". Для алиасов определена локальная область видимости, то есть замена алиаса на поле будет производиться только в теле указанной секции и не действительна во вложенных секциях. Разрешается обьявлять алиасы на поля родительских секций, что позволяет использовать в теле секции значения полей родительских секций.
3. Локальные переменные и параметры ХП - позволяют определить для секции локальную переменную, указать для нее тип SQL и инициализационное значение (любое допустимое в WatcomSQL выражение). Имеют область видимости, где дочерние секции могут видят локальные переменные родителей, но имеют право создать собственные переменные, которые именами перекрывают переменные родительских секций. Для отображения значений переменных в теле секции необходимо так же ассоциировать их с алиасами.
4. Макрокоманды - позволяет в любом месте документа на WatcomSQL описать необходимую логику действий. Поддержка вставки внутри макета HTML операторов WatcomSQL дает всю мощь этого языка по управлению формированием динамической страницы и позволяет выполнять любую логику действий - от ветвления формирования документа, до поддержки аггрегированных действий на основе локальных переменных, определения собственной бизнес-логики, вызова ХП и т.д. Ограничений на использование в макрокомандах скриптов WatcomSQL нет.
5. Макросы - позволяют описать именованный блок текста, внутри которого разрешается ссылки на нумерованные параметры. Далее разрешается вызов макросов из любого места документа по его имени и с передачей параметров. Макросы позволяют создавать повторно используемые фрагменты текста, тэгов, параметров для тэгов, вызовов макрокоманд и любых других часто используемых фрагментов текстов. В теле макросов допускается вложение других макросов, что позволяет создавать эффективную иерархию повторно используемых решений. При обьявлении в секциях макросы имеют область видимости, где дочерним секциям разрешается использовать макросы, обьявленные в родительских секциях, но с правом переопределения макроса с существующим в родительской секции именем. Так же поддерживается библиотеки публичных макросов, в которых можно хранить общие и стандартные макросы, которые потом можно задействовать во множестве документов. Библиотеки являются именованными с поддержкой уровня вложенности модулей (например, "СтандартнаяБиблиотека.ПотокКонтента.Неформатированный"). Для библиотек и их иерархий модулей существуют аналогичные секциям правила области видимости макросов. Для использования в документе макросов публичных библиотек их необходимо обьявлять в секциях, указывая полный к ним путь. В теле секции возможно как обьявление использования всех макросов библиотеки (например "Библиотека.*"), так и перечисление конкретных используемых макросов (например "Библиотека.Модуль.Макрос1"). Для публичных макросов поддерживается возможность указания их алиаса при обьялении в теле секции, что позволяет обойти ограничение на уникальность имен макросов в теле секции или же перекрыть ранее обьявленный в родительской секции макрос с одной библиотеки макросом с таким же именем, но другой библиотеки.

Как это работает
WebSQL в полном смысле слова является компилятором макетов HTML в скрипт ХП на WatcomSQL. На вход ему нужен только текст макета. На выходе он создает в Вашей базе данных готовую хранимую процедуру на WatcomSQL, уже содержащую весь код генерации странички. Соотвествующе далее ASA компилирует ее в байт-код и далее к ней применимы все обычные правила по отношению к хранимым процедам в ASA (организация прав доступа пользователей, возможность скрытия исходного текста, работа в профайлере и дебаггере и т.д.). Еще одним плюсом компиляции является то, что в конечном приложении нет необходимости держать HTML макеты страниц и отчетов. Для организации возврата результата хранимой процедуры через веб теперь достаточно создать соотвествующий RAW веб-сервис, в теле которого поставить вызов этой процедуры c передачей в качестве параметров именнованных переменных, переданных клиентской сессией:
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE SERVICE "asademo/customers" 
  TYPE 'RAW' 
  AUTHORIZATION OFF 
  USER "WebUser" 
AS 
  call sp_Customers(:SortNumber, :SortOrder);

Весь движок WebSQL полностью написан на WatcomSQL и оформлен в виде отдельной базы данных. Для его инсталяции достаточно запустить на сервере ASA базу данных WebSQL.db. Если ASA запущена с поддержкой протокол http, то возможно использование в качестве клиентского приложения собственные веб-сервисы WebSQL через браузер. Планируется сделать на веб-сервисах полный интерактивный сайт для просмотра и изменения его настроек компилятора, работой с библиотеками макросов, страницей интерактивной компиляции макета с указанного HTML файла в скрипт хранимой процедуры в указанный файл sql и помощи по командам, библиотекам макросов, входящих в комплект стандартной поставки и пошаговому обучению работы с ним.

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

Где еще можно использовать WebSQL
На самом деле, являясь макро-технологией, WebSQL можно использовать везде, где необходимо по макету строить текст. Тут все зависит от полета фантации - начиная с генераторов текстовых отчетов и заканчивая генератором SQL скриптов по указанным обьектам базы данных (причем вполне возможно в дальнейшем расширить функциональность компилятора до уровня поддержки множества диалектов и генерации скриптов хранимых процедур не только на WatcomSQL, но и для того же PL/SQL).

Перспективы развития
Сам движок сейчас уже есть, работает и отлажен (что странно, с учетом того, что всем вышеописанным я занимался ровно неделю). В качестве построителя форм строгой отчетности он полностью удовлетворяет требованиям и сейчас на нем уже во всю рисуются макеты отчетов. Так же никто не мешает использовать WebSQL и в качестве генератора сайтов. Обладая всей мощью WatcomSQL и поддерживая повторно-наследуемые решения, по моему мнению он полностью удовлетворяет условиям для генераторов веб-страниц по макетам. Остается дело за малым - создать достаточно большую и удобную библиотеку макросов на все случаи жизни, начиная от поддержки эффективной работы с таблицами (сортировка, фильтрация и т.д.) и заканчивая механизмами ввода и изменения информации, работы визардов и использования веб-браузера как активного клиента, с использованием наработок на JavaScript. Как итог, при построении веб-решений, разработчик будет больше внимания уделять проектированию базы данных и дизайну интерфейса, а так же при определении бизнес-логики как серверной, так и клиентской части будет использован единый язык WatcomSQL.

За неделю написания этой технологии времени на создание примеров и уж тем более сайта, конечно же у меня не было. Сейчас в публично в интернете выложена в качестве демки одна страничка , макет которой я за 5 минут нарисовал в OpenOffice (он меньше тэгов по сравнению с Вордом генерит). Далее я еще потратил 10 минут на программирование этого макета, где помимо запроса на секцию, в которой HTML-таблица заполнялась записями с Customer, я организовал группировку по штатам (без вложенной секции, методов сортировки по штатам и отслеживания изменения штата), порядковый счетчик и 2 макроса для организации поддержки сортировки по колонкам HTML таблицы. Внизу странички есть ссылка на "чистый" HTML макет, на основании которого и была сгенерирована ХП, которая возвращает указанную страничку. Скорость генерации на моей домашней машине странички довольно высокая - время выполнения ХП составляет 20 мс.

Что дальше
Дальше я планирую все таки начать делать демо примеры, писать спецификацию и помощь, сделать и запустить собственный сайт. Сначала будет идти работа по русскоязычному направлению, чуть далее я планирую подготовившись сделать зеркало сайта и помощи на английском языке (когда библиотеки макросов уже будут обладать достаточной функциональностью). В этом топике если сообщество SQL.RU не против, я наверное буду выкладывать дальнейший ход работ над этой технологией, можно сказать в онлайне, что с одной стороны стимулирует меня в работе над ней, с другой стороны позволит Вам уважаемые коллеги покритиковать мои решения и всем (а то и поучить веб-основам программирования), у кого есть желание, протестировать ее на своих реальных базах данных. Для этого в скором времени я планирую написать спецификацию языка и подключить публично в интернете веб-сервис онлайн компиляции макетов HTML, что позволит Вам через интернет под свои БД порисовать макеты и по созданным ХП посмотреть, что из всего этого получается.

Насчет сотрудничества
С учетом того, что технология будет SHAREWARE, причем с патентом и закрытыми при продаже исходниками, мне будет сложно одному попытаться ее раскрутить в пределах СНГ и за рубежом. Я бы не отказался взять в партнеры человека, который дружит с веб-дизайном, Java-скриптами и другими разными веб-технологиями. В паре с ним мы бы составить тандем, где я продолжать бы
наворачивать движок и начинать рисовать прототипы баз данных под различные решения (форумы, аукционы, новостные каналы и т.д.), а он бы сделал сайт под WebSQL и наращивал стандартные библиотеки макросов лучшими наработками веб-программирования.

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

P.S. Гм, после такого большого официального документа, хотелось бы просто услышать мнение уважаемых коллег, насколько действительно все это перспективно и интересно в первом чтении - а вдруг меня просто переклинило и я пытаюсь делать и толкать продукт, который никому не будет нужен :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678161
chad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не будет ли это изобретением велосипеда?
Немного минут поисков по интернету дали два Java reportа с вожможностью экспорта в pdf,rtf,html,xls
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678197
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Технология и не подразумевает конкуренцию с бэндовыми отчетниками. Хотя бы по причине того, что пришлось бы реализовывать программный расчет высоты страницы HTML для перевода страниц. Лучше всего эта технология подходит для генерации динамических веб-страниц, создания отчетов с фиксированными страницами и организации пользовательского интерфейса через веб. Самое главное преимущество, как мне видиться в ней - это то, что не нужно использовать для этих целей сторонние средства и ПО, а так же изучать другие технологии и языки программирования. Фактически уже зная язык разметки документов HTML и являясь специалистом по проектированию баз данных на ASA, уже можно легко делать различные решения, причем все будет идти на языке хранимых процедур WatcomSQL. В итоге у нас получается самодостаточная база данных (не требуется даже инсталяция веб-сервера на ОС - IIS или Apache), которая и данные хранит, и бизнес-логику серверной и клиентской части реализует, генеря сайты и отчеты (в идеале хотелось бы выйти на приличную функциональность построения тонкого клиентского приложения прямо на браузере). Естественно, технология не способна обхватить различные направления и ньюансы создания интернет и интранет проектов, но как Вы сами правильно заметили, на Java существует достаточное кол-во решений, их охватывающих. С учетом того, что в ASA разрешена работа с Java, то это расширяет возможности моей технологии, позволяя подключать к собственным базам данных решения на Java как компоненты и используя их в более легком в освоении WatcomSQL, использующегося в качестве базового языка технологии WebSQL (можно привести аналогию с VB, который использует компоненты низкоуровневых языков). В итоге всегда можно подключить как бесплатный или коммерческий пакет Java, отвечающий за работу с электронными деньгами, генерящий графики, сложные групповые и кросстаб отчеты и т.д.. Особых ограничений на использование Java классов и хранение Java обьектов в ASA нет (если не считать бесплатной регистрации в Sybase для получения лицензии Java на ее использование в ASA).
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678271
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, я хочу оспорить пару утверждений. Если вы не против, конечно :)
ASCRUS
2. Макет и код его заполнения никак не связаны, поэтому изменяя макет, приходится потом переписывать код.
3. Код получается сложным, вперемешку с логикой получения данных с БД, бизнес-логикой заполнения макета и логикой работы с интерфейсом OLE.

Конкретно вот эти два пункта. Дело в том, что у меня уже довольно давно работает аналогичная система - Дельфийский GUI предлагает пользователю выбрать параметры отчета, запускает через SaVCL пачку ХП, и их резалтсеты забрасывает в MS Excel, для этого используется библиотека FlexCel. Связка между ХП и шаблонами отчетов только в наименовании колонок. При добавлении нового отчета или изменении старого приходится следить только за тем, чтобы поле резалтсета упомянутое в шаблоне действительно существовало в резалтсете. Итого: работа с OLE однажды сделаная, более не трогается.

ASCRUS
WebSQL в полном смысле слова является компилятором макетов HTML в скрипт ХП на WatcomSQL. На вход ему нужен только текст макета. На выходе он создает в Вашей базе данных готовую хранимую процедуру на WatcomSQL, уже содержащую весь код генерации странички. Соотвествующе далее ASA компилирует ее в байт-код и далее к ней применимы все обычные правила по отношению к хранимым процедам в ASA (организация прав доступа пользователей, возможность скрытия исходного текста, работа в профайлере и дебаггере и т.д.).
Можно ли в этот "текст макета" запихать команды управления процедурой? Например те же самые grant execute...?
Можно посмотреть результат компиляции макета?

ASCRUSВесь движок WebSQL полностью написан на WatcomSQL и оформлен в виде отдельной базы данных. Для его инсталяции достаточно запустить на сервере ASA базу данных WebSQL.db.
Э??? Данный WebSQL.db это что, "чистая" БД которую предпологается наполнять реальными таблицами/данными/процедурами? Может лучше оформить проект как скрипт который можно было бы наложить на существующую базу?

ASCRUSТак же возможно подключение и использование WebSQL для своих баз данных. Для этого необходимо запустить скрипт "install.sql", который подключит WebSQL в качестве удаленного сервера, ассоциирует удаленного юзера с локальным, подключит нужные удаленные хранимые процедуры и создаст специальные процедуры, позволяющие прямо из родной базы данных вызывать компиляцию макетов с автоматическим их созданием в базе данных. Для очистки обьектов WebSQL в базе данных так же существует скрипт uninstall.sql.
Зачем нужен удаленный сервер? Если речь идет о распределении web и db серверов по разным физическим компьютерам, то лично я предпочел бы поставить на удаленном компьютере обычный http сервер и ходить к базе данных через ASP/ADO если в качестве http-сервера будет IIS или Perl/PHP с их библиотеками если сервером будет стоять Апач.
Завязывать DB сервер на работу с http имеет смысл только если данный DB сервер единственный доступный сервер. Если же в офисе организована нормальная LAN с DB-сервером внутри LAN, а доступ снаружи в LAN перекрыт файрволом, то использование выделенного "классического" http сервера становится единственным решением.

ASCRUS
Остается дело за малым - создать достаточно большую и удобную библиотеку макросов на все случаи жизни, начиная от поддержки эффективной работы с таблицами (сортировка, фильтрация и т.д.) и заканчивая механизмами ввода и изменения информации, работы визардов и использования веб-браузера как активного клиента, с использованием наработок на JavaScript. Как итог, при построении веб-решений, разработчик будет больше внимания уделять проектированию базы данных и дизайну интерфейса, а так же при определении бизнес-логики как серверной, так и клиентской части будет использован единый язык WatcomSQL.
[/quote]
Что-то использованный в показаном макете язык не очень то похож на WatcomSQL :)
Язык почти прозрачен, но к сожалению тяготеет к лапшеообразности. В частности использование переменных до их формального описания. Смесь собственных операторов и html текста тоже не добавляет читабельности. В общем, я пока не особо в восторге.
Во время предварительного чтения данного описания, я предполагал что-то типа ESQL текста, только вместо C/PowerScript чтобы был html текст. Оно по моему было бы намного проще в сочиненнии макетов.

[quot ASCRUS]В этом топике если сообщество SQL.RU не против, я наверное буду выкладывать дальнейший ход работ над этой технологией,[/quote]
Идея хорошая, но ... или я не совсем понял методы реализации или они мне не нравятся :) В общем, я пока в сомнениях, но готов поучаствовать.

[quot ASCRUS]P.S. Гм, после такого большого официального документа, хотелось бы просто услышать мнение уважаемых коллег, насколько действительно все это перспективно и интересно в первом чтении - а вдруг меня просто переклинило и я пытаюсь делать и толкать продукт, который никому не будет нужен :)
Лично мне была бы очень интересна библиотека типа уже упомянутого FlexCel, под Delphi или Java, а лучше и под то и под другое. Принимающая на вход шаблон отчета и пачку резалтсетов и формирующая html. Но если уходить от специально написаного клиента и использовать в качестве клиента стандартный браузер, то наилучшим решением на мой взгляд был бы модуль для http-сервера реализующий ESQL внутри html.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678332
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько надежен/функционален встроенный http-сервер в АСА?
Поэтому я выбираю Apache/PHP.

...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678365
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, я хочу оспорить пару утверждений. Если вы не против, конечно :)
Я только за :)


ASCRUS
2. Макет и код его заполнения никак не связаны, поэтому изменяя макет, приходится потом переписывать код.
3. Код получается сложным, вперемешку с логикой получения данных с БД, бизнес-логикой заполнения макета и логикой работы с интерфейсом OLE.

Конкретно вот эти два пункта. Дело в том, что у меня уже довольно давно работает аналогичная система - Дельфийский GUI предлагает пользователю выбрать параметры отчета, запускает через SaVCL пачку ХП, и их резалтсеты забрасывает в MS Excel, для этого используется библиотека FlexCel. Связка между ХП и шаблонами отчетов только в наименовании колонок. При добавлении нового отчета или изменении старого приходится следить только за тем, чтобы поле резалтсета упомянутое в шаблоне действительно существовало в резалтсете. Итого: работа с OLE однажды сделаная, более не трогается.
В качестве примера я предлагаю рассмотреть отчет для зарплаты НДФЛ, состоящий из кучи листов строгой отчетности. Заваять их на Word или Excel представляется мне нелегким делом.


Можно ли в этот "текст макета" запихать команды управления процедурой? Например те же самые grant execute...?
Можно посмотреть результат компиляции макета?

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

авторЭ??? Данный WebSQL.db это что, "чистая" БД которую предпологается наполнять реальными таблицами/данными/процедурами? Может лучше оформить проект как скрипт который можно было бы наложить на существующую базу?
Действительно WebSQL реализован в чистой БД (размер страницы 1024), в которой лежат системные обьекты движка - таблицы и ХП. Их владелец DBA закрыт паролем и для пользования базой данных предлагается 2 логина - администратор и пользователь. Скриптом проект оформлять не хочется по 2 причинам:
1. Надо же как то защищать свои авторские права от просмотра текста хранимых процедур, где используются некоторые уникальные как я считаю наработки.
2. WebSQL и не нужен в конечной базе, так как он сам при компиляции не привязывается к обьектам этой базы - его задача из макета вернуть скрипт полноценной хранимой процедуры, которую потом можно просто наложить на нужную базу данных. Далее уже для работы этой процедуры ни макет, ни WebSQL не требуется.

авторЗачем нужен удаленный сервер?
Удаленный сервер нужен только в случае, если Вы хотите, чтобы WebSQL не только генерила скрипты ХП по макетом, но и автоматом их создавала. Для этой цели БД WebSQL подключается как удаленный сервер, далее подключается удаленная ХП sp_web_Compile и создается локальная ХП sp_web_CreateProc, которую теперь можно вызывать прямо из соединения своей БД, передавая ей имя файла макета и хранимой процедуры, на что она автоматически в Вашей базе данных создаст по макету указанную процедуру.

авторЕсли речь идет о распределении web и db серверов по разным физическим компьютерам, то лично я предпочел бы поставить на удаленном компьютере обычный http сервер и ходить к базе данных через ASP/ADO если в качестве http-сервера будет IIS или Perl/PHP с их библиотеками если сервером будет стоять Апач.
Вполне реально держать на внешнем слое Apache + ну и тот же PHP для реализации основной логики веб-приложения, а всю бизнес-логику на ASA во внутреннем слое, где PHP подгружает с веб-сервисов нужные HTML странички с ASA. А для внутренних нужд (интранет-сайты) можно вообще просто ставить прокси + ASA и все крутить (сейчас по указанной мной ссылке на демку именно все таки и крутиться).

авторЗавязывать DB сервер на работу с http имеет смысл только если данный DB сервер единственный доступный сервер. Если же в офисе организована нормальная LAN с DB-сервером внутри LAN, а доступ снаружи в LAN перекрыт файрволом, то использование выделенного "классического" http сервера становится единственным решением.
В данном случае ASA является классическим http сервером и я не вижу отличий от того же Апача (хотя каюсь - может быть не знаю всех его особенностей).

авторЧто-то использованный в показаном макете язык не очень то похож на WatcomSQL :)
Язык почти прозрачен, но к сожалению тяготеет к лапшеообразности. В частности использование переменных до их формального описания. Смесь собственных операторов и html текста тоже не добавляет читабельности. В общем, я пока не особо в восторге.
Во время предварительного чтения данного описания, я предполагал что-то типа ESQL текста, только вместо C/PowerScript чтобы был html текст. Оно по моему было бы намного проще в сочиненнии макетов.
Языка как такового в WebSQL нет. Есть макет, внутри которого вставлены управляющие команды его формированием. Самый близкий аналог - это та же похороненная Microsoft технология ASP. Не нужно макет воспринимать как программу. Ее нужно воспринимать как описанный документ, в теле которого с помощью SQL секций, WatcomSQL операторов и макросов описана бизнес логика, влияющая на формирование контента документа. Поэтому сравнивать макротехнологии с языками программирования честно говоря не корректно. С лапшеобразностью я ничего к сожалению поделать не могу, так как мне пришлось следовать по стопам MS Word-а (причем параллейно, так как я сам пытался подобрать семантику языка) и пользоваться для вставки макрокоманд тэгами комментариев. Причина этого кроется только в невозможности в HTML описывать собственные тэги, соотвествующе ввод несанкционированных тэгов повлек бы за собой возмущение различных дизайнеров и редакторов кода HTML. С другой стороны WebSQL не сильно привязан к определенным формальностям описания макросов и в любой момент я могу его расширить до уровня поддержки любых диалектов, заданным пользователем.

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

авторЛично мне была бы очень интересна библиотека типа уже упомянутого FlexCel, под Delphi или Java, а лучше и под то и под другое. Принимающая на вход шаблон отчета и пачку резалтсетов и формирующая html.
С точки зрения кодера да. С точки зрения проектировщика БД лично мне ближе получается для генерации сайтов WebSQL, хотя бы потому, что я не хочу пользоваться алгоритмическими языками типа Delphi или Java, или учить правила и особенности какого нибудь отчетника, когда я прекрасно умею проектировать базы данных, писать запросы и реализовывать логику на WatcomSQL.

авторНо если уходить от специально написаного клиента и использовать в качестве клиента стандартный браузер, то наилучшим решением на мой взгляд был бы модуль для http-сервера реализующий ESQL внутри html.
А именно так все и есть :) Наглядный пример генерации текстового отчета по таблице:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
<! --  
  Описание главной секции документа:
  обьявление локальной переменной @Count и инициализация ее на "0".
 --> 
<! --<section name="#MAIN#"> 
  <field name="@Count" alias="[Total]"/>
  <local name="@Count" type="int" init="0"/>
</section> --> 

 --------------------- 
| List of customers: |
 --------------------- 
<! --  
  Описание секции Customers на запрос 
  по табличке Customer c указанием алиасов на ее поля и
  переменную @Count
 --> 
<! --<section name="Customers" 
  sql="
    SELECT id, lname || ' ' || fname AS name, address, phone
    FROM customer
    ORDER BY state, name">

    <field name="name" alias="[Name]"/>
    <field name="address" alias="[Address]"/>
    <field name="phone" alias="[Phone]"/>
    <field name="@Count" alias="[NN]"/>
</section> --> 
<! -- Тут само тело секции, которое повторяется на каждую запись --> 

<! -- макрокоманда на WatcomSQL --> 
<! --* 
// Увеличиваем счетчик
SET @Count = @Count +  1 ;

// Может быть даже вызывем какую нибудь свою ХП
CALL MyStoredProc ( id );
* --> 
№:[NN]
Name: [Name]
Address: [Address]
Phone: [Phone]
 -------------------- 

<! -- Конец тела секции --> 
<! --/Customers> 

Total records: [Total]
После генерации макета, компилятор WebSQL (ХП) вернет примерно такой код в виде выборки, состоящей из одной записи, c long varchar полем Content:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
 // Начало построения контента 
BEGIN

 // Таблица для построения результатов контента 
DECLARE LOCAL TEMPORARY TABLE #Result (
  Number int NOT NULL IDENTITY PRIMARY KEY CLUSTERED,
  Line long varchar NOT NULL,
  PCTFREE  0 
) NOT TRANSACTIONAL;


 // ***** Начало секции "#MAIN#" ***** 
BEGIN

 // Дополнительные аттрибуты секции 
DECLARE @Count int;
SET @Count =  0 ;

INSERT INTO #Result (Line) VALUES( '
<!-- 
  Описание главной секции документа:
  обьявление локальной переменной @Count и инициализация ее на "0".
-->
<HEAD>
');
INSERT INTO #Result (Line) VALUES( '
</HEAD>

---------------------
| List of customers: |
---------------------
<!-- 
  Описание секции Customers на запрос 
  по табличке Customer c указанием алиасов на ее поля и
  переменную @Count
-->
');


 // ***** Начало секции "Customers" ***** 
BEGIN
  DECLARE @_SQL_Customers long varchar;

 // Устанавливаем запрос для секции 
SET @_SQL_Customers = '
SELECT id, lname || '' '' || fname AS name, address, phone     FROM customer     ORDER BY state, name';

 // Организация движения курсора по секции 
FOR Customers AS Customers NO SCROLL CURSOR USING @_SQL_Customers
DO
INSERT INTO #Result (Line) VALUES( '
<!-- Тут само тело секции, которое повторяется на каждую запись -->

<!-- макрокоманда на WatcomSQL -->
');
 // Увеличиваем счетчик 
SET @Count = @Count +  1 ;

 // Может быть даже вызывем какую нибудь свою ХП 
CALL MyStoredProc ( id );
INSERT INTO #Result (Line) VALUES( '
№:' || @Count || '
Name: ' || name || '
Address: ' || address || '
Phone: ' || phone || '
--------------------

<!-- Конец тела секции -->
');

END FOR;
END;
 // ***** Конец секции  "Customers" ***** 

INSERT INTO #Result (Line) VALUES( '

Total records: ' || @Count || '

');
END;
 // ***** Конец секции  "#MAIN#" ***** 

 // Возвращаем контент 
SELECT List(Line, '' ORDER BY Number) AS Content
FROM #Result;

 // Конец работы 
END;
Далее по желанию этот код или будет оформлен, как тело ХП, или же Вы просто его сможете выполнить в ISQL, динамическом SQL, сохранить в файл скрипта SQL и т.д. и т.п. Причем как видно, уже ни WebSQL, ни сам макет уже не нужны.

авторНасколько надежен/функционален встроенный http-сервер в АСА?
Поэтому я выбираю Apache/PHP.
Насчет надежности - есть поддержка защищенных режимов работы и аутенфикации пользователей по таким же принципам, как и подключение к БД по другим протоколам связи. По функциональности опять же - сам веб-сервер особо ничего не делает - его задача через веб-сервис открыть сессию, залогиниться, выполнить уже нужный запрос или хранимую процедуру и вернуть полученный результат клиентской сессии. То есть в данном случае функциональность и скорость работы - это показатели работы сессий ASA и ее характеристик нагрузок как СУБД, а не как веб-сервера. Еще раз могу подчеркнуть, что использовать Apache и PHP не представляет собой трудности - ASA не обязательно запускать на 80 порт и ее можно сделать внутренним локальным сервером на закрытом для интернета порту, к которому будут обращаться тот же Apach и PHP. Далее уже определение степени интеграции логики на части ASA и части других средств будет зависеть только от программиста.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678393
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу... кажется понял.
То есть, практически данный подход предполагает, что на каждый отчет, у нас будет одна хранимая процедура. Которая будет не только вытягивать несколько резалтсетов из БД, но и склеивать их в один, уже отформатированный, html.
Результатирующий html можно выдавать в клиентский браузер напрямую из ASA (если в нем будут уже объявлены заголовки), либо брать этот html и вклеивать его во внешний html (с заголовками, баннерами, счетчиками, и всякой другой фигней).
Внешний html может быть так же организован как ХП с ASA в качестве http сервера или ASP/SHTML страничка на классичком http сервере.
Так?

Ладно, принимается.
Остается вопрос, почему в качестве средства реализации был выбран сам ASA/Watcom SQL? Может имеет смысл сделать такой конвертор WebSQL -> WatcomSQL в виде обычной программы? Потом добавляем к ней менеджер проекта, в проекте регестрируем пачку шаблонов, и.... По большой, толстой, красной кнопке все обновленные шаблоны уже в виде готовых ХП отправляются в рабочую БД? :)
Кстати, подобный внешний, не привязаный к ASA конвертор мог бы работать и не только с ASA, но оно и под любой другой сервер заработает. Если конечно знать диалект этого сервера или использовать строго SQL-92.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678397
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C другой стороны, компилятор на WatcomSQL позволяет хранить подготовленные шаблоны в блобах рабочей базы, и на лету, на каждый запрос делать компиляцию в процедуру с уникальным именем, запускать процедуру, и по завершению убивать ее. Но тогда все же компилятор надо будет хранить непосредственно в рабочей базе и распространять его в исходниках...
Как вариант - делаем компилятор в виде dll и вызываем его из ASA как внешнюю функцию... Тогда можно будет исходники держать под секретом :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678454
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlугу... кажется понял.
То есть, практически данный подход предполагает, что на каждый отчет, у нас будет одна хранимая процедура. Которая будет не только вытягивать несколько резалтсетов из БД, но и склеивать их в один, уже отформатированный, html.
Результатирующий html можно выдавать в клиентский браузер напрямую из ASA (если в нем будут уже объявлены заголовки), либо брать этот html и вклеивать его во внешний html (с заголовками, баннерами, счетчиками, и всякой другой фигней).
Внешний html может быть так же организован как ХП с ASA в качестве http сервера или ASP/SHTML страничка на классичком http сервере.
Так?

Угу, все так. В принципе как я уже и говорил на самом деле макрогенератор вообще ничего о языке макета не знает, поэтому макет чего он будет строить - HTTP с заголовками, без заголовков, макет SQL-скрипта, генератор XML или еще чего - это уже дело вкуса того, кто макет рисует :)

White OwlОстается вопрос, почему в качестве средства реализации был выбран сам ASA/Watcom SQL? Может имеет смысл сделать такой конвертор WebSQL -> WatcomSQL в виде обычной программы? Потом добавляем к ней менеджер проекта, в проекте регестрируем пачку шаблонов, и.... По большой, толстой, красной кнопке все обновленные шаблоны уже в виде готовых ХП отправляются в рабочую БД? :)
Кстати, подобный внешний, не привязаный к ASA конвертор мог бы работать и не только с ASA, но оно и под любой другой сервер заработает. Если конечно знать диалект этого сервера или использовать строго SQL-92.
Это конечно дико будет звучать, но на WatcomSQL у меня больше развязаны руки по доработке и расширению функциональности движка, чем если бы я это делал например на Java. Все что я описал по функциональности весит ровно 5 хранимых процедур и занимает на текущий момент примерно 500 строчек кода с обширными комментариями, которые я так люблю вставлять на любой чих в коде :) Я очень сильно сомневаюсь, что на Java я смог бы за неделю на классах реализовать подобную функциональность, с подобным кол-вом кода, чтобы все с первого раза заработало и легко расширялось и модифицировалось по функциональности :) Плюс так как я планирую хранить различные данные по движку (конфигурация, библиотека макросов, еще чего нибудь), то мне по любому бы пришлось задействовать базу данных, а из за этого бы пришлось подключать JDBC, делать бизнес-логику контроля за уникальностью имен обьектов и т.д. и т.п. В данном случае решение на WatcomSQL позволяет мне использовав всю мощь языка запросов и функциональности ASA обходиться малой кровью, да еще и без всяких интерфейсов доступа, причем компиляция занимает миллисекунды. В конце концов и сам MacroSQL именно на это и расчитан - ничего лишнего, зачем нам интерфейсы доступа на SQL для генерации HTML, когда мы внутри сессии и так видим, все что нам надо. В случае же написания компилятора на внешнем по отношению к ASA языку мы получаем проблемы с отладкой компилятора, поддержкой кроссплатформенности на разных ОС, более сложной инсталяции (БД надежнее и легче скопировать и подключить к другой БД, чем внешний выполняемый модуль к указанной БД) и еще и лишний язык для сопровождения компилятора. Ну и напоследок хочу добавить, что я так привык к вкусностям WatcomSQL и настолько привык думать множествами и запросами, что мне честно говоря даже немного претит чего то писать на алгоритмическом языке и заморачиваться с ООП, компонентами доступа или еще чем. Единственное исключение из этого правила составляет PowerBuilder, на котором я продолжаю работать и который меня радует возможностями своих DataWindow и PowerScript, но при условии что он только используется по назначению - построении клиентских приложений.

авторC другой стороны, компилятор на WatcomSQL позволяет хранить подготовленные шаблоны в блобах рабочей базы, и на лету, на каждый запрос делать компиляцию в процедуру с уникальным именем, запускать процедуру, и по завершению убивать ее. Но тогда все же компилятор надо будет хранить непосредственно в рабочей базе и распространять его в исходниках...
Все таки скрипты движка я открывать не буду, распостраняться они будут как база WebSQL.db, у которой скрыты исходные тексты ХП и нет возмодности изменить служебные обьекты из за того, что запоролен хозяин БД. Это мне еще гарантирует, что народ не будет удалять или менять то, что нельзя изменять и удалять. С другой стороны в этой БД пользователи могут создавать собственные обьекты и заполнять специальные пользовательские таблички тех же библиотек макросов, что позволит им описывать и расширять повторно используемые решения. Компилировать скрипты можно и так на лету, без обязательного создания ХП, полученный код будет прекрасно выполняться через EXECUTE IMMEDIATE или в ISQL, так что ничего лишний раз создавать или удалять не надо. Запустить WebSQL можно и на одном сервере с рабочей базой командой START DATABASE по мере необходимости и так же его остановить. Ну и плюс я напоминаю, что это только базовый комплект моего макродвижка и я собираюсь еще дальше его расширять (поддержка генерации секций и подсекций одним SQL-запросом с помощью подзапросов и функции LIST, если внутри них не используются макрокоманды, поддержка движения секции в виде цикла WHILE LOOP, возможность установки аттрибутов организуемых курсоров, и т.д. и т.п.). В общем двигаться куда есть, главное, чтобы движение было целенаправленным и в нужную сторону :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678459
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSВ принципе как я уже и говорил на самом деле макрогенератор вообще ничего о языке макета не знает, поэтому макет чего он будет строить - HTTP с заголовками, без заголовков, макет SQL-скрипта, генератор XML или еще чего - это уже дело вкуса того, кто макет рисует :)
А что проверка на синтаксис отсутсвует как класс?

ASCRUSПлюс так как я планирую хранить различные данные по движку (конфигурация, библиотека макросов, еще чего нибудь), то мне по любому бы пришлось задействовать базу данных, а из за этого бы пришлось подключать JDBC, делать бизнес-логику контроля за уникальностью имен обьектов и т.д. и т.п.
Ну если внешний компилятор делать на java то и библиотеку его можно и нужно хранить в jar'ах. БД там совсем не нужна :)

ASCRUSподдержкой кроссплатформенности на разных ОС,
Java. Если кроссплатформенность действительно нужна. Либо C компилируем перед распространением на разные платформы, а пользователи уж как-нибудь сами сумеют дополнительные макросы скомпилировать :) Впрочем, "компилируемый макрос" уже звучит странновато :)

ASCRUS более сложной инсталяции (БД надежнее и легче скопировать и подключить к другой БД,
Ну да - ну да. А EBF кто накладывать будет? :) Разрешите напомнить - если база работала на более свежем сервере, то она откажется запускаться на более старом. А это значит что пользователи будут вынуждены выкачивать и накладывать пачку EBF'ов. А если они этого делать не хотят? Вот я например очень и очень долго не апгрейдил свои сервера с 7.0.2. Просто потому, что в 7.0.3 поменяли работу с локальными темп именами, и при переходе на 9-ку мне пришлось переписывать почти сотню ХП.
А для инсталляции внешней программы, чаще всего, достаточно запустить один экзешник или распаковать один tar.gz и запустить setup.sh. И нету привязки к ASA.

ASCRUSЕдинственное исключение из этого правила составляет PowerBuilder, на котором я продолжаю работать и который меня радует возможностями своих DataWindow и PowerScript, но при условии что он только используется по назначению - построении клиентских приложений.
"Tell me!" как говорят наши друзья американцы :) Только что два часа убил: пытался понять почему композитное DW начало криво рисоваться. В итоге экспортировал его в srd, стер из pbl, импортировал обратно - идеально отрисовалось. Что это было за явление так и не понял.

ASCRUSКомпилировать скрипты можно и так на лету, без обязательного создания ХП, полученный код будет прекрасно выполняться через EXECUTE IMMEDIATE
Да действительно. Вечно я про эту команду забываю. Просто ни разу в реальной жизни ее не использовал :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678462
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА что проверка на синтаксис отсутсвует как класс?
WebSQL проверяет на синтаксис свои макрокоманды в компилируемом документе. Сам документ он не проверяет по той простой причине (повторюсь), что он ничего про него не знает. И ему и не надо знать - его задача скомпилировать по контенту макета хранимую процедуру, реализовав в ней всю указанную для него в документе логику управления формированием контента и привязкой его к SQL-запросам и операторам.

авторНу если внешний компилятор делать на java то и библиотеку его можно и нужно хранить в jar'ах. БД там совсем не нужна :)
Зачем чего то делать на Java и требовать наличия у пользователя JVM, когда это прекрасно работает на родном языке ASA WatcomSQL ? Другое дело, что на Java было бы неплохо сделать собственный дизайнер построения макетов, с поддержкой семантики WebSQL, но это уже из другой оперы. У меня неплохо с построением макетов справляется GoldFusion Studio и даже OpenOffice.

автор ASCRUSподдержкой кроссплатформенности на разных ОС,
Java. Если кроссплатформенность действительно нужна. Либо C компилируем перед распространением на разные платформы, а пользователи уж как-нибудь сами сумеют дополнительные макросы скомпилировать :)
Гм, зачем и тут Java, когда макросы - это имя макроса и тело макроса с поддержкой параметров, внутри которого могут идти WatcomSQL команды, тэги, текст, стили, вызовы вложенных макросов ... в общем все то, что нужно человеку для описания повторно используемого решения в макетах. То есть макрос - это кусок чего то, что можно повторно использовать. Особых требований к этому чего то нет - лишь бы параметры в теле макроса корректно обьявлялись.

авторВпрочем, "компилируемый макрос" уже звучит странновато :)
Макрос - это определенная последовательность действий, которую можно в дальнейшем повторно использовать (в случае с WebSQL макрос - это определеный фрагмент текста). Дальше уже зависит от логики технологии - можно макрос каждый раз интерпретировать и выполнять, можно сразу по его телу скомпилировать на каком то языке готовый скрипт и при ссылке на макрос уже сразу выполнять скомпилированный скрипт. В данном случае для WebSQL весь HTML макет можно назвать одним большим макросом, на основании которого строиться готовый к употреблению скрипт на WatcomSQL.

автор ASCRUS более сложной инсталяции (БД надежнее и легче скопировать и подключить к другой БД,
Ну да - ну да. А EBF кто накладывать будет? :) Разрешите напомнить - если база работала на более свежем сервере, то она откажется запускаться на более старом. А это значит что пользователи будут вынуждены выкачивать и накладывать пачку EBF'ов. А если они этого делать не хотят? Вот я например очень и очень долго не апгрейдил свои сервера с 7.0.2. Просто потому, что в 7.0.3 поменяли работу с локальными темп именами, и при переходе на 9-ку мне пришлось переписывать почти сотню ХП.
На 9-ке у меня таких проблем не наблюдается. Между версиями 7 и 9 по любому бы были конфликты хотя бы потому, что это можно сказать по ядру совершенно разные СУБД.

автор ASCRUSЕдинственное исключение из этого правила составляет PowerBuilder, на котором я продолжаю работать и который меня радует возможностями своих DataWindow и PowerScript, но при условии что он только используется по назначению - построении клиентских приложений.
"Tell me!" как говорят наши друзья американцы :) Только что два часа убил: пытался понять почему композитное DW начало криво рисоваться. В итоге экспортировал его в srd, стер из pbl, импортировал обратно - идеально отрисовалось. Что это было за явление так и не понял.
Ну это радости жизни :) PB всегда напоминает, что он то конечно молодец, но расслабляться с ним нельзя :)

автор ASCRUSКомпилировать скрипты можно и так на лету, без обязательного создания ХП, полученный код будет прекрасно выполняться через EXECUTE IMMEDIATE
Да действительно. Вечно я про эту команду забываю. Просто ни разу в реальной жизни ее не использовал :)
А вот поэтому и возникает некоторое непонимание, что я имею ввиду, потому как я частенько для автоматизации самого себя именно этой командой и пользуюсь. Стоит только заглянуть в FAQ/Примочки :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32678540
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм. Я по прочтении описания технологии и ее возможных перспектив, мягко говоря, был впечатлен. :) Особенно что это за неделю было придумано. :))

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

Вообще говоря, это мне напоминает Sybase-совскую же PowerDynamo, которое они благопоолучно похоронили в пользу EAS. Там тоже описывались шаблоны на языке DynaScript и на выходе была готовая страничка или что-то еще, в зависимости от обработок. И прикручивается к любому веб-серверу, через CGI как минимум, про другие способы не скажу точно. У нас до сих пор на ней куча интранетовских сайтов работает.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32713762
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут чтобы особо на форуме не флеймить, решил кое какие описание развития моего MacroSQL (пришлось переименовать с WebSQL по причине того, что оказалось, что он не только Web) в форум Теста выкладывать. Кому интересно, можно глянуть:
/topic/121139#991228
- на этот раз я тут его прикрутил для генерации по однотипным шаблонам скриптов процедур, триггеров и функций WatcomSQL. Надоело мне ручками в БД одно и тоже писать, пусть теперь ASA за меня делает, я лучше буду мышкой галочки ставить где надо по табличкам БД :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32751643
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мельком прочитал, заинтересовало... А в каком сейчас состоянии WebSQL?
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32751676
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря в забавном :) На его основе я разработал методологию экстремального программирования на базе прототипов сущностей с эталонными свойствами и процедурами, плюс механизм обвязки в зависимости от установленных на таблицу аттрибутов триггеров и ХП. Например, у меня сейчас по этому поводу в БД автоматом по шаблонам в зависимости от аттрибутов генерятся где то 200 ХП и 150 триггеров на таблицы по шаблонам. Так же сейчас делается инструментарий под все это дело, с автоматической генерацией по шаблонам представлений по библиотеке стилей в формате DataWindow под PowerBuilder и DataWindow.NET.

P.S. Я готов выложить MacroSQL в OpenSource, однако пока у меня нет времени на его документацию. Хотя там честно говоря учить особо нечего - ровно 3 команды управления генерацией контента и WatcomSQL в качестве встроенного языка шаблонов. Другое дело, что необходимо вникать в саму концепцию.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32751753
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Звучит мощно, но не понятно... :-)

я вот не могу понять, на основании каких исходных данных генерятся ХП и триггеры. И какой код в этих ХП и триггерах.

Можно на примере объяснить? Например, вот на таком примитивном:

Группа товаров (ИД, Наименование, Признак "не используется")
Товар (ИД, ИД группы, Наименование, Цена, Валюта, Описание, Признак "не используется").

Пусть условно нужно будет написать клиента для такой бд и сделать отчет (типа прайса).

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

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

Чем может тут помочь WebSQL?



И второй вопрос. Какова дальнейшая судьба этой затеи? Это будет опенсурс или платный продукт?
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32751830
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сержя вот не могу понять, на основании каких исходных данных генерятся ХП и триггеры. И какой код в этих ХП и триггерах.

Можно на примере объяснить? Например, вот на таком примитивном:

Группа товаров (ИД, Наименование, Признак "не используется")
Товар (ИД, ИД группы, Наименование, Цена, Валюта, Описание, Признак "не используется").

Пусть условно нужно будет написать клиента для такой бд и сделать отчет (типа прайса).

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

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

Чем может тут помочь WebSQL?
Как известно любой проект состоит из 2 частей - непосредственной бизнес-логики, реализуемой по постановке и физической реализации на основании возможностей инструментария (системная логика). MacroSQL позволяет писать повторно используемые шаблоны решений для SQL (как для бизнес-логики, так и для системной логики), для генерации динамических страничек HTML, генерации по шаблонам XML и т.д.

Думаю по HTML и XML все понятно - рисуется шаблон, в котором указываются поля и правила их заполнения. В случае SQL все похитрее. Приведу одно из используемых мной решений:

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

ТЗ
- на таблицы с такими данными нужны триггера BEFORE INSERT, UPDATE, DELETE которые запрещали бы изменения данных в закрытых периодах.

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

Это примитивная ситуация использования шаблонов. На самом деле шаблоны можны рисовать гораздо мощнее - например во время генерации обьекта БД по шаблону требуется генерить ту или иную часть скрипта в зависимости от метаструктуры обьекта. Ну например для генерации процедуры добавления записи в таблицу необходимо во первых сгенерить ее параметры, соотвествующие именам и типам полей таблицы, во вторых если присутствует инкремент-поле, то необходимо параметру поставить тип возврата OUT. Соотвествующе в теле шаблона можно вставить обычный WatcomSQL код, который обращается к метаструктуре указанной таблицы, получает нужные данные и в зависимости от результата генерит ту или иную часть скрипта шаблона. Сейчас у меня на свой проект более десятка шаблонов на все случаи жизни - поддержку хранения данных в истории, их изменения задними числами, организация проверок на изменения системной информации, создание ХП для клиента на изменения и удаления данных и т. д. Все генерится автоматически, если чего то не хватает, то достаточно изменить шаблон и заново запустить генерацию.

СержИ второй вопрос. Какова дальнейшая судьба этой затеи? Это будет опенсурс или платный продукт?
Я думаю это будет open-source. На его базе я сейчас веду эксперементальную разработку собственной платформы построения клиент-серверных приложений, так что было бы здорово, если бы технология MacroSQL получила распостранение и в силу возможности использования повторно используемых шаблонов и макросов обрастала бы решениями в различных направлениях. Звучит конечно помпезно, но на самом деле те кто видел эту технологию признают, что в этом что то есть :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32751839
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSДумаю по HTML и XML все понятно - рисуется шаблон, в котором указываются поля и правила их заполнения.

А как указываются правила? Ведь правило может быть совсем не тривиальным.

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

Слова красивые, но меня ими не запугать ;) Что понимается под платформой построения кс-приложений? КС-приложения состоят из серверной части (в нашем случае АСА) и клиентской, которую пишут на каком-то средстве. Что это будет за средство, ПоверБилдер?

Или может будет все на АСА, а клиент - использование возможностей веб-сервера АСА?
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32751946
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серж ASCRUSДумаю по HTML и XML все понятно - рисуется шаблон, в котором указываются поля и правила их заполнения.

А как указываются правила? Ведь правило может быть совсем не тривиальным.
Без проблем. В качестве языка управления генерации контента используется сам WatcomSQL, думаю никто не будет отрицать, что на нем можно описать самое нетривиальное правило, ну а если вспомнить что на нем можно вызывать и использовать Java обьекты ... то вообще неразрешимых задач на горизонте не видно.

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

Слова красивые, но меня ими не запугать ;) Что понимается под платформой построения кс-приложений? КС-приложения состоят из серверной части (в нашем случае АСА) и клиентской, которую пишут на каком-то средстве. Что это будет за средство, ПоверБилдер?
Платформа поддерживает автоматическую генерацию по определенным стилям, описанных на DataWindow Expression, представлений DataWindow, экспортирующихся в библиотеки проекта на PowerBuilder или C#. Я мог бы конечно довести до полной автоматизации вообще построение клиентского приложения, но не вижу в этом смысла - у меня для PB есть целая иерархия продуманных и проверенных временем компонент и форм для построения качественного интерфейса. Полученный в результате генерации DataWindow элементарно можно далее просто открыть в DataWindow дизайнере PB, подредактировать (растащить мышкой поля, проставить lookup поля, дополнительные правила форматирования, проверок и т.д.). Далее достаточно наследоваться от нужной формы, прицепить туда готовый DataWindow и на коде PowerScript дописать интерфейсную часть бизнес-логики и сделать ее вызов с проекта. С учетом того, что при генерации DataWindow платформа уже проставила различные правила получения, сохранения и ввода информации, процесс получается быстрым и не сложным и вводить его дальнейшую автоматизацию означало бы лишать программиста клиентской части гибкости и подсовывать ему вместо PowerBuilder собственной средство разработки приложений, что было бы совсем печально (думаю такие печальные системы перечислять не стоит). Так что главный упор платформы - это не автоматизировать создание серверной или клиентской части, а реализовать 2 главных для проектирования парадигмы:
1. Обеспечить абстрагирование данных от кода - в платформе есть понятие прототипа сущности, у которого есть эталон полей, эталонные процедуры получения и сохранения информации, понятие связи с другими прототипами и юнит-тесты, успешное выполнение которых гарантирует правильность физического отображения в БД прототипа. Получается, что в независимости от способа физического проектирования и реализации сущности в БД, прототип всегда будет абстрагирующим слоем, гарантирующем серверной и клиентской части корректность и правильность работы с ожидаемой информацией.
2. Обеспечить разделение бизнес и системной логики. В данном случае моя платформа требует, чтобы вся основная бизнес-логика хранилась только на сервере. Клиенту оставляется только интерфейсная часть бизнес-логики. В тоже время платформа, в которую входит MacroSQL и мои компоненты построения интерфейсной части под PowerBuilder настаивает, чтобы системная логика как для БД, так и клиентской части была максимально повторно-наследуемой и автоматической. Если условия БД требуют, чтобы на определенные таблицы вводилась триггерная проверка на невозможность изменения информации задними числами, значит такая проверка должна быть написана в виде шаблона и для соотвествующих таблиц установлен аттрибут из словаря аттрибутов, который укажет шаблону, что на них будут сгенерированы соотвествующие триггера. Для клиентской части в плане системной бизнес-логики предоставляется ООП иерархия компонент и форм, что позволяет просто наследоваться от нужных обьектов и изначально получать требуюмую функциональность. В данном случае в моей иерархии ключевыми фигурами являются прототипы главных и дочерних форм, компонент для построения визардов ввода и изменения информации, а так же наследованный DataWindow контрол с расширенной функциональностью. Все обьекты автономны и при использовании в проекте могут быть наследованы для дальнейшего расширения их базовой функциональности и использовании при построении клиентской части приложения.

ASCRUS
Или может будет все на АСА, а клиент - использование возможностей веб-сервера АСА?
Вариант построения тонкого клиента на браузере вполне возможен и с помощью MacroSQL легко автоматизируется, где можно взять любой HTML редактор для рисования шаблонов форм и отчетов, бизнес-логику вынести в ХП, а управляющий код интерфейса (системную логику), описываемых тэгами и JavaScript, автоматизировать с помощью использующейся технологии макросов (по принципам ближе всего к функциональным языкам). Будет неудобство в том, что HTML редакторы будут управляющий код для MacroSQL видеть как комментарии, так что в случае написания собственного RAD средства можно было бы добиться действительно удобной для рисования HTML-клиентов IDE. Однако во первых я не имею времени писать свою IDE, во вторых будет очень сложно реализовать на JavaScript для браузера всю ту функциональность, которую изначально предоставляет PowerBuilder. Лично я предпочитаю идти по пути наименьшего сопротивления и всегда пользоваться существующим, чем изобретать свое. Однако для генерации динамических сайтов думаю при соотвествующей обвязке с веб-сервером и тем же PHP мой MacroSQL мог бы принести несомненную пользу и перенести с PHP на ASA всю бизнес-логику сайта, оставив PHP такие системные вещи, как управление сессиями, обеспечение защиты, работы с электронными деньгами и т.д.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32753741
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за пояснения.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32761488
dp_tnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUSP.S. Я готов выложить MacroSQL в OpenSource, однако пока у меня нет времени на его документацию. Хотя там честно говоря учить особо нечего - ровно 3 команды управления генерацией контента и WatcomSQL в качестве встроенного языка шаблонов. Другое дело, что необходимо вникать в саму концепцию.

Бало бы очень интересно посмотреть/попробовать. Заниматься изобретением велосипеда к сожалению нету времени :(. Интересует в первую очередь генерация html.

Страничка http://62.141.90.19/websql/asademo/customers мне не доступна :(
(62.141.90.19 даже не пингуется)

А документация - достаточно по 1 примеру шаблона на каждую конструкцию, особенно с иллюстрацией вложенных секций. с реализацией отношения master->detail.

Если примеры и MacroSQL можно откуда-то утащить - пришлите пожалуйста сылку на dp_tnd@km.ru. Или в форуме обнародуйте. А лучше обоими способами - читать форум регулярно не получается.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32761557
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо - я на выходные постараюсь на ASADemo чуть порисовать шаблонов на HTML. Если все получится, то я исходники MacroSQL и шаблоны выложу прямо на SQL.RU .

P.S. Данный ip не пингуется, потому что это мой домашний компьютер, сейчас он в оффлайн днем, так как вроде никто особо к нему не обращается. Скоро он будет работать в режиме с 8-00 до 22-00 кроме выходных, так как на нем я хочу открыть FTP. Можно будет тогда на нем и ASA как веб-сервер поднять.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32761710
dp_tnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUSХорошо - я на выходные постараюсь на ASADemo чуть порисовать шаблонов на HTML. Если все получится, то я исходники MacroSQL и шаблоны выложу прямо на SQL.RU .


Спасибо! Жду с нетерпением !!! :-))
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32762182
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал делать сайт на базе демонстрационной базы ASADemo. Сайт доступен тут: http://62.141.90.19 , предположительно будет работать с 8-00 до 22-00 ежедневно. Все остальное я буду выкладывать в его новости.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32762187
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм, работать то он начал, только пока по интернету почему то недоступен. В понедельник буду выяснять у провайдера.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32762240
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было бы неплохо уточнить в каком часовом поясе стоит сервак. Что-то мне подсказывает, что 8 часов у вас и 8 часов у нас наступают в разное время :-)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32762256
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервак стоит у меня дома, то есть в Москве. Соответствующе и время московское. Почему с 8 до 22 - гудит же он, спать моим будет мешать :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32762833
dp_tnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUSНачал делать сайт на базе демонстрационной базы ASADemo. Сайт доступен тут: http://62.141.90.19 , предположительно будет работать с 8-00 до 22-00 ежедневно. Все остальное я буду выкладывать в его новости.
Сайт по-прежнему не пингуется :(
К сожалению, нормальный интернет у нас как раз после 22 :(.
Нельзя ли что-то выложить, как и предполагалось на SQL.RU. Как я понимаю, начальный комплект вряд ли будет занимать больше 50 кБ текстов. А зипоавный и того меньше.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32763066
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придеться подождать с пару дней. Как оказалось мой провайдер сейчас меняет канал и у него сейчас идет перенастройка всего. С работы же на SQL.RU я положить не могу - у нас тут админы так зафайреволились, что сами себе ничего закачать или уплоадить не могут :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32763191
dp_tnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUSС работы же на SQL.RU я положить не могу - у нас тут админы так зафайреволились, что сами себе ничего закачать или уплоадить не могут :)

А может можно через e-mail ? Просто есть 2-3 дня не очень напряженных, когда можно поднять голову и посмотреть на новые технологии. Оценить применимость и решить - применять готовое, приготовить пару напильников для окончательной заточки :) или все-таки изобретать собственный велосипед.

Если будет возможность, закиньте пожалуйста материалы в dp_tnd@km.ru

А то руки уже 4-й день чешутся :-))
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32763317
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Высылаю по почте что есть. Описание выкладываю сюда, чтобы если что, не повторяться. Итак разворачиваем архив MacroSQL.rar в папку MacroSQL:
Код: plaintext
1.
MacroSQL
  \Demo

в самой папке MacroSQL файлы:
install_struct.sql
- инсталяция структуры таблиц MacroSQL

install_data.sql
- загрузка в таблицы данных. здесь необходимо переправить параметр пути [C:\MacroSQL] на другой путь к инсталяционному директорию, если он другой

install_data_load.sql
- вызывается из install_data и загружает данные (но не очищает перед этим таблицы)

install_proc.sql
- инсталяция процедур генератора MacroSQL

*.dat
- данные для таблиц MacroSQL

В папке DEMO лежит образ сайта, который я начал на выходных делать на MacroSQL. В качестве БД использованна ASADEMO.db, на которую я накатал инсталяцию MacroSQL. Пока все что и как работает можно посмотреть как раз на ее примере. Необходимо поднять эту базу со следующими параметрами:
Код: plaintext
-m -xs http(port= 80 ) "C:\MacroSQL\DEMO\ASADemo.db"
так же там лежат макеты (*.html) шаблонов, по которым был скомилирован сайт. В БД для обеспечения функционирования сайта были введены таблички:
web_Config
- конфигурация сайта. любое изменение в таблице вызывает перекомпиляцию новостей (см. ниже). Здесь нужно правильно расставить параметры, чтобы привязаться к текущему серверу.

web_News
- новости, в поле Content храниться текст новости, допускается использование HTML тэгов и операторов MacroSQL. Так же есть поле CompileContent, которое хранит в себе уже автоматически откомпилированную через MacroSQL новость. В данном случае я не стал заморачиваться с динамической компиляцией новостей во время построения контента для сессии и сделал это статически.

Так же в папке DEMO лежит скрипт generate.sql, в котором прописано через вызовы ХП MacroSQL компиляция шаблонов в ХП. Такие ХП в БД лежат по маске web_html_* и web_include_* . Так же для БД я написал различные дополнительные ХП для возвращения по имени конфигурационного параметра его значения, получения с диска текста макета, картинки, возвращения скрипта ХП и т.д. Ну и собственно говоря в БД прописаны сами web-сервисы, отвечающие за работу сайта.

на текущий момент реализованы режимы - новостной канал (грид с сортировкой по дате новости), краткое описание технологии и кратко о себе. Шаблоны я делал в OpenOffice, далее через Notepad вставлял в них нужные описание секций и скриптов. Если знакомы с HTML, то код MacroSQL в них будет четко виден. Дизайн естественно никакой.

После запуска БД и настройки параметров в web_Config сайт можно поднять через броузер, написав http://localhost .

Вот вроде краткая инструкция, пробуйте, заодно здесь откорректируем инструкцию и инсталяцию :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32771202
dp_tnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUS
Вот вроде краткая инструкция, пробуйте, заодно здесь откорректируем инструкцию и инсталяцию :)

Попробовал покрутить MacroSQL. стартовая страничка web-сервера работает. А вот что-либо перекомпилировать не удается. База с грохотом падает. :(

Пошел другим путем - взял asademo.db из комплекта своего сервера, накатил на нее MacroSQL и попытался откомпилировать простейший шаблон. Результат тот-же :( База с грохотом падает, да еще и log умирает.

Создал базу с 0. Накатил MacroSQL и попытался откомпилировать еще более простейший шаблон.
Результат опять отрицательный. :-0

Трассировка показала, что база рушится на операторе

SET @CurPos = Locate(@Content, Char(1) || '<section', @PrevPos);

процедуры MacroSQL_Generate_Content(). Причем вне зависимости от наличия/отсутствия секций и длины шаблона.

Все это проверялось под ASA 9.0.1.1751

У меня создалось впечатление, что сервер сходит с ума от обилия вложенных конструкций наподобие
Select content into @Content from <proc_name>(@Content = @Content,...).

Что я делаю неправильно?

Теперь вопросы по спецификациям:

1. Из примеров на не понятно, в чем разница между макрокомандой на WatcomSQL и макросом и вообще, формальные правила определения и использования макросов.
2. Не до конца очевидно применение конструкции
<!--!IF @IsFullContent = 1 THEN!--> . . . <!--!END IF;!-->

Некоторые замечания по внутреннему дизайну:

1. В таблицу MacroSQL_Oper недурственно добавить поле комментарий и вписывать туда краткое описание.
2. MacroSQL спроектирован для использования в рамках ASA 9+. Значит можно воспользоваться
call sa_make_object( );
alter procedure|function ...
Что и используется в примерах по web-серверу ASA. (...\Sybase\SQL Anywhere 9\Samples\ASA\HTTP)

Кстати, я не нашел информации о том, как поведет себя ASA с объявленным web-сервисом в случае, когда будет дропнута используемая в нем процедура. В следующих билдах это поведение может поменяться. А связка sa_make_object() + alter... избавляет нас от зависимости от изгибов генеральной линии Sybase :))

3. Если рассматривать MacroSQL со стороны генератора html отчетов, то логично было бы определение имени генерируемой процедуры, declare, init блоков и пермишенов на ее исполнение было бы логично поместить в параметров секции Main, а в прочих секциях их игнорировать.

4. Может быть нужно процедуры, которые возвращают результат работы при помощи конструкции
SELECT @Content AS Content;
превратить в функции, возвращающие long varchar ? Похоже в моем случае сервер запутывается от обилия полей с именем Content :))

В заключение, несколько мыслей по экстремальному программированию БД.
Для создания и сопровождения БД под ASA мы уже лет 5 используем PowerDesigner. Точнее его урезанный вариант для работы с физической моделью, который идет в комплекте ASA.

Неоднократные попытки использовать PD в полном объеме выявили несоответствие нашего подхода и мышления разработчиков PD. А вот физические модели - это просто замечательно.

В последних версиях к PD прилепили VBA и дали набор объектов для доступа к модели. Сам PD имеет механизм шаблонов для триггеров и его можно очень эффективно применять. Ну а что не может сделать система шаблонов (расширенные и пользовательские атрибуты обрабатываются не корректно) можно решить скриптами VBA.

Выяснилось, что начиная с определенного объема модели PD не способен автоматически создать корректный генерационный скрипт для БД. Особенно в случае нестандартной схемы раздачи прав, как в нашем проекте (нужно же как-то защищать свою интеллектуальную обственность :-).
Мы вышли из этой ситуации создав общий генерационный скрипт, который загружает в БД объекты, определение которых мы выгрузили из модели при помощи VBA, в нужном нам порядке.
Кстати, это позволяет создать автоматизированную процедуру корректной перегрузки данных в новую версию БД, например при апгрейде сервера, даже при очень вычурной бизнес-логике БД.
Недавно пришлось делать это для клиента, который решил переехать с ASA6 на ASA9.

Кстати, PD умеет генерировать и datawindow и набор атрибутов в репозиторий, но к сожалению, корректность его работы в этой части проверить руки не доходят.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32771322
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dp_tndПопробовал покрутить MacroSQL. стартовая страничка web-сервера работает. А вот что-либо перекомпилировать не удается. База с грохотом падает. :(

Пошел другим путем - взял asademo.db из комплекта своего сервера, накатил на нее MacroSQL и попытался откомпилировать простейший шаблон. Результат тот-же :( База с грохотом падает, да еще и log умирает.

Создал базу с 0. Накатил MacroSQL и попытался откомпилировать еще более простейший шаблон.
Результат опять отрицательный. :-0

Трассировка показала, что база рушится на операторе

SET @CurPos = Locate(@Content, Char(1) || '<section', @PrevPos);

процедуры MacroSQL_Generate_Content(). Причем вне зависимости от наличия/отсутствия секций и длины шаблона.

Все это проверялось под ASA 9.0.1.1751
У меня ASA 9.0.1.1922 - все работает нормально.

dp_tndТеперь вопросы по спецификациям:

1. Из примеров на не понятно, в чем разница между макрокомандой на WatcomSQL и макросом и вообще, формальные правила определения и использования макросов.
Макрокоманда WatcomSQL - это фактический скрипт, который будет вставлен как WatcomSQL операторы в непосредственно генерящуюся процедуру. Макросы - это параметризированный шаблон, который сначала будет преобразован как текст с подстановкой параметров и если установлен тип макроса Script - следом выполненен, а результат возвращенный макросом вставлен в то место шаблона, откуда он вызывался, с дальнейшей его обработкой. Фактически если провести аналогию с компиляторами Си и Паскаля, то макросы можно рассматривать как препроцессорные Inline директивы, а макрокоманды WatcomSQL как директивы, управляющие компиляцией.

dp_tnd2. Не до конца очевидно применение конструкции
<!--!IF @IsFullContent = 1 THEN!--> . . . <!--!END IF;!-->

В скомпилированной процедуре получится следующий код:
Код: plaintext
1.
2.
3.
IF @IsFullContent =  1  THEN
  INSERT INTO #Result (Line)
  VALUES( . . . );
END IF;
то есть фактически мы генерим в возвращаемый контент текст ". . ." используя ветвление.

dp_tndНекоторые замечания по внутреннему дизайну:

1. В таблицу MacroSQL_Oper недурственно добавить поле комментарий и вписывать туда краткое описание.
Согласен. Фактически везде есть Description, осталось только найти время и заполнить их :)

dp_tnd 2. MacroSQL спроектирован для использования в рамках ASA 9+. Значит можно воспользоваться
call sa_make_object( );
alter procedure|function ...
Что и используется в примерах по web-серверу ASA. (...\Sybase\SQL Anywhere 9\Samples\ASA\HTTP)
Спасибо за совет, я как то не догадался. Очень удачное решение.

dp_tndКстати, я не нашел информации о том, как поведет себя ASA с объявленным web-сервисом в случае, когда будет дропнута используемая в нем процедура. В следующих билдах это поведение может поменяться. А связка sa_make_object() + alter... избавляет нас от зависимости от изгибов генеральной линии Sybase :))
Веб-сервер ASA в случае любой ошибки при выполнении сервиса просто возвращает код и текст ошибки в виде HTML странички.

dp_tnd3. Если рассматривать MacroSQL со стороны генератора html отчетов, то логично было бы определение имени генерируемой процедуры, declare, init блоков и пермишенов на ее исполнение было бы логично поместить в параметров секции Main, а в прочих секциях их игнорировать.
В секциях на обьявляемые переменные поддерживается область их видимости. Область видимости алиасов распостраняется снизу вверх - то есть сначала преобразовываются алиасы в значения обьявленные в обрабатываемой секции, далее накладываются алиасы из родительской секции и т.д. Область видимости переменных позволяет создавать сложные макеты с большим уровнем вложенных секций и их описание в главной секции привело бы к нечитабельности макета. Плюс стоит помнить, что секции, организованные на запросы изначально организовывают по полям запроса переменные в пределах секции с видимостью во вложенных секциях (если там не были переобьявленны переменные).

dp_tnd4. Может быть нужно процедуры, которые возвращают результат работы при помощи конструкции
SELECT @Content AS Content;
превратить в функции, возвращающие long varchar ? Похоже в моем случае сервер запутывается от обилия полей с именем Content :))[quot dp_tnd]
Так и было. Вот только в ASA периодически на long varchar, возвращаемый как result из функций или out-параметр с процедуры проскакивает баг, который я пока не смог точно локализовать, который напрочь вышибает сервер. Поэтому пришлось все перевести на SELECT. Судя по всему в Вашем EBF в том числе присутствуют проблемы с long varchar в SELECT.

[quot dp_tnd]В заключение, несколько мыслей по экстремальному программированию БД.
Для создания и сопровождения БД под ASA мы уже лет 5 используем PowerDesigner. Точнее его урезанный вариант для работы с физической моделью, который идет в комплекте ASA.

Неоднократные попытки использовать PD в полном объеме выявили несоответствие нашего подхода и мышления разработчиков PD. А вот физические модели - это просто замечательно.
Сейчас у меня в проекте задействовано 18 SQL макетов, каждый из которых генерит серию функций, процедур и триггеров по указанным параметрам на таблицу или таблицы. Так же в своей БД я нарисовал таблички, где на каждую таблицу расписываются различные аттрибуты их логического назначения (от способа хранения периодов информации для таблиц с историей изменения информации, до таких вещей, как проверки на изменения записей, помеченных как системных, процедур, возвращающих данные по указанным параметрам и т.д.). Так же написана процедура, которая на указанную таблицу получает ее аттрибуты и в зависимости от них возвращает список процедур (скомпилированных макетов) и их параметров, необходимых для обвязки этой таблицы. Ну и естественно написан свой дизайнер, позволяющий удобно расставлять по таблицам проекта нужные аттрибуты (его скриншоты я приведу в следующих сообщених). В итоге такая централизация логики позволила мне на 2/3 сократить ручной труд по написанию бизнес-логики в БД, быстро вводить в проект новые таблицы с автоматической генерацией по ним нужных скриптов и дала возможность централизованно воздействовать на код бизнес-логики проекта. Буквально только сейчас я например решил, что для таблиц, хранящих данные в виде истории изменения аттрибутов, в том числе задними числами не хватает процедуры, возвращающей все активные данные на текущий и будующие расчетные месяцы. Открыл нужный шаблон, отвечающий за генерацию процедур получения данных по истории, за 3 минуты докатал в него шаблон новой ХП, сохранил, за 1 сек скомпилировал его и нажал в своем дизайнере "Перегенерировать все" и через 3 сек. получил на все нужные таблицы в довесок новые процедуры, которые тут же люди начали прицеплять в клиентском приложении.

dp_tndКстати, это позволяет создать автоматизированную процедуру корректной перегрузки данных в новую версию БД, например при апгрейде сервера, даже при очень вычурной бизнес-логике БД. Недавно пришлось делать это для клиента, который решил переехать с ASA6 на ASA9.
Ну по идее тоже самое можно сделать на шаблонах MacroSQL :)

dp_tndКстати, PD умеет генерировать и datawindow и набор атрибутов в репозиторий, но к сожалению, корректность его работы в этой части проверить руки не доходят.
Пока с PB я затею бросил - фактически есть классы, написанные на PB, которые позволяют по указанному шаблону стиля сгенерить довольно приличный DataWindow и сохранить его в указанную PBL, пока этого хватает, все лучше, чем пользоваться визардами генерации DW самого PowerBuilder, так как в отличие от их визардов у меня можно описать шаблон стиля DW не только на его общий вид, но и на банды, текстовые поля и колонки, причем в текстовые поля сразу вставляется текст из ремарки поля из таблицы. На дальнейшее творчество просто нет времени, так что это откладывается на потом.

Так как я в основном использовать в последнее время MacroSQL на генерацию по диалекту WatcomSQL, то естественно перед тем как Вам выслать пришлось подравнивать его под HTML диалект и усовершенствовать под функциональность сайта. Соотвествующе пару ошибочек я все таки да сделал. Сейчас они поправлены. Если есть дальнейшее желание поюзать его, могу переслать новую версию скриптов ХП (все остальное не изменялось).
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32771338
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сами скриншоты дизайнера:
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32771340
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это вкладочка, где показано, какие процедуры, скомпилированные по макетам MacroSQL будут вызваны на таблицу:
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32771350
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это одна из процедур, сгенерированная по макету "z_Proc_get_HistoryWithCloseDate":
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE PROCEDURE "DBA"."x_open_ContractSalary" ()
/*
  Сгенерированно MacroSQL (tm)
  Copyrigth 2004 (c) ASCRUS
  Дата генерации: 05.11.2004 15:58
  Версия: 1.00 (Alpha)
*/
BEGIN
  SELECT o.*, x.CloseDate
  FROM ContractSalary o,
    LATERAL (
      SELECT CONVERT(date, IsNull(Min(x.CreateDate), @@EmptyDate +  1 ) -  1 ) AS CloseDate
      FROM ContractSalary x
      WHERE @@CalcDate BETWEEN x.SaveDate AND x.SaveCloseDate AND
            x.CreateDate > o.CreateDate AND
            x.Contract_id = o.Contract_id
    ) AS x
  WHERE @@CalcDate BETWEEN o.SaveDate AND o.SaveCloseDate AND
        o.IsActive =  1 
END;
COMMENT ON PROCEDURE "DBA"."x_open_ContractSalary" IS 'Вывести актуальную информацию с расчетом даты закрытия из истории таблицы "ContractSalary"';
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #32771571
dp_tnd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор dp_tnd
Все это проверялось под ASA 9.0.1.1751
У меня ASA 9.0.1.1922 - все работает нормально.

Видимо все же проблема версии :(. Я сделал модификацию о которой спрашивал (превратил процедуры в функции) и все заработало. Могу прислать мой вариант.

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

авторМакрокоманда WatcomSQL - это фактический скрипт, который будет вставлен как WatcomSQL операторы в непосредственно генерящуюся процедуру. Макросы - это параметризированный шаблон, который сначала будет преобразован как текст с подстановкой параметров и если установлен тип макроса Script - следом выполненен, а результат возвращенный макросом вставлен в то место шаблона, откуда он вызывался, с дальнейшей его обработкой. Фактически если провести аналогию с компиляторами Си и Паскаля, то макросы можно рассматривать как препроцессорные Inline директивы, а макрокоманды WatcomSQL как директивы, управляющие компиляцией.

Что такое макросы я вроде-бы понимаю :). Но разбирая кишки McroSQL тияжело сходу востановить формальное описание макроса. Интересно было бы увидеть пример описание макроса и его применение в шаблоне. И в каком виде он должен грузиться в библиотеку.

авторВ скомпилированной процедуре получится следующий код:
Код: plaintext
1.
2.
3.
IF @IsFullContent =  1  THEN
  INSERT INTO #Result (Line)
  VALUES( . . . );
END IF;
то есть фактически мы генерим в возвращаемый контент текст ". . ." используя ветвление.

Это я уже понял читая примеры.

автор dp_tndКстати, я не нашел информации о том, как поведет себя ASA с объявленным web-сервисом в случае, когда будет дропнута используемая в нем процедура. В следующих билдах это поведение может поменяться. А связка sa_make_object() + alter... избавляет нас от зависимости от изгибов генеральной линии Sybase :))
Веб-сервер ASA в случае любой ошибки при выполнении сервиса просто возвращает код и текст ошибки в виде HTML странички.

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

Кроме того, в 9 по сравнению с 7 сильно изменилась внутренняя логика работы с пермишенами. И то, что прекрасно работало вдруг перестало :(.

Периодически разработчики добавляют связи в системных таблицах между объектами БД, причем с каскадным удалением. А документировать они это частенько забывают :(. Мы работаем с ASA начиная с 5.5.0.1 и неоднократно въезжали подобные "улучшения"

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

Я имел в виду немного другое. Мне интересно данные о будущей процедуре-отчете хранить в 1 месте (и предпочтительно, чтобы это был именно шаблон). Для этого достаточно секцию #MAIN# объявить явно, или ввести дополнительную команду/секцию, в которой можно определить имя процедуры, ее параметры, декларации локальных переменных и их инициализацию. А в Вашем варианте мне нужно держать сам шаблон + загрузочный скрипт к нему. А это не совсем удобно.

автор

Так как я в основном использовать в последнее время MacroSQL на генерацию по диалекту WatcomSQL, то естественно перед тем как Вам выслать пришлось подравнивать его под HTML диалект и усовершенствовать под функциональность сайта. Соотвествующе пару ошибочек я все таки да сделал. Сейчас они поправлены. Если есть дальнейшее желание поюзать его, могу переслать новую версию скриптов ХП (все остальное не изменялось).

Пожалуйста пришлите. Меня интересует не столько функцианальность сайта, сколько сам процесс компиляции html шаблона в ХР.

А я пока займусь вытягиванием очередного EBF для ASA :(

Попутно вопрос - если я в тексте запроса вставлю " - не развалит ли это работу XML-парсера ? ASA иногда мучительно вопринимает поля названные ключевыми словами, а их тянется преемственно несколько штук. И я их обычно закавычиваю.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33358694
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошел годик с последнего сообщения, пожалуй стоит выложить урлы того, что было сделано в данном направлении.

Итак - обещанная к показу и уже почти наполовину разработанная система контроля версий РСУБД:
http://asc.rs-erc.ru/scv
логин: Guest пароль: Guest
Гостю доступен на просмотр проект ASC и подписанный на проект для синхронизации сервер SocPay_Dev. Изменения запрещены. Зайдите в проект ASC, далее в скрипты, там можно будет поиграться просмотром и фильтрацией скриптов по проекту и отслеживанию их выполнения на сервере SocPay_Dev (пока все скрипты тестовые и левые). Для администраторов проекта доступны добавления и измения скриптов через веб-формы или файлов. Как будет доделан веб-интерфейс, открою тестовый проект и сервер, для которого дам гостю администраторские права. Описание самой системы версий потом выложу в рутовый веб-сервис, пока он перенаправляет на список проектов.

Для того, чтобы иметь представление, как это писалось, даю ссылку на веб-интерфейс управления шаблонами MacroSQL:
http://asc.rs-erc.ru/scv/macrosql/list
Логин и пароль те же. Доступ только на чтение. По именам шаблонов понятно, какие странички системы контроля версий они реализовывают. С формы вполне можно выдрать сам html шаблон, загрузить в какой нибудь нормальный веб-редактор HTML и там посмотреть, что из себя представляет шаблон MacroSQL - полюбоваться на помесь HTML, WatcomSQL и JavaScript :) Описание MacroSQL так же потом выложу на рутовой страничке.

Сама система контроля версий находится в активной разработке - после того, как я "доваяю" веб-интерфейс, второй частью проекта будет написание GUI утилиты, получающей еще не синхронизированные с подписанным на проект сервером скрипты, попутно устанавливая флаг признака "В процессе синхронизации" и далее напрямую накладывающей их на сервер, если он в прямой зоне видимости или же создающей пакет для оффлайн пересылки скриптов на удаленный сервер, где такая же утилита их выполнит и вернет результат об успешно выполненных и ошибочных скриптах, что потом будет обратно передано хранилищу скриптов. По мере продвижения процесса разработки новости буду писать сюда, после опубликования описания систем, не буду против вопросов и предложений ;)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33359429
Jager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одна интересная странность - под IE все в порядке, под оперой (v8.5) - руччкие буквы не распознаются в принципе, все буквы выводятся квадратиками... С чего бы это...
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33360622
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JagerОдна интересная странность - под IE все в порядке, под оперой (v8.5) - руччкие буквы не распознаются в принципе, все буквы выводятся квадратиками... С чего бы это...
Странно, у нас IE, Opera, Mozila прекрасно вроде все работают. Может быть нарвались, когда перекомпиляция макета была - или все время, даже сейчас Opera не определяет кодировку ?
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33360983
Фотография sdk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э, хм, как бы это помягче сказать...

Уважаю АСКРУСа как человека и модератора :), но в упор не понимаю, зачем он эту работу сделал, т.е. широкого практического коммерческого применения, к сожалению, не вижу. Хотя желаю удачи в продвижении проекта.

_______________________________________________
Человек ленив, и именно лень - двигатель прогресса.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33361094
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkЭ, хм, как бы это помягче сказать...

Уважаю АСКРУСа как человека и модератора :), но в упор не понимаю, зачем он эту работу сделал, т.е. широкого практического коммерческого применения, к сожалению, не вижу. Хотя желаю удачи в продвижении проекта.

_______________________________________________
Человек ленив, и именно лень - двигатель прогресса.
Все для себя любимого :) Хочется поиметь систему контроля версий скриптов БД под собственные нужды :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33361117
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSВсе для себя любимого :) Хочется поиметь систему контроля версий скриптов БД под собственные нужды :)
класть скрипты в CVS уже не прикольно? :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33361222
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl ASCRUSВсе для себя любимого :) Хочется поиметь систему контроля версий скриптов БД под собственные нужды :)
класть скрипты в CVS уже не прикольно? :)
Не прикольно :) В ситуации множества проектов, на множестве удаленных географически СУБД, с множеством удаленно разнесенных разработчиков, из которых есть ... очень даже не прикольно.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33361237
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSНе прикольно :) В ситуации множества проектов, на множестве удаленных географически СУБД, с множеством удаленно разнесенных разработчиков, из которых есть ... очень даже не прикольно.
Ну я все равно считаю что CVS хватает за глаза. Сколько бы разработчиков ни было, сколь далеко они друг от друга не находились бы, сколько бы проектов одновременно не шло бы :) Посмотри на любой проект на Sourceforge например.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33361291
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl ASCRUSНе прикольно :) В ситуации множества проектов, на множестве удаленных географически СУБД, с множеством удаленно разнесенных разработчиков, из которых есть ... очень даже не прикольно.
Ну я все равно считаю что CVS хватает за глаза. Сколько бы разработчиков ни было, сколь далеко они друг от друга не находились бы, сколько бы проектов одновременно не шло бы :) Посмотри на любой проект на Sourceforge например.
А что, там так много разработчиков баз данных ? Меня лично устраивает скриптование скриптов изменения состояния БД (лог), чем хранение самих скриптов обьектов БД. Для алгоритмических языков это нормально, а для синхронизации структур БД не сказать, что все удобно. Под себя мне легче через веб-интерфейс хранилища и веб-сервисы собирать логи скриптов и управлять ими, которые автоматом будут накладываться утилитой на подписанные сервера с автоматическим отслеживанием процесса выполнения скриптов, отловом ошибок в ходе их выполнения, разрешением изменения версии скрипта под нужные сервера и прочее, то что я сейчас по любому так или иначе вынужден делать ручками.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33367999
Jager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUSМожет быть нарвались, когда перекомпиляция макета была - или все время, даже сейчас Opera не определяет кодировку ?

Похоже, действительно нарвался именно на какой-то подобный момент - в данный момент все нормально.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33368626
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малость адреса поменялись, вынесли веб-сервисы на отдельный сервер ASA:
Система контроля версий:
http://asc.rs-erc.ru
Система управления прототипами MacroSQL:
http://asc.rs-erc.ru/macrosql/list

Так же в MacroSQL возникли идеи расширить язык - сделать более удобное описание параметров, переданных с браузера, контроль за передачей GET и POST и возможность обработки множества значений параметра как набор данных, то есть запросом (пример можно посмотреть на страничке скрипты проекта ASC, где есть возможность пометить любые нужные записи в таблице, проделать с ними групповые операции, причем во время перечитки страницы сохраняется статус помеченных записей в браузере).
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33372084
MichaelTim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почемуто не удается попасть ни на один адрес этот :(
The page cannot be displayed
Explanation: The Web server connection was closed.
Error Code 64: Host not available
Background: The connection to the Web server was lost.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33372193
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MichaelTimПочемуто не удается попасть ни на один адрес этот :(
The page cannot be displayed
Explanation: The Web server connection was closed.
Error Code 64: Host not available
Background: The connection to the Web server was lost.
А с какого браузера заходили ? Попробуйте зайти с IE и пожалуйста обязательно уточните имя браузера и версию. Как раз в логах на это время у ASA отобразилась ошибка, видимо какой то браузер не правильно поддерживается, нужно бы разработчикам ASA выслать, чтобы поправили.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33372997
MichaelTim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответил Вам письмом.
броузер Неткаптор (но он юзает движок ИЕ 6.0.2800.1106)
сейчас попытался войти - ошибка таже.

The page cannot be displayed
Explanation: The Web server connection was closed.
Error Code 64: Host not available
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33373108
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуацию смоделировали на указанной версии IE с NetCaptor - все работает. Видимо проблема из за Вашей прокси.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33421273
Jager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ASCRUS

Хотелось бы узнать, когда можно будет пощупать руками оный MacroSQL? :) Если для публичного выкладывания доводить не хочется, может в личном порядке можно посмотреть? Можно на мыло den@slan.ru.

Спасибо :)
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33422411
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jager2 ASCRUS

Хотелось бы узнать, когда можно будет пощупать руками оный MacroSQL? :) Если для публичного выкладывания доводить не хочется, может в личном порядке можно посмотреть? Можно на мыло den@slan.ru.

Спасибо :)
http://asc.rs-erc.ru/demo/macrosql_proc
логин: guest
пароль: guest
на группу demo даны админские права, там же выложен один примерчик, более менее сразу показывающий, как это работает.

http://asc.rs-erc.ru/scv/scv_proc
логин: demo
пароль: omed
здесь можно посмотреть в реале на работу системы синхронизации версий БД, на проект test и сервера test1 и test2 даны полные админские права. в проекте еще работает не весь интерфейс, однако главное - управление скриптами и синхронизация серверов - уже вовсю работает и реально обслуживает сервера.

P.S. Если кто то сидит за юниксовой проксей, то войти не сможет, ASA с ними не дружит :(
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33423967
Jager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUS
http://asc.rs-erc.ru/demo/macrosql_proc
логин: guest
пароль: guest
на группу demo даны админские права, там же выложен один примерчик, более менее сразу показывающий, как это работает.

http://asc.rs-erc.ru/scv/scv_proc
логин: demo
пароль: omed
здесь можно посмотреть в реале на работу системы синхронизации версий БД, на проект test и сервера test1 и test2 даны полные админские права. в проекте еще работает не весь интерфейс, однако главное - управление скриптами и синхронизация серверов - уже вовсю работает и реально обслуживает сервера.

P.S. Если кто то сидит за юниксовой проксей, то войти не сможет, ASA с ними не дружит :(

А какой-нибудь FAQ или "How to..." существует? Интересует, в первую очередь, описание метаязыка задания шаблонов.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33424671
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доку пишу (по мере свободного времени). В принципе все до безобразия просто:
В метаязыке есть секции (можно сказать аналог BEGIN ... END). В секции можно описать переменные-http-параметры, просто переменные, временную таблицу для указанного http-параметра, если он передается как множество значений, назначить секции запрос (т.е. тело секции будет выполнено на каждую запись запроса), назначить алиасы на переменные и поля (то есть вместо назначенного алиаса в тексте будет вставляться значение указанной переменной или поля) и работать с макросами, импортируя их с библиотеки макросов или описывая прямо внутри секции (макрос - аналог include - то есть при указании макроса в шаблоне, вместо него будет осуществлена вставка тела макроса, которое будет еще раз обработано на случай, если в нем есть другие управляющие операторы, например скрипт WatcomSQL или вызов другого макроса, подробнее о макросах нужно писать большую главу, фактически их следует рассматривать как inline повторно используемые вставки).
Общая структура секции такая (| указывает на возможность использования один из предложенных синтаксисов):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<!-- просто текст шаблона -->
<html>
<head>
  <title>Тест</title>
</head>

<body>
<!-- начало описания секции SectionName -->
<!--<section name="SectionName" 
    sql="SELECT Field1 FROM Table1" | sql="{Text_SQL}"
  > 

  <field name="Param1" alias="[Param1]" type="int" param="Param1"/>

  <params name="#Param2" type="char(10)" param="Param2"/>

  <field name="Var1" alias="[Var1]" type="long varchar" value="NULL"/>

  <field name="Field1" alias="[Field1]"/>

  <import name="Lib1.*"/>

  <macro name="Macros1" type="T">Field1 = "[1]"</macro>
</section>--> 

<!-- текст секции !-->

<!--!
// Выполнение кода WatcomSQL, 
// который не будет виден при просмотре HTML шаблона 
// в браузере и выглядеть как комментарий
SELECT List(Value, ',' ORDER BY NUM)
INTO @Var1
FROM #Param2;
!-->

<p {!
// Выполнение кода WatcomSQL, 
// который будет виден при просмотре HTML шаблона 
// в браузере и зато может удобно использоваться внутри HTML-тегов,
// в которых не разрешены вставки HTML-комментариев
IF @Var1 = ''
THEN
  @Var1 = '*** нет переданных параметров ***';
END IF;
!} title="{*Macros1 {[Field1]}*}" >

Передан параметр с браузера: <b>[Param1]</b>
<br>
Переданы следующие значения параметра Param2: <b>[Var1]</b>
<br>
Поле Field1 равно: <b>[Field1]</b>
<br>
Результат Macros1: <!--*Macros1 {[Field1]}*-->
</p>
<!--</SectionName/>-->
<!-- конец секции SectionName -->

</body>
</html>
Здесь обьявляется секция "SectionName". Внутри нее обьявляются http-параметр Param1, переданный браузером. Так же обьявляется переменная Var1, инициализирующаяся начальным значением NULL (или можно было не указывать инициализирующее значение), в которую запросом собираются значения из временной таблички #Param2, обьявленной на значения http-параметра Param2. Сама секция создана как курсор на явно указанный запрос или же можно указать на переменную Text_SQL, в которой хранится текст запроса. На параметр Param1, переменную Var1 и поле запроса Field1 назначены соотвествующие алиасы [Param1], [Var1] и [Field1] - везде где они будут встречены в тексте, будет произведена замена на их реальные значения. Так как секция создана на запрос, то ее тело будет в результирующем тексте повторено столько раз, сколько запрос имеет записей. В ходе компиляции html-контента вместо макросов будут подставлены их тексты. В ходе уже выполнения генерации контента вставки кода на WatcomSQL будут выполнятся. Так что на выходе браузер получит примерно следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<!-- просто текст шаблона -->
<html>
<head>
  <title>Тест</title>
</head>

<body>
<!-- начало описания секции SectionName -->
<p title="Field1 = "1">

Передан параметр с браузера: <b>100</b>
<br>
Переданы следующие значения параметра Param2: <b>A, B, C, D, E</b>
<br>
Поле Field1 равно: <b>1</b>
<br>
Результат Macros1: Field1 = "1"
</p>

<p title="Field1 = "2">

Передан параметр с браузера: <b> 100 </b>
<br>
Переданы следующие значения параметра Param2: <b>A, B, C, D, E</b>
<br>
Поле Field1 равно: <b> 2 </b>
<br>
Результат Macros1: Field1 = "2"
</p>

<p title="Field1 = "3">
...
</p>

<!-- конец секции SectionName -->

</body>
</html>
Что поддерживается:
1. Можно иметь вложенные секции, если в запросе вложенной секции сослаться на поле ее родительской, то таким образом можно элементарно организовать master-detail
2. Есть область видимости обьявленных переменных секций, где в дочерней секции можно обьявить переменную с таким же именем, как и родительской (вернее она уж правильнее сказать есть в WatcomSQL и просто мной используется).
3. Есть область видимости обьявленных алиасов, так же как и с переменными.
4. Вставки кода на WatcomSQL и указания макросов можно производить 2-мя способами:
Через html-комментарий: <!--! WatcomSQL !--> <!--* Macros *-->

Через дополнительный тег: {! WatcomSQL !} {* Macros *}
в тексте удобнее комментарии, чтобы при визуальном просмотре самого шаблона не было видно вставок и шаблон не ехал. Внутри описания HTML-тэгов удобнее через дополнительный тег, чтобы браузер увидел HTML-тэг в шаблоне, что он не смог бы сделать в комментарии.
5. Если http-параметр обьявлен в секции, но не был передан, то он будет иметь значение NULL.
6. Если http-параметр обьявлен в секции как набор значений, но не передан, то его указанная временная таблица будет не содержать записей.
7. Естественно внутри HTML шаблона можно описывать формы, пользоваться JavaScript и прочим.
8. Читать и писать на WatcomSQL генерируемый поток контента, который хранится в временной таблице #Result (Line). Таким образом можно спокойно в поток впихнуть из кода свои вставки, генерируя их на WatcomSQL, а не описывая их текстом шаблона.
9. Статическая и динамическая компиляция шаблона. При статической компиляции шаблона в БД создается WatcomSQL хранимая процедура, уже содержащая весь служебный код с текстом шаблона и все вставки макросов и WatcomSQL из шаблона, где ее просто достаточно вызвать. При динамической компиляции вызывается соотвествующая ХП MacroSQL, которой передается текст шаблона и на выходе она возвращает скомпилированный и готовый к выполнению через динамический SQL скрипт на WatcomSQL.

Ключевые слова
Описание параметров секции, ее тело и конец:
<!--section name="sectionname" sql="">
<name="" alias="" type="" value="" param=""/>
<params name="" type="" param=""/>
<import name=""/>
<macro name="" type=""> </macro>
</section>-->
<!--</sectionname/>-->

Ссылка на порядковый номер переданного параметра в макросе:
[1] [2] [3] ...

Вставка макроса:
<!--* MacrosName {Param1} {Param2} {Param3} ... *-->
{* MacrosName {Param1} {Param2} {Param3} ... *}

Выполнение кода WatcomSQL:
<!--! script; !-->
{! script; !}

Это то, что касается самого языка описания шаблонов. Помимо него есть система управления прототипами, позволяющая:
1. Визуально разрабатывать шаблоны, компилировать их и запускать.
2. Организовывать проекты (группы), состоящие из шаблонов, текстовых данных и бинарных данных.
3. Через единый веб-сервис централизованно организовать систему навигации сайта (где http-параметр Action определяет имя работающего режима проекта, и запускает соотвествующий шаблон на выполнение или же возвращает текст или бинарные данные). Разрешаются ссылки на шаблоны других проектов.
4. Поддерживается полное управление правами доступа к шаблонам по группам пользователей и групп пользователей. Так же есть поддержка прав вызова шаблонов проекта из другого проекта.
5. Осуществлять распостранение новых и измененных шаблонов посредством моей системы синхронизации версий БД (SCV).

P.S. Это вкратце. На самом деле система получилась неожидано сильно большая по функционалу и возможностям и в двух словах к сожалению ее не опишешь. Однако как мне кажется достаточно мощная - если посмотреть хотя бы на систему управления прототипами MacroSQL или уже реально работающий проект SCV, то видно, насколько получился мощный интерфейс, с показом информации, ее изменением, групповыми операциями и прочим. В принципе со всей уверенностью могу точно заявить, что например на системе MacroSQL прямо на ASA я могу накатать форумы, которые по возможностям для пользователей и модераторов, а так же по скорости будут однозначно превосходить форумы SQL.RU. В дальнейшем было бы неплохо поверх этой системы разработать движок веб-порталов, благо система управления контентом и права доступа уже существуют и неплохо работают. Плюс будет полезно в библиотеке макросов составить сборник полезных JavaScript. Ну и на будующее - сделать возможность интернализации шаблонов, правда пока сложно представляю, как это наиболее удачно сделать - как и любая палка о двух концах - с одной стороны код внутри шаблона дает преимущество по скорости написания, с другой стороны не дает возможность просто перерисовать шаблон на другой язык.

Еще P.S. Если будут желающие поюзать MacroSQL и помочь написать на него документацию, то я в принципе готов открыть его как freeware для ASA-шников, заодно дав доступ к SCV для получения последних обновлений по MacroSQL для синхронизации БД, где он используется. В принципе наверное выгодней его всем развивать как бесплатную систему, используя его возможности для разработки интернет и интранет решений как под свои проекты, так и отдельные (как мой к примеру SCV, куча приблуд по веб-администрированию проектов и серверов и прочих).
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33425182
Jager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUS
P.S. Это вкратце. На самом деле система получилась неожидано сильно большая по функционалу и возможностям и в двух словах к сожалению ее не опишешь. Однако как мне кажется достаточно мощная - если посмотреть хотя бы на систему управления прототипами MacroSQL или уже реально работающий проект SCV, то видно, насколько получился мощный интерфейс, с показом информации, ее изменением, групповыми операциями и прочим. В принципе со всей уверенностью могу точно заявить, что например на системе MacroSQL прямо на ASA я могу накатать форумы, которые по возможностям для пользователей и модераторов, а так же по скорости будут однозначно превосходить форумы SQL.RU. В дальнейшем было бы неплохо поверх этой системы разработать движок веб-порталов, благо система управления контентом и права доступа уже существуют и неплохо работают. Плюс будет полезно в библиотеке макросов составить сборник полезных JavaScript. Ну и на будующее - сделать возможность интернализации шаблонов, правда пока сложно представляю, как это наиболее удачно сделать - как и любая палка о двух концах - с одной стороны код внутри шаблона дает преимущество по скорости написания, с другой стороны не дает возможность просто перерисовать шаблон на другой язык.

Еще P.S. Если будут желающие поюзать MacroSQL и помочь написать на него документацию, то я в принципе готов открыть его как freeware для ASA-шников, заодно дав доступ к SCV для получения последних обновлений по MacroSQL для синхронизации БД, где он используется. В принципе наверное выгодней его всем развивать как бесплатную систему, используя его возможности для разработки интернет и интранет решений как под свои проекты, так и отдельные (как мой к примеру SCV, куча приблуд по веб-администрированию проектов и серверов и прочих).

Я есть такой желающий :) Почему я и заинтересовался твоими разработками: мы (наша фирма) выбрала (ну или выбирается в данный момент :)) ASA как платформу для всех (большинства) будущих разработок, и как раз в данный момент передо мной стоит задача написать движок для web-сайтов на основе ее функционала. :) Так что я однозначно за.

Если что, я целыми днями в ICQ: 85428376
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33428770
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jagerмы (наша фирма) выбрала (ну или выбирается в данный момент :)) ASA как платформу для всех (большинства) будущих разработок, и как раз в данный момент передо мной стоит задача написать движок для web-сайтов на основе ее функционала. :)
Ну я бы честно говоря был исключительно против того, чтобы средствами ASA делать полноценные веб-сайты для интернета. Для интранета - пожалуйста. Для каких то собственных нужд или публичные веб-сервисы для обработки запросов и выдачи информации через XML - тоже нормально. Но вот для публичных сайтов пока она не готова - во первых при каких то настройках юниксового прокси "Squid" ASA неправильно обрабатывает запросы по http-протоколу и валится, наверное есть еще прокси и разные варианты неправильно сформированных пакетов, которые могут привести к падению сервера. К сожалению воспроизвести стабильную ситуацию такого случая пока не удалось, поэтому ошибку пока разработчики исправить не могут. Скорее всего это нужно лечить установкой перед ASA какого нибудь файрволла, умеющего анализировать неправильные http-пакеты. Во вторых я не уверен, что веб-сервер ASA оптимизирован на большое кол-во подключений, во всяком случае возможности это проверить у меня не было. В третьих пока не достаточно ясна работа аунтефикации веб-сервера с браузерами - в принципе все это делается автоматически, но как например сделать logout для сессии, непонятно. Ну и по мелочам проблемы есть - например при передаче параметров веб-сервису, вызываемым из другой БД ASA через URL процедуру, в них не обрабатывается служебный http-символ "+", который обозначает пробел - в итоге на веб-сервис вместо плюсов приходят пробелы (надо будет кстати им заявить, все никак руки не дойдут). В общем я лично пока бы не рекомендовал на ASA делать публичные сайты, хотя в принципе ее функционал полностью позволяет это реализовывать. Но думаю постепенно разработчики исправят ошибки и доведут до ума веб-сервер - все больше и больше программистов задействуют в своих проектах веб-сервисы, делая в том числе сайты, так что и тестеров для отлова ошибок у разработчиков прибавляется.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33428966
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Ну я бы честно говоря был исключительно против того, чтобы средствами ASA делать полноценные веб-сайты для интернета. Для интранета - пожалуйста.
...


Я бы добавил еще одну "маленькую" причинку -- все-таки это -- СУБД, а не веб-сервер.
...
Рейтинг: 0 / 0
Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
    #33428986
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv ASCRUS
Ну я бы честно говоря был исключительно против того, чтобы средствами ASA делать полноценные веб-сайты для интернета. Для интранета - пожалуйста.
...


Я бы добавил еще одну "маленькую" причинку -- все-таки это -- СУБД, а не веб-сервер.
Нет - ASA уже полноценный веб-сервер, поддерживающий всю функциональность http, вплоть до управления http-header, http-variable, download и upload потоков и прочее, никаких ограничений по сравнению с IIS или Apache нет. Другое дело, что это исключительно внутренний веб-сервер, который может обслуживать только БД серверов, без дополнительных наворотов, типа организации редиректов, публикаций и прочих вещей, которые позволяют другие веб-серверы, но с учетом того, что сам код обработки http-логики хранится там же внутри БД, на WatcomSQL, нужды в такой функциональности в принципе и нет, нам же не нужно например через ASA подключать такие средства веб-разработки, как php, ASP.NET или Java.
...
Рейтинг: 0 / 0
60 сообщений из 60, показаны все 3 страниц
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Приглашаю к обсуждению собственной технологии построения динамических веб-страниц на базе ASA 9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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