Пожалуйста, не блокируйте рекламу!

0 Пользователей и 1 Гость просматривают эту тему.

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #15 : Апреля 06, 2009, 09:34:54 »

Test

Привет.
2ValeryW в личку написал когда еще не видел этот пост, хотя щас смотреть некогда, дела, если что не сочти за труд.
Привет, Сергей
У меня в 12 вообще SQL отказывается работать. Похоже на глюки при переводе.
И для такого запроса не нужен драйвер. Ты же его не из внешки задаешь. И о5 же интересно: а где лежит и в каком виде результат запроса. В самом запросе не указывается адресат вывода - нет to либо into, т.е. невозможен вывод в массив или таблицу. Видать снова спрятали в XML и во временную директорию, которая удаляется с закрытием запроса.

Эх, там такие дела...Вечером откомментирую..

*

Оффлайн ALAKK

  • *****
  • 625
  • Репутация: +55/-7
  • Пол: Мужской
  • Он спорил с модером...
Re: SQL в ArchiCAD
« Ответ #16 : Апреля 06, 2009, 10:28:58 »
При установке АС12 мною учитывалось соображение уважаемого x.Z. Но что-то не так , видимо, встало, а вообще ставил АС12 на несколько компов , но проверял SQL только у себя.

*

Оффлайн crazyASD

  • Самый главный
  • *****
  • 8545
  • Репутация: +518/-25
  • Пол: Мужской
  • iCrazy
Re: SQL в ArchiCAD
« Ответ #17 : Апреля 06, 2009, 11:03:57 »
У меня прекрасно работает SQL. Ставьте свежие обновления с соответствующей примочкой.

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #18 : Апреля 06, 2009, 13:07:07 »
У меня прекрасно работает SQL. Ставьте свежие обновления с соответствующей примочкой.
О какой примочке ты говоришь? SQL встроен в арч, по дефолту начиная с 6-ой вроде версии, только вот включить нужно в интерфейсе...
Отпиши если не сложно: какой дистриб, версия арчикада, номер сборки, какие апдейты, мож еще чего нужно было при установке? (гыгы)
Где брал это чего то еще...
И еще вставь в строку SQL запроса:
SELECT O.PARAMETERS.NAME, O.PARAMETERS.TYPE,
O.PARAMETERS.VALUE FROM FLAT(OBJECTS, PARAMETERS) AS
O WHERE OBJECTS.LIBRARY_PART_NAME=’DOME_b’
выполни запрос и сообщи о результатах если не сложно.

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #19 : Апреля 06, 2009, 13:08:47 »
Да и еще CrazyASD ставил ли ты ODBC драйвер? к своей версии АС?

*

Оффлайн crazyASD

  • Самый главный
  • *****
  • 8545
  • Репутация: +518/-25
  • Пол: Мужской
  • iCrazy
Re: SQL в ArchiCAD
« Ответ #20 : Апреля 06, 2009, 13:27:36 »
1. Нет не ставил, так как сейчас под MAC OS. Там же твой запрос отдает "Сбой синтаксического разбора предложения". AC12 intel.
2. У тебя появляется окно "SQL запрос"? Таблетка от x.Z.t? Билд 2523?

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #21 : Апреля 06, 2009, 16:27:36 »
О том и речь,
"Сбой синтаксического разбора предложения".
Я на 100% уверен что запрос нормально написан,
на скрине который есть на странице из CookBook4 которую я прикрепил в этой теме, есть результат и сам запрос написан  и исполнен корректно.

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

1. Имеет место кривое творчество ENGINE.
2. Буду качать 2523 и слушать x.Z. Проверю как оно с SQL дружит.


это раз.

А два - есь вопрос(предложение) к профи:

Значиццо по порядку:

1. в любой версии ADK, есть сорцы адона SQL, скомпиленный лично под 9-ку прилагаю.

2. в GDL есть такая херь:
REQUEST  (extension_name, parameter_string,
         variable1, variable2, ...)
If the question isn't one of those listed above, the REQUEST() function will attempt to use it as an extension-specific name. If this extension is in the Add-Ons folder, it will be used to get as many values for as many variable names as are specified. The parameter string is interpreted by the extension.
 то бишь братья наши старшие о нас позаботилися...

