Переход с TPS на MSSQL

ODBC

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Hello Всем!

Есть задача, которая отработала энное время, набралась записей и теперь стала тормозить.
Хочу перевести под MSSQL.
В основном в ней операторы работают в режиме выборок по самым разным сочетаниям полей.
Стоит ряд чеков в виде кнопок, а дальше или суммирование или отчеты.
Решалось как:
brw2.setfilter('')
fs=''
...
fs = '...' & '...'&
brw2.setfilter(fs)
thiswindow.reset(1)

В базу SQL худо-бедно перетащил, а дальше такой подход, как я понимаю выгоды никакой не даёт.
Самого SQL не знаю. Хелпер помог мало. Документация в самом SQL тоже ведь не говорит,
как Клариону все это обеспечить.
Может кто подкинет образец кода, обрамляющего тот самый
View{PROP:SQLFilter} =

Или пошлет куда-нибудь, но недалеко только
Заранее спасибо

--
Best regards,
gorky mailto:gorky@sv3.net.ua

(Добавление)

ИМХО.
Перевел на SQL. и пусть пока пользуются старой программой (конечно быстрее
не будет) и потихоньку переписывай критичные модули на тот же Delphi/VB etc.
Клара с SQL работает через ...

Martin Mader <martin@sochi.ru>

(Добавление)

MAV Direct ODBC http://www.ingasoftplus.com/id81.htm
И полагаю, что Delphi/VB будут где-то в пыли RUN-а

WBR, Nick Tsigouro. MailTo:Nick@arsis.ru
Перевел на SQL. и пусть пока пользуются старой программой (коне
чно быстрее не будет) и потихоньку переписывай критичные модули на тот же Delphi/VB etc.
Клара с SQL работает через ...
Ну это как работать...
пользуйте ODBC API и Дельфовая прога за Клашиной не угонится,
про VB я вообще молчу...

----------------------------
С уважением, Олег Иванов

(Добавление)

Ну так а что мешает на Дельфи пользовать прямой доступ?
Речь то про стандартную реализацию. На порядок проще и быстрее будет
сварганить в Дельфи ИМХО.
про VB я вообще молчу...
Это Вы про последний?

Martin Mader

(Добавление)

Был конкурс, надо было сваять определённую задачу под определённый сервак.
Писали на чём угодно, в частности на Дельфи и на Кларионе.

Так на Кларионе и быстрее разработали,
и по скорости доступа обогнал все остальные.

Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
Yahoo group: clarion@yahoogroups.com

(Добавление)
Ну так а что мешает на Дельфи пользовать прямой доступ?
Речь то про стандартную реализацию. На порядок проще и быстрее будет
сварганить в Дельфи ИМХО.
Да ладно, стандартная реализация на Дельфи такая же тормозная.

А вот какие сложности в Кларионе я не понял. Драйвер в файлах поменял и в
путь.
все работает, не быстро но работает.
> про VB я вообще молчу...

Это Вы про последний?
Эт я вообче,
телега...

----------------------------
С уважением, Олег Иванов
Написал: ClaList(2)
Гость

Сообщение Гость »

Да ладно, стандартная реализация на Дельфи такая же тормозная.
С какого такого боку? Понятно что медленнее прямого доступа (вдобавок
учитывающего особенности конкретного сервера), но до тормозов клаши ой как
далеко.
А вот какие сложности в Кларионе я не понял. Драйвер в файлах поменял и в путь.
все работает, не быстро но работает.
Так в том и дело, что так как работает мало кого устроит. А если хочешь
быстрее то слишком много усилий приходится прикладывать.

P.S. Да и это я так ... по доброте душевной. В тупик клаша зашла и очень
давно. Пока не поздно лучше сваливать.


Martin Mader


(Добавление)

Тут и так многие в курсе. :-)
Масла не подливай.

--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
Так на Кларионе и быстрее разработали,
и по скорости доступа обогнал все остальные.
Ага это из разряда баек ... из склепа ;))
Особенно насчет "скорости доступа" :))) и это при пользовании одного и того
же API :)

