Страница 7 из 12
Добавлено: 06 Сентябрь 2005, 9:00
Andrew™
Paul писал(а):Имел в иду, что можно работать на основе библиотеки классов, а не на шаблонах вполне нормально и эффективно.
Ну а у меня что?
есть Library весрия, используй библиотеку классов и пиши всё руками, при этом ODBC API знать не требуется.
есть Template версия, которая юзает возможности Library версии
Paul писал(а):
Кстати, по Вашим сообщениям в форуме можно было ранее судить, что Александр Бирюков поиог Вам запустить своё первое приложение на основе библиотеки ODBC API?
Александр показал мне крантики, благодаря которым можно повысить в разы производительность программ, но которые невозможно использовать при работае с FILE,DRIVER, помог с ответами на многие вопросы в ODBC API, первого приложения не было

, были работающие проекты которые требовали срочной пеработки.
Первая версия библиотеки чисто родилась по необходимости, т к готовые большие проекты стали тормозить на больших объёмах данных. После создания в полном ЦЕЙТНОТЕ первой версии стало понятно КАК должЁн быть устроен сей продукт.
Перевод существующего приложения на рельсы MAV
Добавлено: 09 Сентябрь 2005, 8:46
Andrew™
Хочу поделиться опытом перевода, в настоящее время у меня задача перевести работающее большое TPS приложение на SQL, и в добавок не рускоязычное. Оказалось что не так всё сложно. Допустим есть Browse, вставляю MAV Browse, вхожу в свойства окна по кнопке справа от Window и меняю местами #SEQ номер у TPS Browse и MAV Browse, в результате у меня уже получился визуально сконструированный MAV Browse, наследую все настройки TPS Browse в MAV Browse и грохаю TPS Browse. Синтаксис работы с FILE:RECORD и MAV:RECORD одинаков, в результате если есть рукописные EMBED вставки, то они причёсываются довольно легко. Многие EMBED'ы просто отпадают, т к многие доп возможности, которые реализовывали руками имеют место в настройках MAV Browse.
В результате последовательного перевода таблиц из словаря некоторые таблицы из DCT работают по старой FILE,DRIVER технологии, некоторые по MAV и работа с обеими структурами в одном APP идёт без проблем. Вот сижу и последовательно перевожу все таблицы на MAV.
Stored Procedure, Select и output Parameters
Добавлено: 12 Сентябрь 2005, 12:35
garnet
Имеется хранимая процедура (MSSQL2000) c Output параметрами.
! @nRaisErr int = null,
! @nAmount int = null,
! @nError int = null Output,
! @sError varchar(255) = null Output
Сама процедура в случае успешного завершения возвращает Select, в случае неудачи (проверка ввода данных и т.п.) формирует Output параметры (сообщение об ошибке + код ошибки) и select не формирует.
Требуется положить результат выполнения SP в очередь (GLO:GLO_Q_Code).
MavLoad(' Exec dbo.test @nRaisErr = 0 , @nAmount = ' & Loc_Amount, GLO:GLO_Q_Code), но как только SP идет по ветке ошибки (т.е. не формирует Select, а кладет ошибки в Output параметры) -- естественно возникает ошибка.
Как правильнее получить результат выполнения SP в очередь и при этом отловить Output параметры?
Re: Stored Procedure, Select и output Parameters
Добавлено: 12 Сентябрь 2005, 13:05
Andrew™
garnet писал(а):Имеется хранимая процедура (MSSQL2000) c Output параметрами.
! @nRaisErr int = null,
! @nAmount int = null,
! @nError int = null Output,
! @sError varchar(255) = null Output
Сама процедура в случае успешного завершения возвращает Select, в случае неудачи (проверка ввода данных и т.п.) формирует Output параметры (сообщение об ошибке + код ошибки) и select не формирует.
Требуется положить результат выполнения SP в очередь (GLO:GLO_Q_Code).
MavLoad(' Exec dbo.test @nRaisErr = 0 , @nAmount = ' & Loc_Amount, GLO:GLO_Q_Code), но как только SP идет по ветке ошибки (т.е. не формирует Select, а кладет ошибки в Output параметры) -- естественно возникает ошибка.
Как правильнее получить результат выполнения SP в очередь и при этом отловить Output параметры?
ситуация следующая, MAVLOAD предполагает что на входее будет ВСЕГДА SELECT, в данном случае надо воспользоваться объектом для работы с хранимыми процедурами
MAVExecSp, он может получать множественные выборки, для этого необходимо соответсвенно его проинициализировать через метод
PrepareSelect.
чисто моё мнение: я бы сделал единый возврат и в результате ошибки генерил бы тоже SELECT с одной записью
Обновление от 28 сентября 2005 года
Добавлено: 28 Сентябрь 2005, 10:17
Andrew™
интересная петрушка получается, применительно к ACCESS'у
этот запрос неправильный
SELECT A.`NAME1`,A.`NAME2`,B.`Name`,C.`Name`,A.`ID`
FROM NPunkt A
LEFT OUTER JOIN NPSetlers B ON B.`ID`=A.`SetlersID`
LEFT OUTER JOIN NPRayon C ON C.`ID`=B.`RayonID`
а этот правильный
SELECT A.`NAME1`,A.`NAME2`,B.`Name`,C.`Name`,A.`ID`
FROM (NPunkt A
LEFT OUTER JOIN NPSetlers B ON B.`ID`=A.`SetlersID`)
LEFT OUTER JOIN NPRayon C ON C.`ID`=B.`RayonID`
т е каждый послежующий JOIN надо обрамлять скобками, даже лучше вот так:
SELECT A.`NAME1`,A.`NAME2`,B.`Name`,C.`Name`,A.`ID`
FROM ((NPunkt A
LEFT OUTER JOIN NPSetlers B ON B.`ID`=A.`SetlersID`)
LEFT OUTER JOIN NPRayon C ON C.`ID`=B.`RayonID`)
на других серваках, а я тестирую на многих библу, такого ОБЯЗАТЕЛЬНОГО правила нет
Библиотека доработана на данный феномен, по другому и назвать не могу