3. так вот хочу чтобы можно было в ГДЛ написать такое:

needed_ID=ХХ
str_error=0
query_type_1="SELECT PARAMETERS FROM OBJECTS WHERE ID="+str(needed_ID)
REQUEST  ("SQL",query_type_1, str_error)

if str_error=0 then ...(запрос выполнен без ошибок)

и тогда читаем файл Query_result.xml (примочкой GDL XML In-Out) в котором в частности есть Node с именнем Records  с количеством записей соответствующих запросу, а также содержится вся запрашиваемая инфа.

То есть "ворота к базе АСDB из GDL", тема уже была обсосана, года 2 тому,
с прошлого раза лично у меня появились новые "моменты", этому и посвящен данный пост...
есь личные соображения почему подобная возможность спецом не включена в станд дистриб - можно будет писать объекты *.gsm "вирусы" которые по циклу будут методично стирать таблицы в ACDB, а включить SQL синтаксис в части "касающейся хорошего тона", вряд ли возможно, точнее это  и сделано в ODBC драйвере, не суть...

4. Предлагаю состыковать REQUEST("SQL","" , var) c  SQL Source из ADK.
Рабочий код аддона уже есть(можете запустить под 9-кой,"качество" исполнения запроса зависит от "лечебных препаратов") нужно добавить в него обработчик на вызов REQUEST("SQL",...).

Вопросы-предложения:
1. Как "прочитать" очередь сообщений оконной процедуры когда интерпретируется GDL-скрипт?
2. Где искать *.cpp на интерпретацию REQUEST() GDL компилятором?  Или "как конструировать ответ Чемберлену"?
3. Если найдутся люди реально заинтересованные в конечном результате, а также способные на подобный трюк
предлагаю создать отдельный топ и совместно решать организационные вопросы. Я готов пожертвовать на такое дело  денюжку.

PS. Все-таки великая штука - кризис, работал бы щас было бы не до этого всего...

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #22 : Апреля 06, 2009, 16:30:35 »
SQL.apx АС9 Build 2219(на остальных тоже работает).

*

Оффлайн crazyASD

  • Самый главный
  • *****
  • 8545
  • Репутация: +518/-25
  • Пол: Мужской
  • iCrazy
Re: SQL в ArchiCAD
« Ответ #23 : Апреля 06, 2009, 17:33:17 »
Самый лучший способ проверить правильность взломанной версии - запустить этот же SQL запрос из демо-версии. Если дело во взломе то... Если же поменяли что-то в ArchiCAD... то лучше спросить это у самих Graphisoft.

*

Оффлайн BeArt

  • *****
  • 1016
  • Репутация: +94/-3
  • Пол: Мужской
Re: SQL в ArchiCAD
« Ответ #24 : Апреля 07, 2009, 08:28:54 »
О том и речь,
"Сбой синтаксического разбора предложения".
Я на 100% уверен что запрос нормально написан,
на скрине который есть на странице из CookBook4 которую я прикрепил в этой теме, есть результат и сам запрос написан  и исполнен корректно.

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

1. Имеет место кривое творчество ENGINE.
2. Буду качать 2523 и слушать x.Z. Проверю как оно с SQL дружит.
это раз.
...

Вот правильный синтаксис запроса:
SELECT O. PARAMETERS. NAME, O. PARAMETERS. TYPE,
O. PARAMETERS. VALUE FROM FLAT (OBJECTS,
PARAMETERS) AS  O  WHERE OBJECTS.LIBRARY_PART_NAME='DOME_b'

Заменил объект "DOME_b", которого у меня нет, на Кресло "01 12" (см. картинку).
P.S. Архикад 12 2523

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #25 : Апреля 08, 2009, 18:36:27 »
там в кавычках дело было, и в лекарстве еще.

*

Оффлайн ALAKK

  • *****
  • 625
  • Репутация: +55/-7
  • Пол: Мужской
  • Он спорил с модером...