Martin Mader

(Добавление)

Очень даже возможно. На кларе действительно разрабатывается базовый функционал
мгновенно. Но - лишь базовый. Попытка сделать что-то низкоуровневое - кранты.

ЗЫ. 2Вадим: у тебя получилось заставить клару понять WM_ENDQUERYSESSION?

--
Best regards,
Maxim Yemelyanov
С какого такого боку? Понятно что медленнее прямого доступа (вдобавок учитывающего особенности конкретного сервера), но до тормозов клаши ой как далеко.
Используй разработки/шаблоны для работы с SQL
Так в том и дело, что так как работает мало кого устроит. А если хочешь
быстрее то слишком много усилий приходится прикладывать.
Читай выше
P.S. Да и это я так ... по доброте душевной. В тупик клаша
зашла и очень
давно. Пока не поздно лучше сваливать.
Скажем так, неудачные программеры собрались нынче у Велосипедистов...
Даже среду без ошибок сделать не могут. Но это еще ничего не говорит в целом
о концепции Клириона
---------------------------
С уважением, Олег Иванов

(Добавление)
Ага это из разряда баек ... из склепа ;))
Особенно насчет "скорости доступа" :))) и это при пользовании
одного и того же API :)
были бы мы в одном городе, я предложил бы пари:)
а вот буду с оказией в Сочи, покажу как работает програмка на Кларе,
связавшись по инету с БД в Москве и выписав парочку накладных.
Ну если конечно на пиво пригласишь:))

------------------------
С уважением, Олег Иванов

(Добавление)
А вот какие сложности в Кларионе я не понял. Драйвер в файлах поменял и в путь. все работает, не быстро но работает.
О сложности:
1. Если оставить Аппликацию как есть, те. без применения SQL запросов,
то и драйвер менять не надо.
2. Несколько файлов содержат в полях массивы и эти куски надо
переписывать.
3. Попробуйте в SQL таблице объявить поле с именем group, которые были
в TPS. Не пройдет. Попробуйте объявить ключи в SQL с одним именем в
разных таблицах. Тоже не пройдет. А в задаче (привычка старая)-
key1:u, key2:u и т.д. Меняем все в SQL, затем импорт в словарь, затем
импорт из старой аппликации в новую, а там половина полей, кстати как
поля - элементы массивов, - одни рожки торчат.
4. Конвертация через словарь - и не пытайтесь. Опять руками.
Я думаю, что знающие люди продолжат и дальше. Понимаю, что фактически
все надо переписывать. Просто задавал вопрос именно о том, как
построить и обновлять картинку с помощью запросов типа:
SELECT snum, sname, sity, comm FROM Salespeople;

Кстати, что подтолкнуло: После перевода 1С на SQL большая часть
отчетов стала строится на порядок, а некоторые просто не сравнимы.
Фактически, как через терминал. (Сервер 2xXEON -2,8GHZ /RAM1GB, а
станции - большая часть PII -PIII)
Всем большое спасибо.

--
Best regards,
gorky mailto:gorky@sv3.net.ua

(Добавление)
1. Если оставить Аппликацию как есть, те. без применения SQL запросов, то и драйвер менять не надо.
Это сложность?:)
2. Несколько файлов содержат в полях массивы и эти куски надо
переписывать.
А Причем здесь Кларион? Массивы везде нужно будет переписывать...
3. Попробуйте в SQL таблице объявить поле с именем group, которые былив TPS. Не пройдет.
[GROUP]
Попробуйте объявить ключи в SQL с одним именем в
разных таблицах. Тоже не пройдет.
с каких пор? делаете индексы с одинаковыми названиями.
А в задаче (привычка старая)-
key1:u, key2:u и т.д.
Ради бога
4. Конвертация через словарь - и не пытайтесь. Опять руками.
Как уже написал, это все лишнее, кроме массивов, но с этой проблемой
столкнуться любые программисты независимо от языка программирования
Я думаю, что знающие люди продолжат и дальше. Понимаю, что фактически все надо переписывать. Просто задавал вопрос именно о том, как построить и обновлять картинку с помощью запросов типа:
SELECT snum, sname, sity, comm FROM Salespeople;
Кларион как раз генерит такие запросы.
Как раз другая есть проблема у Клариона, это использование курсоров сервера,

