On-line: Andrey, гостей 1. Всего: 2 [подробнее..]
АвторСообщение





Пост N: 64
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 03.04.10 20:51. Заголовок: Помогите протестировать первую xHarbour систему


Уважаемые профи!

Наконец перевёл систему на xHarbour (терминальный режим). Если не сложно помогите найти ошибки в её работе (сам уже тестил). Если есть желание, то с удовольствием приму критику в любом виде и отвечу на все вопросы. Система содержит исходный код (+ база очень крупной оптовки за 4 месяца) и варианты Clipper (нужна настройка ОС) и xHarbour (Win32) программ. Для установки скачать в любой каталог и распаковать архив. Все виды паролей - 11. Для создания индексов clipper (s_repair.bat), harbour (srepharb.bat). Справка F1 в любом режиме, инструкции в каталоге document. Для принудительного запуска st.bat (clip)/sth.bat (harb). По системе печати, если интересно - отдельно. Состав комплекса:
1. Оперативная программа. ls.exe (clip)/hls.exe (harb)
2. Администратор и бухгалтерия. la.exe (clip)/hla.exe (harb)
3. Аналитический контур. ldust.exe (clip)/hld.exe (harb)

Буду очень благодарен за найденные ошибки и критику в любой форме! Скачка с учётом исправлений всех замечаний на 04.04.2010 (5.92) http://get.freesoft.ru/?id=108083

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 182 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


администратор




Пост N: 1579
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 20:15. Заголовок: AndreyZh пишет: Мли..


AndreyZh пишет:

 цитата:
Млин! Andrey и AndreyZh разные люди!


Это и понятно . Не ошибся я.

Я веду к тому что у Андрея порядок верный у Вас нет.

ЗЫ
При желании можно найти в инете дискуссии на эту тему
relcom.comp.dbms.clipper
fido.clipper


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1580
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 20:16. Заголовок: Andrey пишет: А что..


Andrey пишет:

 цитата:
А что не так ?


У тебя все правильно !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1233
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.04.10 20:19. Заголовок: Dima пишет: У тебя ..


Dima пишет:

 цитата:
У тебя все правильно !


Так я же с журнала Nantacket списывал, да так и осталось ....
Уже подумал, по новому нужно делать....

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1581
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 20:27. Заголовок: Andrey пишет: Так я..


Andrey пишет:

 цитата:
Так я же с журнала Nantacket списывал, да так и осталось ....




Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 108
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 15.04.10 20:38. Заголовок: Заинтриговало! А чт..


Заинтриговало!

А что не так? Доски BBC уже лет десять не смотрел, да и найти инфу крайне сложно!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1582
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 20:47. Заголовок: AndreyZh Выкладыва..


AndreyZh

Выкладываю как есть текст от 18 октября 1999 года от andvit , Newsgroups: relcom.comp.dbms.clipper
Без правок и своих комментариев.
Свои выводы каждый делает сам.


 цитата:

Привет!

Как я уже упоминал у меня тоже были проблемы с индексами, которые я
решил под НТ (не 100% конечно но достаточно для стабильной работы).
Начать наверное нужно с самого клиппера. Я использую 5.2е + blinker 4.1
protected mode + несколько библиотек от разных компаний (six, ctp, esc)
Все кто использует 5.3 думаю там свои хитрости есть хотя все ниже
сказанное может пригодиться

Переиндексировать можно и нужно если есть свободное время и юзеров нет
это никогда не мешает. Замечено что после переиндексации все шуршит
намного быстрее. Рекомендую настоятельно как минимум делать это в
понедельник рано утром. Наш сервер после выходных всегда спит и думает
медленно.

1. Если уж совсем плохо с индексами поискать на дежа по ключевым словам
nt+clipper+locking. Там помнится кто-то написал по научному что нужно
подправить на сервере нт и на клиенте связанное с кешем из за чего могут
портиться индексы. Толково написано.

2. НЕ ДОПУСКАТЬ юзеров - менеджеров - директоров и прочих начальников
заходить на базу с помощью dbu, dbx (особенно важно при six!), brow и
делать там исправления даже самые маленькие. Опять же замечено - это
помагает на 99%. Потому как мемо поля при редактировании dbx запросто
летят а если есть unique индекс при ручном редактировании может НЕ
ОБНОВИТЬСЯ - жди в скором времени проблему.

3. К сожалению не доверять полностью brow - имеет маленькие но ошибки
(связанные с relations) что особенно неприятно при глобальной замене.