Добавлено: 20 Октябрь 2005, 10:41
Admin
Андрей на какой версии Клариона скомпилированы библиотеки последнего MAV? Не на 9046 случаем?
Т.к. при сборке в Standalone у меня рушится прога на процедуре с MAVBrowse.
И еще вопрос. Можно ли надеяться что увидит свет новая (доработанная) документация по классами и вообще.
Сейчас в 5-ти местах смотрю и везде по разному ...
P.S. У меня 9047

Добавлено: 20 Октябрь 2005, 10:57
Andrew™
Admin писал(а):Андрей на какой версии Клариона скомпилированы библиотеки последнего MAV? Не на 9046 случаем?
Т.к. при сборке в Standalone у меня рушится прога на процедуре с MAVBrowse.
здесь выложена версия на определённую дату, для ознакомления с продкутом, думаю этого хватит для понимания что это за фрукт и с чем его едят
Официальные пользователи получают сборки библиотеки под актуальные версии Clarion
я блин забыл, ты официальный пользователь или у нас есть какая то определённая договорённость, так заработалси в последнее время что многое из башки вылетело, судя по письмам есть договорённость, ссылку на текущую сборку для C6.2 9047 я вышлю тебе мылом.
Admin писал(а):
И еще вопрос. Можно ли надеяться что увидит свет новая (доработанная) документация по классами и вообще.
Сейчас в 5-ти местах смотрю и везде по разному ...
P.S. У меня 9047

