MAV Direct ODBC

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Paul писал(а):Имел в иду, что можно работать на основе библиотеки классов, а не на шаблонах вполне нормально и эффективно.
Ну а у меня что?
есть Library весрия, используй библиотеку классов и пиши всё руками, при этом ODBC API знать не требуется.
есть Template версия, которая юзает возможности Library версии
Paul писал(а): Кстати, по Вашим сообщениям в форуме можно было ранее судить, что Александр Бирюков поиог Вам запустить своё первое приложение на основе библиотеки ODBC API?
Александр показал мне крантики, благодаря которым можно повысить в разы производительность программ, но которые невозможно использовать при работае с FILE,DRIVER, помог с ответами на многие вопросы в ODBC API, первого приложения не было ;), были работающие проекты которые требовали срочной пеработки.
Первая версия библиотеки чисто родилась по необходимости, т к готовые большие проекты стали тормозить на больших объёмах данных. После создания в полном ЦЕЙТНОТЕ первой версии стало понятно КАК должЁн быть устроен сей продукт.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Перевод существующего приложения на рельсы MAV

Сообщение 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.
garnet

Stored Procedure, Select и output Parameters

Сообщение 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 параметры?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Stored Procedure, Select и output Parameters

Сообщение 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 с одной записью
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Обновление от 28 сентября 2005 года

Сообщение 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`)


на других серваках, а я тестирую на многих библу, такого ОБЯЗАТЕЛЬНОГО правила нет

Библиотека доработана на данный феномен, по другому и назвать не могу ;)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Андрей на какой версии Клариона скомпилированы библиотеки последнего MAV? Не на 9046 случаем?
Т.к. при сборке в Standalone у меня рушится прога на процедуре с MAVBrowse.

И еще вопрос. Можно ли надеяться что увидит свет новая (доработанная) документация по классами и вообще.
Сейчас в 5-ти местах смотрю и везде по разному ... :(

P.S. У меня 9047 :)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Admin писал(а):Андрей на какой версии Клариона скомпилированы библиотеки последнего MAV? Не на 9046 случаем?
Т.к. при сборке в Standalone у меня рушится прога на процедуре с MAVBrowse.
здесь выложена версия на определённую дату, для ознакомления с продкутом, думаю этого хватит для понимания что это за фрукт и с чем его едят

Официальные пользователи получают сборки библиотеки под актуальные версии Clarion
я блин забыл, ты официальный пользователь или у нас есть какая то определённая договорённость, так заработалси в последнее время что многое из башки вылетело, судя по письмам есть договорённость, ссылку на текущую сборку для C6.2 9047 я вышлю тебе мылом.
Admin писал(а): И еще вопрос. Можно ли надеяться что увидит свет новая (доработанная) документация по классами и вообще.
Сейчас в 5-ти местах смотрю и везде по разному ... :(

P.S. У меня 9047 :)
ищу человека, который умеет хорошо писать документацию, отдам ему ВСЕ свои наработки бесплатно, отвечу на все вопросы, которые возникнут в процессе изучения и освоения продкутов.
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

ищу человека, который умеет хорошо писать документацию, отдам ему ВСЕ свои наработки бесплатно, отвечу на все вопросы, которые возникнут в процессе изучения и освоения продкутов.
Это интересно! Надеюсь такой человек найдется!
ru_alex
Ветеран
Сообщения: 333
Зарегистрирован: 21 Сентябрь 2005, 11:05
Откуда: Нижний Новгород
Контактная информация:

Сообщение ru_alex »

Возможно вопрос не по теме, но...
Насколько я понимаю для работы программы, использующей MAV Direct ODBC, требуется соответствующий ODBC драйвер.
В Win98, по-моему, нет его для SQL Server.
Как быть? Не ставить же клиентам параллельно с программой, например, Client Tool из MS SQL.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

ru_alex писал(а):Возможно вопрос не по теме, но...
Насколько я понимаю для работы программы, использующей MAV Direct ODBC, требуется соответствующий ODBC драйвер.
В Win98, по-моему, нет его для SQL Server.
Как быть? Не ставить же клиентам параллельно с программой, например, Client Tool из MS SQL.
это как это нет, в том же MS Office при установке он ставится, а Word и Excel почти все юзают

по любому, если хотим организовать доступ к СЕРВЕРУ, на КЛИЕНТЕ должен быть минимальный набор библиотек ODBC для организации доступа

на голой машине любым соответсвующим софтом нельзя работать с сервером без наличия такой математики
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение 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)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение 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
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение 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

В последнем варианте явно присутствуют милисекунды!
Скажи что я не прав?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение 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

В последнем варианте явно присутствуют милисекунды!
Скажи что я не прав?
всё, разобралси, просто до сего момента никто о данной проблеме не заявлял, всем хватало секунд, сейчас оттестирую и дам ссылку на обновление
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Ok! C тобой приятно работать ... :)
Ответить