4. В программе естественно ВЕЗДЕ И ВСЮДУ при ВСЕХ редактированиях делать
rlock. Лучше пользоваться модифицированной версией которая имеет
параметр в секундах ждать если рекорд кем-то занята или сервер просто
"задумался".
После редактирования делать DbCommit() и DbUnLock() Как ни странно
именно в такой последовательности. Я читал где-то дискуссию почему так а
не наоборот можно поискать наверное на той же деже. Я везде поменял
(перед этим всегда почему-то использовал DbUnLock а уже потом DbCommit)

5. Для тех кто делает backup. Желательно чтобы в это время юзеры не
держали базы данных. С этим есть много проблем.

6. Гоните подальше любителей делать репорты под виндовс. У нас были (и
есть) деятели которые напрямую цепляются к базам из R&R, Access'a и т.д.
Это к хорошему не приведет.

7. Выкидывайте юзера после 15 минут бездействия! Нечего ему держать базы
открытыми. Сделать это можно просто. В цикле где inkey() поставить
таймер.
Очень помогает!!!

8. Теперь не совсем связанное с индексами но полезное при работе на
клиппере. Я все базы данных храню на сервере, а exe-файл на клиенте.
Т.е. используется на полную мощь машина клиента на которой уже и так
накуплено куча мемори, быстрый хард и т.д. Конечно есть advantage
который делает все на сервере но я доволен и такой схемой. Нетворк она и
для того создана чтобы иногда перегонять какие-то быйты туда сюда. На
клиенте создается директория в которой 4 файла - r.bat, r.exe,
check.exe, kbqui.com (помните такую программку длиной 6 байт -
устанавливает скорость работы клавиатуры на МАКСИМУМ speed и browse
летает !)- так что не надо покупать пентиум 500). В r.bat - 3 строки
собственно kbqui, check.exe, r.exe. Что делает check.exe. Она просто
сверяет дату и время файлов r.exe на клиенте и на сервере. И если на
сервере файл свежее просто копирует его на клиент. Это дает вам
возможность обновлять ваш сервер хоть 24 часа БЕЗБОЛЕЗНЕННО для юзеров.
Никаких переинсталляций и апгрейдов!
Кого интересует конкретно код, пишите вышлю. Это экономит много
времени.
Опять же только для админа когда он запускает программу можно просто
прикрутить переиндексацию всех индексов предварительно закрыв директорию
на сервере для старта юзеров.
Кстати проверять разрушены ли индексы можно написать простенькую
программку которая последовательно открывает все базы с индексами и
делает count на кадлый индекс. Если вылетает значит индекс разрушен.
Еще одна вещь. Создайте базу где будет имена всех юзеров. Как только
кто-то запускает программу находим его запись и БЛОКИРУЕМ ее. Теперь в
любой момент можем знать кто в онлайне Просто идем по базе и смотрим
если рекорд заблокирована, значит юзер живой еще :)
Если даже случится что он вылетет по ошибке запись автоматически
разблокируется. Кстати полезно при этом создать error.dbf в которую
писать кто когда и где вылетел. Сразу можно подправить, кинуть на сервер
и все имеют апдейт при след.запуске!
9. Да и конечно потратьте время и посмотрите на свою нетворк. Что за
нетворк, какая скорость, есть ли full-duplex на клиенте, погоняйте файлы
туда сюда на предмет скорости. Я когда этим занялся был просто в шоке.
Вместо 10Мбит работает еле-еле на 2Мбит, все драйвера установлены по
умолчанию т.е. на самую медленную скорость (лишь бы работало) С этим
точно могут возникнуть проблемы. Я не могу технически подробно объяснить
но такое впечатление что если машина тормозит то на сервере может быть
что угодно от потери информации до порчи (кеш опять!)
Я думаю даже в самом худшем случае у всех карточки как минимум 10Мбит.
Делим на 8. ~1.2 megabyte per second. Теоретически. Практически примем
за 1 мег. Копируем файл с сервера на клиент мегабайт 20-30 Засекаем
время. Если 20-40 секунд - прекрасно. Если 2-4 минуты - печально. Тут
собака и зарыта. Я поисправлял всех своих клиентов (переставил драйвера
иптимизировал ) они счастливы правда нетворк суппорт орали сильно.