из за чего бывают тормоза.
Кстати, что подтолкнуло: После перевода 1С на SQL большая часть
отчетов стала строится на порядок, а некоторые просто не сравнимы.
Фактически, как через терминал. (Сервер 2xXEON -2,8GHZ /RAM1GB, а
станции - большая часть PII -PIII)
Отчеты ничего не решают, более того это не заслуга 1С.
А оперативная работа с 1С в крупной компании также невозможна,
посадите хотя бы человек 50 и попросите плотненько поработать с документами,

через 5 минут Вы будете растерзаны...:)
Это уже проходили и не в одном десятке фирм.
Чисто гепотетически, если бы 1С решило эту проблему,
остальным было бы нечего делать на рынке. Спросите любого,
почему не ставите 1С, ответ будет один и тот же.
Всем большое спасибо.
Да незачто:)

----------------------------
С уважением, Олег Иванов

(Добавление)
Кстати, что подтолкнуло: После перевода 1С на SQL большая часть
отчетов стала строится на порядок, а некоторые просто не сравнимы.
Да ну ;) Почему то на их форумах слышно в точности обратное. Пока ручками 1С
мозги не вправить быстро она с SQL не заработает.

P.S. Исключение - некоторые типы запросов в последних релизах ядра стали пошустрее шевелится.
P.P.S. Сорри за офтопик ;)

Martin Mader

(Добавление)
2. Несколько файлов содержат в полях массивы и эти куски надо
переписывать.
Вопрос решаемый

Код: Выделить всё

RECORD RECORD
myDim    GROUP
Field1     LONG
Field2     LONG
 END
FieldDim    LONG,DIM(2),OVER(myDim)
 END
END
3. Попробуйте в SQL таблице объявить поле с именем group, которые были в TPS. Не пройдет.
Пройдёт
Для этого есть EXTERNAL NAME атрибут у поля

GROUP LONG,NAME('ПриемлемоеИмя') ! а вообще можно ли в качестве имени
GROUP задавать, не проверял
Попробуйте объявить ключи в SQL с одним именем в разных таблицах. Тоже не пройдет.
Пройдёт

В проекте оставляй с одинаковыми как есть, в БД сделай разными. Ключи то при работе с SQL используются для формирования ORDER BY конструкций и связок по JOIN в клашиных View, по именам они не юзаются

И как уже всегда говорил, проектировать БД надо средставми заточенными под эти дела,
Кларион же это инструмент для создания ТОЛЬКО клиентской части.
4. Конвертация через словарь - и не пытайтесь. Опять руками.
Я думаю, что знающие люди продолжат и дальше. Понимаю, что фактически все надо переписывать.
По большому счёту да, но можно перейти и последовательно перерабатывать код в сторону упрощения, как я уже несколько раз говорил, например:
есть задачка - покажи мне родителей + скока таких внучек, у которых дети старше 40 лет, а у тех есть свои дети, причём только девочки, и в кармане у каждой всегда имеется денюжка
достоинством >=$100

На SQL это одна строчка - грамотный SELECT, на TPS самое логичное это
клашина VIEW, но с бОльшим кодом реализации, открыть, закрыть и т д

Все перечисленные вопросы на тему не пойдёт - решаются, и уже реальный
проект, с любой структурой в словаре можно перевсти на SQL, не меняя при
этом APP, далее последовательный процесс оптимизации кода - переработка
одним словом.

Andrew Myalin
Написал: ClaList(2)
Гость

Сообщение Гость »

4. Видел несколько шаблонов по словарю создающие описания SQL таблиц. Не знаю как
там с массивами, но одинаковые поля преобразует в Префикс_Имя_Поля.
Но, конечно, лучше во 1-х руками, а во 2-х - идеология ведь другая. Так что
только руки, и вперед.