Re: SQL в ArchiCAD
« Ответ #26 : Апреля 09, 2009, 07:26:37 »
Все хорошо. Но какая практическая польза от такого запроса? Как можно использовать эти данные - кроме как посмотреть на них и порадоваться - и каким образом их передать в проект или в любую табличную форму? Так работал SQL еще и в 7 версии, только толку от него никакого.

*

SergeyAB

Re: SQL в ArchiCAD
« Ответ #27 : Апреля 12, 2009, 16:42:26 »
Все хорошо. Но какая практическая польза от такого запроса? Как можно использовать эти данные - кроме как посмотреть на них и порадоваться - и каким образом их передать в проект или в любую табличную форму? Так работал SQL еще и в 7 версии, только толку от него никакого.

Все верно. Согласен на 100%. есть желание помыслить на тему.
Практическую пользу извлечь - Сложно. Ибо Встроенный в GDL парсер XML эээ, оставляет желать, да и сам XML "на любителя"...
- каким образом их передать в проект или в любую табличную форму? По-человечески никак.
Вот вариант как это осуществить.
1. Пишем GDL объект "A" в котором сохранаяем требуемые запросы таким например образом:

PARAMETER SCRIPT:
VALUES "Querry" "Select * FROM OBJECT WHERE....","Select * FROM WALLS WHERE....","Select * FROM ZONES WHERE....",

2D SCRIPT:
str=QUERRY
TEXT2 0,0, str

2. Размещаем "А" на плане, декомпозируем, копируем в буфер, дальше в SQL-запрос, исполняем.

3. Пишем объект "Б", который при помощи XML IN/OUT читает результаты выполненного запроса из файла Querry_Result.xml (находится в папке GRAPHISOFT) и записывает их в свой параметр типа массив. А дальше 2Д скрипт - отрисовываем массив как нам вздумается.

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

Мне интересно как смежники(специально не упоминаю тех кто дизайнерит в арче и тех кто обходится только экспликацией помещений создаваемой стандартным элементом "зона" ), составляют спецификации наподобие прикрепленной.
Вряд ли существует база данных которая позволит специфицировать все что есть по ГОСТ, сериям, ТУ...
Писать объекты имеющие компоненты и дескрипторы для данного проекта?
НО ведь проекты существенно отличаются друг от друга.
Одно дело иметь модельку того или иного здания, конструкции, фермы, и совсем другое дело получать с нее спецификацию по ГОСТ,
предлагаю продолжить обсуждение в русле "как я получаю спецификацию по ГОСТ".
Смета позволяет получить объем стен с теми или иными параметрами, но ведь если стена из кирпича то в спецификации должен быть кирпич, сетки, и.т.п.
Приведенная спецификация "составлена" в 2D, без применения SQL, сметных заданий, и вообще без помощи Virtual Building как таковой, кто знает способ лучше?



*

Оффлайн ALAKK

  • *****
  • 625
  • Репутация: +55/-7
  • Пол: Мужской
  • Он спорил с модером...
Re: SQL в ArchiCAD
« Ответ #28 : Апреля 13, 2009, 20:29:24 »
Зачем же такое городить, Сергей? Все давно решено и мы с тобой это обсуждали в личной переписке.

Я поступил так, когда занимался каркасными зданиями и сооружениями и делал АС и АР: переписал, точнее просто дописал библиотеку сортамента проката и ЖБИ изделий таким образом, чтоб требуемые мне для спецификаций параметры были доступны прямо из объекта. Написал нормальный 2Д объект - спецификация изделий (там было несколько вариантов) и начал задавать запросы как я уже делал для автоэкспликации. Где-то есть на форуме - освежи в памяти. Ничего нового - все по тому же шаблону. Ведомости материалов получались строго по ГОСТ и не более чем за минуту. Никакой лишней городьбы с XML и прочей лабудой. И вообще - вспомни про бритву Оккама.
А по большому счету все это будут полумеры до тех пор, пока SQL не будет интегрирован в ГДЛ. Т.е. ГС должен просто разрешить писать запросы из скрипта. Тогда и толк будет. А пока... :boyan:

 

Похожие темы

  Тема / Автор