ищу человека, который умеет хорошо писать документацию, отдам ему ВСЕ свои наработки бесплатно, отвечу на все вопросы, которые возникнут в процессе изучения и освоения продкутов.
Добавлено: 20 Октябрь 2005, 13:50
Admin
ищу человека, который умеет хорошо писать документацию, отдам ему ВСЕ свои наработки бесплатно, отвечу на все вопросы, которые возникнут в процессе изучения и освоения продкутов.
Это интересно! Надеюсь такой человек найдется!
Добавлено: 20 Октябрь 2005, 15:24
ru_alex
Возможно вопрос не по теме, но...
Насколько я понимаю для работы программы, использующей MAV Direct ODBC, требуется соответствующий ODBC драйвер.
В Win98, по-моему, нет его для SQL Server.
Как быть? Не ставить же клиентам параллельно с программой, например, Client Tool из MS SQL.
Добавлено: 20 Октябрь 2005, 15:31
Andrew™
ru_alex писал(а):Возможно вопрос не по теме, но...
Насколько я понимаю для работы программы, использующей MAV Direct ODBC, требуется соответствующий ODBC драйвер.
В Win98, по-моему, нет его для SQL Server.
Как быть? Не ставить же клиентам параллельно с программой, например, Client Tool из MS SQL.
это как это нет, в том же MS Office при установке он ставится, а Word и Excel почти все юзают
по любому, если хотим организовать доступ к СЕРВЕРУ, на КЛИЕНТЕ должен быть минимальный набор библиотек ODBC для организации доступа
на голой машине любым соответсвующим софтом нельзя работать с сервером без наличия такой математики
Добавлено: 24 Октябрь 2005, 4:46
Admin
Создал таблицу.
В ней есть поле:
DATE DATETIME
Создал файл.
Описал дату в файле как:
Код: Выделить всё
Date STRING(8)
Date_GROUP GROUP,OVER(Date)
Date_DATE DATE
Date_TIME TIME
END
В программе устанавливаю дату:
IL:Date_DATE = TODAY()
IL:Date_TIME = CLOCK()
В результате если смотреть в SQL Query Analizer
у времени в поле даты нет милисекунд... стоят три нуля!

Соответственно сортировка по полю DATA работает через ж...
т.к. у меня может быть 10 записей в секунде
Что делать?
P.S. Clarion 6.2 9047 MAV(9047)
Добавлено: 24 Октябрь 2005, 9:09
Andrew™
Admin писал(а):
В программе устанавливаю дату:
IL:Date_DATE = TODAY()
IL:Date_TIME = CLOCK()
В результате если смотреть в SQL Query Analizer
у времени в поле даты нет милисекунд... стоят три нуля!

Соответственно сортировка по полю DATA работает через ж...
т.к. у меня может быть 10 записей в секунде
м-да, может я что то не понимаю, но господа не понимаю куды в эту структуру засунуть миллисекунды:
TIMESTAMP_STRUCT GROUP,TYPE
year SHORT
month USHORT
day USHORT
hour USHORT
minute USHORT
second USHORT
fraction ULONG
END
Добавлено: 24 Октябрь 2005, 9:41
Admin
Ну я может тоже чего не понимаю но в доке по MS SQL написано что
DATETIME:
Date and time data from January 1, 1753 through December 31, 9999,
to an accuracy of one three-hundredth of a second (equivalent to 3.33 milliseconds or 0.00333 seconds).
Values are rounded to increments of .000, .003, or .007 seconds, as shown in the table.
Вот пять записей добавленных через MAV
2005-10-24 15:49:11.000 Commands: /s
2005-10-24 15:49:39.000 Shutdown by User press
2005-10-24 15:50:19.000 Logon complette
2005-10-24 15:50:19.000 Commands: /s
2005-10-24 15:50:38.000 Shutdown by User press
А вот я ручками добавил в SQL Query Analiser
2005-10-25 10:10:10.123 test
2005-10-25 10:10:10.123 test
2005-10-25 10:10:10.127 test
2005-10-25 10:10:10.127 test
2005-10-25 10:10:10.127 test
В последнем варианте явно присутствуют милисекунды!
Скажи что я не прав?
Добавлено: 24 Октябрь 2005, 9:59
Andrew™
Admin писал(а):Ну я может тоже чего не понимаю но в доке по MS SQL написано что
А вот я ручками добавил в SQL Query Analiser
2005-10-25 10:10:10.123 test 2005-10-25 10:10:10.123 test 2005-10-25 10:10:10.127 test 2005-10-25 10:10:10.127 test 2005-10-25 10:10:10.127 test
В последнем варианте явно присутствуют милисекунды!
Скажи что я не прав?
всё, разобралси, просто до сего момента никто о данной проблеме не заявлял, всем хватало секунд, сейчас оттестирую и дам ссылку на обновление
Добавлено: 24 Октябрь 2005, 10:29
Admin
Ok! C тобой приятно работать ...