--
Best regards,
Maxim Yemelyanov

(Добавление)
1. Если оставить Аппликацию как есть, те. без применения SQL запросов, то и драйвер менять не надо.
Логично.
2. Несколько файлов содержат в полях массивы и эти куски надо
переписывать.
За дурь (проектировщика) надо платить. И это претензия не к кларе.
3. Попробуйте в SQL таблице объявить поле с именем group, которые были ...
См. выше.
... в TPS. Не пройдет. Попробуйте объявить ключи в SQL с одним именем в ...
А NAME прописывать не пробовали?
... разных таблицах. Тоже не пройдет. А в задаче (привычка старая)-
key1:u, key2:u и т.д. Меняем все в SQL, затем импорт в словарь, затем...
Я бы заставил переписать такой код за свой счет.

WBR, Nick Tsigouro

(Добавление)
Не согласен.
Напр., в куче таблиц есть поля id, name и др.
Соответственно, в каждой есть ключ tbl1:by_name, tbl2:by_name и т.д.
Это преступление?
Нет это не преступление, просто темплейты во многих местах тебе не дадут, завести одинаковые поля под разными префиксами, а где дадут, так там при выгрузке в TXA и загрузке обратно дадут ошибку:)))

Я кстати тоже поля(одинакового назначения) в разных таблицах называю
одинаково и считаю это не только удобным но и полезным а где то
универсальным средством.
----------------------------
С уважением, Олег Иванов
ЗЫ. 2Вадим: у тебя получилось заставить клару понять WM_ENDQUERYSESSION?
Нет, нифига не вышло с шатдауном. Или не видим нормальное окно на таскбаре
или можем обработать шатдаун - вместе не получается. Видимо все же
клаша кривит, в одном акцепте путается...

--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757
Написал: ClaList(2)
Гость

Сообщение Гость »

Нет это не преступление, просто темплейты во многих местах тебе не дадут,завести одинаковые поля под разными префиксами, а где дадут, так там при выгрузке в TXA и загрузке обратно дадут ошибку :lol: :laugh:
Мужчина, Вы меня пугаете :)
Можно узнать - в каких именно? Вот у меня во всех таблицах есть
поле Cod. И пока проблем не имел. И в каждой таблице есть CodKey.
Я кстати тоже поля(одинакового назначения) в разных таблицах называю одинаково и считаю это не только удобным но и полезным а где то универсальным средством.
Дык, даже DataModeler предполагает, что одинаковые имена -
одинаковые настройки должны быть. Т.е. можно предположить,
что подобная практика именования полей близка к рекомендуемой.

С уважением,
Владимир Смелик vovs@bigfoot.com
Написал: ClaList(2)
Гость

Сообщение Гость »

Мужчина, Вы меня пугаете :)
Можно узнать - в каких именно? Вот у меня во всех таблицах есть
поле Cod. И пока проблем не имел. И в каждой таблице есть CodKey.
Бог с ними с таблицами и DCT, я забыл когда с ними работал.
Но вот такой баг был точно:
в какой версии и с каким патчем точно не скажу, но
создаешь процедурку, в "DATA" заводишь две разные группы, но в каждой
поле с одинаковым названием, привыгрузке в TXA и загрузке обратно
получал ошибку, или просто когда в эту секцию заходил по кнопочке
"View local variables" кажется так, подправлял чтонибудь и пытался
выйти получал тоже самое. Вроде в последней итерации C55 это
подправили, хотя саму среду, "собаки бешеные", до сих пор по
человечески сделать не могут, очень часто при смене фокуса, попадаешь
на предыдущее окошко, в общем грустно все это...
Дык, даже DataModeler предполагает, что одинаковые имена -
одинаковые настройки должны быть. Т.е. можно предположить,
что подобная практика именования полей близка к рекомендуемой.
Я ж не спорю:)