Конечно в каждой ситуации свои проблемы. Но по своему опыту скажу. Нт +
95 можно все таки использовать с клиппером очень даже эффективно и так
сразу переходить на другую опер. систему? Не знаю. С протектед моде
пришла стабильность. У меня ОЧЕНЬ большая программа (больше 100 000
строк, около 150 баз и все работает)Я сам хотел бы попробовать под
линукс. Но пока к сожалению клиенты сидят на 95 + нт.
Плюс есть другие программы где миллионы записей и работает вроде все.

Если кому что интересно пишите, помогу советом.

Виктор






Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 110
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 15.04.10 21:06. Заголовок: Dima Конечно спасиб..


Dima
Конечно спасибо за текст - интересно было вспомнить "основы"!

Но за ответом какая последовательность более "правильная" текст отсылает "подальше"! Кроме того в тексте рассуждения по поводу техники, ОС, менталитете пользователей 199х года. Сейчас всё не так!

1. Техника в тысячи раз мощнее
2. ОС семейства NT/Server/Linux
3. Сети 100mb, а скоро приступаем к тесту 1Gb подсети для операторов

Кроме этого уже отмечал, что ничего не значит:

1. размер таблицы в mb/gb. Пример нужно было конвертировать табличку, где было 10000 записей * 120 полей * каждое c 255 (размер не помню), у меня она расположена в 10 значащих полях по 5-50 знаков.
2. количество таблиц в базе данных - всё зависит от проектирования и ЗАДАЧИ. Помню в "детстве" на каждого работника заводилась своя таблица, где за год набиралось по 500-5000 записей и работников было теоритически более 10 000 человек (система подотчётных лиц). НУ И ЧТО?

Хотя бы примерно скажите в чём мой порядок "неправильный"? - Он реально даёт повышение быстродействия при интенсивной работе с базой!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1583
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 21:19. Заголовок: AndreyZh Cмотрите о..


AndreyZh
Cмотрите ответ Паши в теме http://clipper.borda.ru/?1-0-0-00000441-000-0-0-1234869089 в плане
порядка dbcommit() и dbunlock()
Так же если Вы все таки читаете ответы в этой теме то посмотрите последний ответ от Петра и
Андрея , на мой взгляд все очевидно.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 111
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 15.04.10 21:25. Заголовок: Пашу сейчас почитаю,..


Пашу сейчас почитаю, а в остальном?

Петр: Я, кстати, тоже это приметил. Но подумал может быть просто здесь напутал. А оказывается и в программе
Andrey: Так я же с журнала Nantacket списывал, да так и осталось .... Уже подумал, по новому нужно делать....


Да и у Павла "очень обстоятельное разьяснение":
редактирование/удаление:

if RecLock()
read
или
delete
dbCommit()
dbUnlock()
endif


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1584
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 21:30. Заголовок: AndreyZh пишет: Да ..


AndreyZh пишет:

 цитата:
Да и у Павла "очень обстоятельное разьяснение"


Просто показана идея. Что снова не так ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 112
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 15.04.10 21:34. Заголовок: Просто показана идея..



 цитата:
Просто показана идея. Что снова не так ?



Таки тута обсуждение, что первично "курица или яйца", правда непонятко "с какой стороны посмотреть", а именно как более правильно и почему (свои аргументы привёл - мне изменить всю систему просто сменить одну команду препроцессора)?

I. DbUnlock*; DbCommit* или
II. DbCommit*; DbUnlock*

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1585
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.10 21:37. Заголовок: AndreyZh пишет: II...


AndreyZh пишет:

 цитата:
II. DbCommit*; DbUnlock*


Именно.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 113
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 15.04.10 21:47. Заголовок: Именно. Аргументу В ..



 цитата:
Именно.


Аргументу В СТУДИЮ!!! А что бы мне не быть голословным даю статистику за 3 дня (количество операций детализаций*15) и даже НИ одной жалобы на "тормоза"



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 875
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.04.10 00:21. Заголовок: AndreyZh пишет: Арг..


AndreyZh пишет:

 цитата:
Аргументу В СТУДИЮ!!! А что бы мне не быть голословным даю статистику за 3 дня (количество операций детализаций*15) и даже НИ одной жалобы на "тормоза"


При работе в сети вы должны находить баланс между скоростью и целосностью данных.
А также почитайте Clipper Guide
To insure data integrity, COMMIT should be issued before an UNLOCK operation
или xHarbour Language Reference Guide
It is recommended to call COMMIT before UNLOCK.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 114
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.04.10 08:17. Заголовок: Петр При работе в ..