--
С уважением,
Олег mailto:clarion@hotbox.ru
Нет это не преступление, просто темплейты во многих местах тебе не дадут,
завести одинаковые поля под разными префиксами, а где дадут, так там при ...
1. Шаблоны объявления имен не контролируют. Это может обнаружить только
компилятор.
2. Можешь привести пример одинаковых полей под разными префиксами, которые
будут конфликтовать друг с другом?
3. Только словарь и конструкторы Report/Window контролируют уникальность
имен и FEL.
... выгрузке в TXA и загрузке обратно дадут ошибку :lol:
Что-то я в этом сильно сомневаюсь. Префиксы как раз и были придуманы для
того, чтобы в разных структурах можно было иметь одинаковые имена.
Синтаксически префикс - это неотъемлемая часть имени и в большинстве случаев
самостоятельной роли не играет.
Я кстати тоже поля(одинакового назначения) в разных таблицах называю
одинаково и считаю это не только удобным но и полезным а где то
универсальным средством.
Так все так с испокон веков и делают. Я критиковал не одинаковость имен, а
полное пренебрежение мнемоничностью.
Дык, даже DataModeler предполагает, что одинаковые имена -
одинаковые настройки должны быть. Т.е. можно предположить,
что подобная практика именования полей близка к рекомендуемой.
Не просто рекомендуемой, а поддерживаемой с помощью пула типов данных в
словаре. Заводим в пуле Cod и наследуем от него во все таблицы и ссылочные
поля.
... в какой версии и с каким патчем точно не скажу, но
создаешь процедурку, в "DATA" заводишь две разные группы, но в каждой
поле с одинаковым названием, привыгрузке в TXA и загрузке обратно
Я так понимаю, что ты префиксы просто проигнорировал? А не следовало бы в
такой ситуации.

WBR, Nick Tsigouro

(Добавление)
Синтаксически префикс - это неотъемлемая часть имени и в большинстве случаев самостоятельной роли не играет.
Дык префиксы стояли, в шаблоне вводить все давало, а как заходишь через View
locak variable на выходе получал полную ж.
тоже самое было при importe из TXA
вот только не помню с каким патчем и в какой версии, но не ниже 5 точно

----------------------------
С уважением, Олег Иванов

(Добавление)
Скажем так, неудачные программеры собрались нынче у Велосипедистов...
Даже среду без ошибок сделать не могут. Но это еще ничего не говорит в
целом о концепции Клириона
Да кто ж концепцию-то ругает? Концепция, она хорошая была. В своё время -
ОЧЕНЬ хорошая.
Но писать-то приходится в Кларе, а не в концепции ;)
В общем, помянули мы её вчера с доктором Смеликом. Незлым, тихим словом и
бокалом сока ;)))

--
С уважением,
Степанец Александр Валентинович.

(Добавление)
Напр., в куче таблиц есть поля id, name и др.
Соответственно, в каждой есть ключ tbl1:by_name, tbl2:by_name и т.д.
Это преступление?
Нет. Это нормально. Тут почти любому понятно о чем речь. О чем говорит ключ
key1:u и чем он отличается от key2:u ?

WBR, Nick Tsigouro

(Добавление)
Нет, нифига не вышло с шатдауном. Или не видим нормальное окно на таскбаре или можем обработать шатдаун - вместе не получается. Видимо все же клаша кривит, в одном акцепте путается...
Вы это про что, мужики?
У меня прога спокойно обрабатывает WM_ENDQUERYSESSION
и вроди-бы никаких нареканий на какое-либо неадекватное
ее поведение от пользователей не было.

=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com

Библиотека DynaLib
http://dynalib.narod.ru
Вы это про что, мужики?
У меня прога спокойно обрабатывает WM_ENDQUERYSESSION
и вроди-бы никаких нареканий на какое-либо неадекватное
ее поведение от пользователей не было.
Олег, ну ты уж меня вааще за фрайера ушастого держишь ;-)
У меня тоже так было... До пор пока не потребовалось иметь прогу,
которая бы не была видна на панели задач...
Ну и получилось - либо шашечки либо ехать...

--
Best regards,
Vadim
Написал: ClaList(2)
Ответить