Петр


 цитата:
При работе в сети вы должны находить баланс между скоростью и целосностью данных.
А также почитайте Clipper Guide
To insure data integrity, COMMIT should be issued before an UNLOCK operation
или xHarbour Language Reference Guide
It is recommended to call COMMIT before UNLOCK.



AndreyZh


 цитата:
Но за ответом какая последовательность более "правильная" текст отсылает "подальше"! Кроме того в тексте рассуждения по поводу техники, ОС, менталитете пользователей 199х года. Сейчас всё не так!

1. Техника в тысячи раз мощнее
2. ОС семейства NT/Server/Linux
3. Сети 100mb, а скоро приступаем к тесту 1Gb подсети для операторов



"Учение Ленина правильное потому, что оно верное"

что первично "курица или яйца", правда непонятко "с какой стороны посмотреть", а именно как более правильно и почему (свои аргументы привёл - мне изменить всю систему просто сменить одну команду препроцессора???

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1402
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 16.04.10 09:58. Заголовок: AndreyZh пишет: что..


AndreyZh пишет:

 цитата:
что первично "курица или яйца", правда непонятко "с какой стороны посмотреть", а именно как более правильно и почему (свои аргументы привёл - мне изменить всю систему просто сменить одну команду препроцессора???



Обьяснение такой последовательности самое простое.
Между unlock и commit другой клиент может успеть выполнить rlock - commit.
Чтобы этого не произошло, надо сначала сбросить свои данные, и только затем разблокировать запись


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 115
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.04.10 11:35. Заголовок: Pasha Между unlock ..


Pasha

 цитата:
Между unlock и commit другой клиент может успеть выполнить rlock - commit.
Чтобы этого не произошло, надо сначала сбросить свои данные, и только затем разблокировать запись



Спасибо! Какое-то объяснение... Теоритически (практически нереальная ситуация в сфере clipper программ) с каким последствиям это сможет привести? При корректно работающей техники и ОС данные не будут разрушаться даже, если не буду вообще использовать DbCommit! Или я не прав (приведите пример "фатального" кода)? А если прав, то моя конструкция обеспечивает лучшее быстродействие (объяснения выше) при ОДИНАКОВОЙ стабильности!


Помогите пожалуйста (более актуально на сейчас):
Решил собрать с другим терминалом (не gtWin), со всей прогой не пулучилось начал "на мышах" - подключил библиотеки gtWin, gtWVT (далее эксперементально подключал vtgui, библиотеку на которую ссылался Andrey в своём примере wvtgui нигде не нашёл).

Если не пытаюсь задействовать gtWVT то прога работает, а даже при попытке
HB_GT_WVT_DEFAULT ругается через Win окошко, что нет gui

(Честное слово - перед обращением к залу прочитал всю документацию и исходники на англицком языке) Что и как нужно подключать в xHarbour, что задействовать терминал gtWVT, который якобы быстрее в Win 98, да и имеет функцию gtInfo управления терминальным окном?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 116
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.04.10 13:03. Заголовок: Вопрос по терминалам..


Вопрос по терминалам снимается - нашёл проблему методом "тыка", а именно вместо подключения библиотеки gtWin подключил gtWVT. Они не живут вместе?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1403
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 16.04.10 13:55. Заголовок: AndreyZh пишет: Они..


AndreyZh пишет:

 цитата:
Они не живут вместе?



Живут. Можно линковать программу с несколькими терминалами: указать request на все, которые нужны, default - на предпочитаемый терминал, и линкеру дать все библиотеки терминалов.
Есть еще опция при запуске программы, которая прямо активирует нужный терминал:
myapp.exe //gtwin
или
myapp.exe //gtwvt


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 117
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.04.10 14:06. Заголовок: Pasha Живут. Можно ..


Pasha

 цитата:
Живут. Можно линковать программу с несколькими терминалами: указать request на все, которые нужны, default - на предпочитаемый терминал, и линкеру дать все библиотеки терминалов.



Пробовал - не получалось. Пример:
Файл *.bc:

LIBFILES = lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib GTWIN.LIB gtwvt.lib gtgui.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib zlib.lib

Текст в исходнике:

REQUEST HB_GT_WVT
REQUEST HB_GT_WIN
REQUEST HB_GT_WVT_DEFAULT

Больше ничего... Получал Win сообщение об отсутствии gui


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 182 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 331
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет