Автор | Сообщение |
alkresin
|
| moderator
|
Пост N: 31
Зарегистрирован: 06.07.06
|
|
Отправлено: 31.01.08 11:36. Заголовок: Leto DB Server (продолжение)
Только что открыл на Sourceforge новый проект - Leto DB Server - https://sourceforge.net/projects/letodb Это мультиплатформенный ( Windows, Unix/Linux ) сервер баз данных, предоставляющий клиентским программам доступ к dbf/cdx файлам, находящимся на удаленном сервере ( можно и на локальном компьютере запускать - в отладочных целях ). В общем, как ADS :). Проект - на стадии разработки, не все даже базовые функции еще реализованы, до оптимизации дело еще не дошло. Но работает :). Крутится у меня на сервере несколько дней, подключал до 15 клиентов, пока не падает. Мои программы работают с ним нормально. Преимущества по сравнению с обычным файл-сервером: 1) Безопасность - базы могут быть в каталоге, недоступном для клиентских компьютеров - никто их случайно не удалит и не повредит. 2) Поскольку базы открываются серверной программой, а не клиентской, ее целостности ничего не грозит при случайном отключении клиентского компьютера. 3) значительное уменьшение сетевого траффика. 4) Должен быть, по идее, выигрыш в скорости. 5) Возможность контроля за пользователями с помощью утилиты manage ( можно придумать и другие формы контроля ). 6) Можно будет сделать транзакции, stored procedures на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.
|
|
|
Ответов - 55
, стр:
1
2
3
All
[только новые]
|
|
Pasha
|
| Администратор
|
Пост N: 929
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.06.08 13:04. Заголовок: Какую версию letodb ..
Какую версию letodb вы используете ? Свежую с CVS, или собранный резиз ?
|
|
|
a_sidorov
|
| |
Пост N: 3
Зарегистрирован: 07.06.08
|
|
Отправлено: 09.06.08 13:35. Заголовок: Вообще-то задачу зап..
Вообще-то задачу запустил, пересобрав сервер. Indexkey() пока из функции открытия убрал. Ошибка в выражении третьего индекса идет и в своем и в Вашем варанте (сборка от 26.05). Попробую протестировать на других файлах.
|
|
|
a_sidorov
|
| |
Пост N: 4
Зарегистрирован: 07.06.08
|
|
Отправлено: 09.06.08 13:54. Заголовок: На другом файле идет..
На другом файле идет то же самое, здесь Indexkey(3) возвращает пустую строку независимо от индексного выражения, сборка с CVS, сервер на локальном комьютере. Открытие индексов NTX через DBSETINDEX(ntxfile)
|
|
|
Pasha
|
| Администратор
|
Пост N: 930
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.06.08 20:08. Заголовок: a_sidorov пишет: 1...
a_sidorov пишет: цитата: | 1. При отсутствии файла letodb.ini (ну ошибся в имени, с кем не бывает) файл открывается по полному пути. Если поставить вызов leto_file(), то возвращает .f. (не работает), при этом все начинает глючить |
| Пофиксил
|
|
|
Pasha
|
| Администратор
|
Пост N: 932
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.06.08 15:00. Заголовок: Хотелось бы обсудить..
Хотелось бы обсудить такой вопрос Для переменных SET DEFAULT или SET PATH устанавливается значение вида //ip_addr:port/... Множество функций харбора, таких как File(), используют эти переменные, в результате чего "лезут неизвестно куда", что приводит к задержке в работе при их вызове порядка 10-15 сек Как настроить LETO по-другому ? Предложения ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 933
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.06.08 15:18. Заголовок: Например, возможен т..
Например, возможен такой вариант: Использовать стандартные set-переменные SET_DEFAULT и SET_PATH только для локальных каталогов, и не устанавливать их для LETO В letodb добавить 2 переменные окружения: cLetoPath и cLetoDefault Если они заданы - использовать их в letodb, а если нет - тогда уже открывать файлы по переменным SET
|
|
|
Pasha
|
| Администратор
|
Пост N: 935
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.06.08 12:19. Заголовок: Решил добавить поле ..
Решил добавить поле szPath в структуру LETOCONNECTION. В функции LETO_CONNECT заполнять его (если задан путь после //ip:port), и возвращать nConnection, начиная с 1, а не с 0 Затем в letoOpen и letoCreate добавить поддержку pOpenInfo->uiConnection, и, если он задан и задан pConnection->szPath, использовать его вместо hb_set.HB_SET_PATH
|
|
|
gfilatov
|
| модератор
|
Пост N: 798
Зарегистрирован: 25.05.05
|
|
Отправлено: 17.06.08 12:19. Заголовок: Выложил готовую к ис..
Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу: http://minigui.mylivepage.ru/file/?fileid=5462 Эта сборка включает в себя последние изменения, сделанные Пашей: 2008-06-16 19:40 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * include/rddleto.h * added szPath into LETOCONNECTION structure * source/client/letomgmn.c - removed writelog() declaration * connection number in LETO_CONNECT, LETO_SETCURRENTCONNECTION and LETO_GETCURRENTCONNECTION now is beginning from 1 + added LETO_PATH(cPath) function. cPath can be used instead of path in SET PATH and SET DEFAULT command * source/client/leto1.c ! typos in letoIsBinaryField + added support for nConnection parameter in the dbUseArea() and dbCreate() functions + added letoRemoveIpFromPath function. Index bag name in OrdCreate and OrdListAdd can be passed with ip name and port 2008-06-09 20:00 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/server/letofunc.c ! fixed bug in leto_filef() 2008-06-04 20:30 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c * source/server/server.prg ! small fix in hs_OpenIndex(), introduced in my previos commit ! fixed hs_OrderInfo() 2008-06-03 20:30 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c + added support for _SET_AUTORDER flag * source/server/server.prg ! fixed hs_openindex() function if SET_AUTOPEN flag is disabled on a client * source/server/letofunc.c * added check into LETO_ADDTAG function if tag already opened 2008-06-03 00:20 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c + added support for _SET_AUTOPEN flag 2008-06-01 21:30 UTC+0200 Pavel Tsarenko (tpe2/at/mail.ru) * source/common/common_c.c * source/client/leto1.c * source/server/letofunc.c * source/server/leto_lnx.c * source/server/leto_win.c * source/server/server.prg * source/include/funcleto.h * writelog() function moved to common_c.c + added function LETO_SUM(cField, [cFilter], [ScopeTop], [ScopeBottom])
|
|
|
sashaBG
|
| постоянный участник
|
Пост N: 36
Зарегистрирован: 15.09.05
|
|
Отправлено: 24.06.08 23:13. Заголовок: leto_frename() стала работать по другому
У меня вот такой LETODB.INI Port = 2812 DataPath = c:\letodb\data Log = letodb.log EnableFileFunc = 1 EnableAnyExt = 1 По команде Leto_Frename( _Server + 'FILE.DBF' , 'TEMP.DBF' ) TEMP.DBF появляется в c:\letodb\ а не в c:\letodb\data\ LETODB.INI и letodb.exe находятса в c:\letodb
|
|
|
gfilatov
|
| модератор
|
Пост N: 810
Зарегистрирован: 25.05.05
|
|
Отправлено: 03.07.08 12:05. Заголовок: Выложил готовую к ис..
Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу: http://minigui.mylivepage.ru/file/?fileid=5607 Эта сборка включает в себя последние изменения, сделанные Пашей: 2008-07-02 19:40 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c * source/server/letofunc.c ! fixed FLOCK() implemetnation
|
|
|
Snake
|
| |
Пост N: 19
Зарегистрирован: 23.02.06
|
|
Отправлено: 04.07.08 09:44. Заголовок: Индекс в отдельном каталоге
Не работает: ========== FUNCTION MAIN LOCAL i,j,cPath := "//192.168.0.1:2812/test/" REQUEST LETO RDDSETDEFAULT( "LETO" ) DBCREATE(cPath+'pronto',{{'DOK','N',10,0}}) USE ( cPath+'pronto' ) NEW INDEX ON STR(Dok,10) TO ( cPath+'PRX' ) DBCLOSEALL() RETURN 0 ========= Если cPath := "//192.168.0.1:2812/" - работает. Проверял и старую и новую версии. Сообщение: Error LETO/1021 Data type error: -003:20-1006 Error at ...: ORDCREATE(0) in Module: Called from : DBCREATEINDEX(61) in Module: rddord.prg Called from : MAIN(9) in Module: test1.prg
|
|
|
|
Snake
|
| |
Пост N: 20
Зарегистрирован: 23.02.06
|
|
Отправлено: 04.07.08 09:54. Заголовок: Алиас в ключе
Вдогонку: INDEX ON STR(pronto->Dok,10) TO ( cPath+'PRX' ) - тоже не работает: Error LETO/1021 Data type error: -003:15-1002 |
|
|
|
Pasha
|
| Администратор
|
Пост N: 936
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.07.08 13:18. Заголовок: Snake пишет: INDEX ..
Snake пишет: цитата: | INDEX ON STR(pronto->Dok,10) TO ( cPath+'PRX' ) - тоже не работает: |
| Алиас в индексном выражении работать не будет, поскольку оно вычисляется на сервере, а там алиасы открытых таблиц отличаются от локальных алиасов С ошибкой при создании индекса посмотрю. Это cdx или ntx ?
|
|
|
Snake
|
| |
Пост N: 21
Зарегистрирован: 23.02.06
|
|
Отправлено: 04.07.08 14:26. Заголовок: Это cdx и xharbour. ..
Это cdx и xharbour. Еще заметил - если я делаю index on str(Dok,10) TAG prx - все ок, если для каждого tag создаю свой .cdx - не работает. В принципе можно и так работать, просто к сведению.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 611
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.07.08 14:13. Заголовок: Snake пишет: если д..
Snake пишет: цитата: | если для каждого tag создаю свой .cdx - не работает. В принципе можно и так работать, просто к сведению. |
| Я тоже создаю для каждого tag создаю свой .cdx ! Мне принципиально нужно чтоб работало.... Но это не срочно, я подожду ....
|
|
|
Pasha
|
| Администратор
|
Пост N: 937
Зарегистрирован: 23.05.05
|
|
Отправлено: 06.07.08 18:40. Заголовок: sashaBG пишет: TEMP..
sashaBG пишет: цитата: | TEMP.DBF появляется в c:\letodb\ а не в c:\letodb\data\ |
| поправил Snake пишет: цитата: | Не работает: ========== FUNCTION MAIN LOCAL i,j,cPath := "//192.168.0.1:2812/test/" REQUEST LETO RDDSETDEFAULT( "LETO" ) DBCREATE(cPath+'pronto',{{'DOK','N',10,0}}) USE ( cPath+'pronto' ) NEW INDEX ON STR(Dok,10) TO ( cPath+'PRX' ) |
| поправил
|
|
|
gfilatov
|
| модератор
|
Пост N: 812
Зарегистрирован: 25.05.05
|
|
Отправлено: 07.07.08 15:12. Заголовок: Выложил готовую к ис..
Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу: http://minigui.mylivepage.ru/file/?fileid=5615 Эта сборка включает в себя следующие последние изменения: 2008-07-07 04:10 UTC+0700 Andi Jahja <harbour/AT/cbn/net/id> * source/server/letofunc.c ! type casts 2008-07-06 18:30 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/server/letofunc.c ! another fix for FLOCK() * added DataPath to the second parameter in leto_FRename() * source/server/server.prg * changes in hs_createindex() if index bagname has path 2008-07-06 12:00 UTC+0700 Andi Jahja <harbour/AT/cbn/net/id> * source/client/leto1.c ! some type casts ! line 1835 is typo (?), should be ulLen (was uiSize), pse re-check * source/common/hbhip.c * source/server/letofunc.c ! some type casts
|
|
|
Snake
|
| |
Пост N: 22
Зарегистрирован: 23.02.06
|
|
Отправлено: 07.07.08 21:47. Заголовок: Индексы - 2: Судный день
Эх... привиредливый я ... Создаваться-то они создаются, но работают как-то странно: REQUEST DBFCDX REQUEST LETO FUNCTION MAIN LOCAL i,j,cPath:='//192.168.0.163:2812/test/' RDDSETDEFAULT( "LETO" ) DBCREATE(cPath+'pronto',{{'A1','N',10,0},{'A2','C',10,0}}) USE ( cPath+'pronto' ) NEW INDEX ON STR(A1) TO prx1 INDEX ON A2 TO prx2 FOR j=1 TO 1000 DBAPPEND() REPLACE a1 WITH 1001-j, A2 WITH STR(a1,10) NEXT USE // Кстати. Если убрать эти две строчки, USE ( cPath+'pronto' ) INDEX prx1, prx2 NEW // вылетает к MS матери ;) DBSETORDER(1) // иначе текущим будет 2! DBGOTOP() BROWSE() USE RETURN 0 - в Browse() показывает одну пустую строку. Если делать index ... tag ... - все ок. Кстати - не позволяет создать индекс в каталоге отличном от каталога с .dbf ( index on STR(A2) TO ( 'x/x/prx' ) ) Еще вопрос - правильно ли я понимаю, что вывод прогрессбара при индексации при открытии via leto невозможен?
|
|
|
Pasha
|
| Администратор
|
Пост N: 943
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.07.08 09:10. Заголовок: Snake пишет: - в Br..
Snake пишет: цитата: | - в Browse() показывает одну пустую строку. Если делать index ... tag ... - все ок. Кстати - не позволяет создать индекс в каталоге отличном от каталога с .dbf ( index on STR(A2) TO ( 'x/x/prx' ) ) Еще вопрос - правильно ли я понимаю, что вывод прогрессбара при индексации при открытии via leto невозможен? |
| Поддержку нескольких bag надо пересмотреть Прогрессбар - да, невозможен. Обмена пакетами между клиентом и сервером во время индексации на сервере нет
|
|
|
Snake
|
| |
Пост N: 23
Зарегистрирован: 23.02.06
|
|
Отправлено: 09.07.08 11:16. Заголовок: Scope?
Еще: Устанавливаем scope. затем Browse(), жмем Ctrl+PgDn (к концу таблицы) жмем PgUp... и ничего. Так и остаемся в конце таблицы. FUNCTION MAIN LOCAL i,j,cPath := "//192.168.0.111:2812/test/" REQUEST LETO RDDSETDEFAULT( "LETO" ) DBCREATE(cPath+'pronto.dbf',{{'DOK','N',10,0}}) USE ( cPath+'pronto' ) NEW INDEX ON STR(Dok,10) TAG PRX FOR j=1 TO 1000 DBAPPEND() REPLACE Dok WITH 1001-j NEXT DBSETORDER(1) ORDSCOPE(0,STR(200,10)) ORDSCOPE(1,STR(400,10)) DBGOTOP() BROWSE() DBCLOSEALL() RETURN 0
|
|
|
Oskar_A
|
| |
Пост N: 1
Зарегистрирован: 09.07.08
|
|
Отправлено: 09.07.08 15:00. Заголовок: Вопрос Pasha : Верси..
Вопрос Pasha : Версия xHarbour Compiler build 0.99.60 (SimpLex) и LetoDb 1. совместимы 2. при компиляции вылетают ошибки: Error: Unresolved external '_hb_vmProcessSymbolsEx' referenced from C:\XHARBOUR\LIB\RDDLETO.LIB|rddsys Error: Unresolved external '_hb_errFuncName' referenced from C:\XHARBOUR\LIB\RDDLETO.LIB|hbip Error: Unresolved external '_hb_dateTimeStampStr' referenced from C:\XHARBOUR\LIB\RDDLETO.LIB|leto1 Error: Unresolved external '_hb_numDecConv' referenced from C:\XHARBOUR\LIB\RDDLETO.LIB|leto1 Error: Unresolved external '_hb_dateTimeStampStrGet' referenced from C:\XHARBOUR\LIB\RDDLETO.LIB|leto1 RddLeto.Lib укзана в файле сборки Локальная прграмма - консольная версия (куча PRG собирается в один Exe модуль) Версия LETODB :Letidb-0-7-bin-w32-bcc-5-5.zip (скачал Сегодня с сайта Григоря Филатова) Спасибо
|
|
|
|
Петр
|
| постоянный участник
|
Пост N: 457
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.07.08 15:43. Заголовок: Oskar_A пишет: Верс..
Oskar_A пишет: цитата: | Версия xHarbour Compiler build 0.99.60 (SimpLex) |
| какие причины заставляют вас использовать устаревшую сборку?
|
|
|
Pasha
|
| Администратор
|
Пост N: 945
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.07.08 19:59. Заголовок: Oskar_A пишет: Верс..
Oskar_A пишет: цитата: | Версия xHarbour Compiler build 0.99.60 (SimpLex) и LetoDb 1. совместимы 2. при компиляции вылетают ошибки: |
| rddleto.lib можно использовать только с той версией Harbour/xHarbour, с которой собрана сама rddleto. Если ипользуется другая сборка, то rddleto.lib надо пересобрать именно ей. Отсюда ошибка: Unresolved external '_hb_vmProcessSymbolsEx' Прочие ошибки связаны с изменением Hb api Я считаю разумной политику поддержки последних релизов Hb/xHb, и текущих версий с SVN/CVS Поддерживать остальные старые релизы сложно, их много, да и зачем ? К примеру, я уже и не помню, в каком году выходил 0.99.60
|
|
|
Pasha
|
| Администратор
|
Пост N: 946
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.07.08 22:17. Заголовок: Snake пишет: Еще: ..
Snake пишет: цитата: | Еще: Устанавливаем scope. затем Browse(), жмем Ctrl+PgDn (к концу таблицы) жмем PgUp... и ничего. Так и остаемся в конце таблицы. |
| Поправил
|
|
|
Oskar_A
|
| |
Пост N: 2
Зарегистрирован: 09.07.08
|
|
Отправлено: 10.07.08 09:27. Заголовок: Pasha & Петр, сп..
Pasha & Петр, спасибо за отзывы. Версия xHarbour Compiler build 0.99.60 (SimpLex) крутится и довольно успешно. Сегодня постараюсь скачать последнюю версию xHarbor. Можно ли выложить на почту или указать адрес откуда с минимальными проблемами можно получить одинаковую сборку LetoDB и хHarbour? E-Mai:l abdyvasiev_a@kcredit.kg - просьба порциями до 2МБ в виде RAR-архива...... Заранее спасибо....
|
|
|
Snake
|
| |
Пост N: 24
Зарегистрирован: 23.02.06
|
|
Отправлено: 10.07.08 12:06. Заголовок: // letodb.ini: Dat..
// letodb.ini: DataPath = d:\Leo\ok cPath := "//192.168.0.1:2812/test/" LETO_FRENAME(cPath+'pronto.cdx','pronto.old') - pronto.old появляется не в d:\Leo\ok\test, а в d:\Leo\ok (DataPath из letodb.ini) Еще: Если сразу после открытия базы, когда никакой scope еще не задан, выполняем ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) - вылетает с ошибкой
|
|
|
Oskar_A
|
| |
Пост N: 3
Зарегистрирован: 09.07.08
|
|
Отправлено: 10.07.08 12:16. Заголовок: Скачал версию xHarbo..
Скачал версию xHarbour Compiler build 1.0.0 (SimpLex) ... 1. компиляция исходных Prg файлов - ошибок нет 2. сборка модулей в EXE файл - ошибки: Error: Unresolved external '_main' referenced from C:\BORLAND\BCC55\LIB\C0X32.OBJ Error: Unresolved external '_HB_FUN_HB_SETCODEPAGE' Error: Unresolved external '_HB_FUN_DISKNAME' Error: Unresolved external '_hb_fsDelete' referenced from C:\XHARBOUR\LIB\CT.LIB|disk Error: Unresolved external '_hb_fsMkDir' referenced from C:\XHARBOUR\LIB\CT.LIB|disk Error: Unresolved external '_hb_fsError' referenced from C:\XHARBOUR\LIB\CT.LIB|disk Error: Unresolved external '_hb_fsCurDrv' referenced from C:\XHARBOUR\LIB\CT.LIB|disk Error: Unresolved external '_hb_fsCurDirBuff' referenced from C:\XHARBOUR\LIB\CT.LIB|disk список большой..... Вопрос(ы): 1. Список библиотек необходимых для сборки консольного приложения (выполняемый Exe модуль). 2.Особенности перехода с версии 0.99.60 (Simplex) на версию xHarbour Compiler build 1.0.0 (SimpLex). 3. LetoDb для версии xHarbour Compiler build 1.0.0 (SimpLex). С уважением,
|
|
|
Snake
|
| |
Пост N: 25
Зарегистрирован: 23.02.06
|
|
Отправлено: 10.07.08 12:19. Заголовок: При этом слетает сер..
При этом слетает сервер, причем если под Win его можно перезапустить, то под Linux при попытке запуска выдает "Server already running", хотя на самом деле ничего он не running, и ps -ax его не показывает. Snake пишет: цитата: | Если сразу после открытия базы, когда никакой scope еще не задан, выполняем ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) - вылетает с ошибкой |
|
|
|
|
Pasha
|
| Администратор
|
Пост N: 947
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.07.08 22:24. Заголовок: Snake пишет: Если с..
Snake пишет: цитата: | Если сразу после открытия базы, когда никакой scope еще не задан, выполняем ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) - вылетает с ошибкой |
| поправил
|
|
|
Pasha
|
| Администратор
|
Пост N: 948
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.07.08 22:29. Заголовок: Oskar_A пишет: 2. с..
Oskar_A пишет: цитата: | 2. сборка модулей в EXE файл - ошибки: |
| Судя по ошибкам, неправильный скрипт для линкера, не подключаются основные библиотеки
|
|
|
Oskar_A
|
| |
Пост N: 4
Зарегистрирован: 09.07.08
|
|
Отправлено: 11.07.08 04:51. Заголовок: Pasha, получилось со..
Pasha, получилось собрать LetoDb & xHarbour 1.0, спасибо за подсказку.... Начну тестировать итд... База из 55 DBF объем 2.6 Гб. Количество записей в одном из DBF 103 млн. количество пользователей до 15 User'ов О результатах сообщу. Спасибо
|
|
|
|
Snake
|
| |
Пост N: 26
Зарегистрирован: 23.02.06
|
|
Отправлено: 11.07.08 09:43. Заголовок: Это баг или фича?
Snake пишет: цитата: | // letodb.ini: DataPath = d:\Leo\ok cPath := "//192.168.0.1:2812/test/" LETO_FRENAME(cPath+'pronto.cdx','pronto.old') - pronto.old появляется не в d:\Leo\ok\test, а в d:\Leo\ok (DataPath из letodb.ini) |
| Сейчас проверил: если делать так - LETO_FRENAME(cPath+'pronto.cdx','test/pronto.old') - то все ок, pronto.old появляется в d:\Leo\ok\test. Мб так и было задумано?
|
|
|
Snake
|
| |
Пост N: 27
Зарегистрирован: 23.02.06
|
|
Отправлено: 11.07.08 10:49. Заголовок: Увы...
...но под линуксовым сервером это не работает - LETO_FRENAME(cPath+'pronto.cdx','test/pronto.old') - не переименовывает LETO_FRENAME(cPath+'pronto.cdx','pronto.old') - pronto.old появляется в DataPath из letodb.ini, а не в cPath LETO_FRENAME(cPath+'pronto.cdx','.pronto.old') - pronto.old появляется в корневом каталоге
|
|
|
Pasha
|
| Администратор
|
Пост N: 949
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.07.08 13:35. Заголовок: Snake пишет: Сейчас..
Snake пишет: цитата: | Сейчас проверил: если делать так - LETO_FRENAME(cPath+'pronto.cdx','test/pronto.old') - то все ок, pronto.old появляется в d:\Leo\ok\test. Мб так и было задумано? |
| Да. Так все логично. Для 2-го параметра cPath указывать необязательно Насчет линукса - сейчас проверить не могу Меня не будет в эфире 2 недели. В последнем коммите Александр по-видимому пропустил server.prg, и пока он его не обновит, рекомендую не брать leto1.c, так как не будет работать dbCreate()
|
|
|
gfilatov
|
| модератор
|
Пост N: 814
Зарегистрирован: 25.05.05
|
|
Отправлено: 25.07.08 11:06. Заголовок: Выложил готовую к ис..
Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу: http://minigui.mylivepage.ru/file/?fileid=5676 Эта сборка включает в себя следующие последние изменения: 2008-07-15 12:35 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su) * source/server/letofunc.c ! Fixed memory size, allocated for leto_rec() function - there were GPF's in some cases. 2008-07-14 11:30 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su) * source/server/server.prg * re-committed 2008-07-11 13:00 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su) * source/client/leto1.c * source/server/server.prg * The forth parameter od dbCreate ( lKeepOPen ) works now. * COPY TO command works now. 2008-07-10 22:25 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/server/letofunc.c ! fixed DBOI_SCOPETOPCLEAR and DBOI_SCOPEBOTTOMCLEAR evaluation with empty key item 2008-07-09 22:15 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c * added bAppend parameter to letoSetBlankRecord() function, and ulRecNo is cleared only for dbAppend() * source/server/letofunc.c ! fixed scope operations in leto_Skip() 2008-07-09 19:45 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/server/letofunc.c ! fixed compilation for Harbour 2008-07-09 09:40 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su) * source/server/letofunc.c ! Minor fix 2008-07-08 22:15 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c ! fixed gpf in letoOrderListFocus() if incorrect order number is passed * added check for already opened index bagname in letoOrderListAdd() 2008-07-08 16:25 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su) * source/client/leto1.c ! Fix in letoPutMemoValue() function * source/server/letofunc.c * source/common/hbip.c ! Fixes for hpux, provided by Luiz Rafael Culik Guimaraes
|
|
|
Snake
|
| |
Пост N: 28
Зарегистрирован: 23.02.06
|
|
Отправлено: 05.08.08 07:06. Заголовок: Pasha пишет: Насчет..
Pasha пишет: цитата: | Насчет линукса - сейчас проверить не могу |
| Я так понимаю, дело заглохло и надолго. Тогда подскажите плз, как из программы можно получить DataPath? Очень нужно - сервер уже крутится у клиентов, а переименование файлов, хоть и не часто, но иногда приходится выполнять.
|
|
|
Pasha
|
| Администратор
|
Пост N: 956
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.08.08 09:09. Заголовок: Snake пишет: Тогда ..
Snake пишет: цитата: | Тогда подскажите плз, как из программы можно получить DataPath? |
| Сейчас такой команды нет Можно добавить в LETO_MGGETINFO еще один параметр - DataPath: letofunc.c, leto_Mgmt: sprintf( s,"+%d;%d;%d;%d;%lu;%lu;%lu;%lu;%lu;%lu;%s;", uiUsersCurr,uiUsersMax,uiTablesCurr,uiTablesMax, (leto_Date()-lStartDate)*86400+(long)(hb_dateSeconds()-dStartsec), ulOperations,ulBytesSent,ulBytesRead,uiIndexCurr,uiIndexMax, pDataPath ); и letomgmn.c, HB_FUNC( LETO_MGGETINFO ): for( i=1; i<=11; i++ )
|
|
|
Pasha
|
| Администратор
|
Пост N: 961
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.08.08 14:34. Заголовок: Медленное обновление..
Медленное обновление данных. Тест см. ниже, выполняется по сети: REQUEST HB_GT_WIN REQUEST HB_GT_WIN_DEFAULT Field Mes func main Local cPath := '//Server:2812/' Local nSec, aRecs := {}, i, j REQUEST LETO RDDSETDEFAULT( "LETO" ) cls set autopen on if ! Leto_File(cPath+"leto2.dbf") dbCreate(cPath + 'leto2', {{'Mes','N',2,0},{'F1','C', 6, 0},{'F2','C', 6, 0},{'SUMMA','N', 12, 0}}) endif dbUseArea(.t.,, cPath + "leto2") if ! Leto_File(cPath+"leto2.cdx") index on mes to (cPath+"leto2") endif //OrdListClear() //OrdListAdd('leto2') dbSetOrder(1) for i := 1 to 12 for j := 1 to 1000 dbAppend() Field->Mes := i Field->Summa := j next next dbCommit() nSec := Seconds() dbSeek(10) while Mes == 10 AADD(aRecs, RecNo()) skip enddo // цикл выше выполняется быстро ? Seconds() - nSec nSec := Seconds() AEval(aRecs, {|n| dbGoto(n), RLock(),; dbDelete(),; Field->Mes := 0,; Field->Summa := 0,; dbUnlock(), dbCommit() }) // цикл выше выполняется мееееедленно, из-за dbCommit() ? Seconds() - nSec return Почему медленно ? По dbCommit() на сервер выдаются команды "upd" и "flush". Если dbCommit() вынести за цикл, то в цикле на сервер все равно передается команда "upd", а в конце цикла - "flush", и цикл выполняется быстро. Команду "flush" сервер отрабатывает, вызывая hb_rddFlushAll(). Если на сервере вызов hb_rddFlushAll() заменить на SELF_FLUSH( ( AREAP ) pArea ), то есть, flush только в текущей р.о., цикл все равно выполняется медленно, медленнее, чем при таких же условиях через DBFCDX по сети. Почему так ? Ведь должно быть наоборот. Отрабатывая flush, DBFCDX обновляет по сети и файл данных, и индексы, загружая при этом сетевой траффик. Сервер LETODB выполняет обновление файла данных и индекса локально. Причем файлы открыты монопольно, сервер работает в тепличных условиях. Почему наблюдается такой странный эффект ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 962
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.08.08 14:44. Заголовок: Вопрос снят Я забыл ..
Вопрос снят Я забыл "хакнуть" source\rtl\filesys.c, функцию fsCommit() Теперь все очень быстро :)
|
|
|
Pasha
|
| Администратор
|
Пост N: 963
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.08.08 19:47. Заголовок: 2008-08-07 19:45 UTC..
2008-08-07 19:45 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru) * source/client/leto1.c * source/client/letomgmn.c * source/server/letofunc.c * include/rddleto.h * pCurrentConn moved from letofunc.c to leto1.c. The default connection now can be set by LETO_CONNECT() function for USE and CREATE command * If server name and port is skipped in file name in Leto_File() function, the default connection is used * LETO_MGGETINFO() function now return DataPath + added leto_InTransaction() function * skip buffer is used for dbSkip(-1) also * hb_rddFlushAll() replaced witn SELF_FLUSH( ( AREAP ) pArea ) in the flush command on server Теперь для соединения с сервером можно не задавать адрес //server:port/ в имени таблицы или в командах SET PATH/DEFAULT. Если имени сервера нет, то используется уже установленное соединение по умолчанию, заданное в LETO_CONNECT(). Алгоритм поиска сервера следующий: 1. Если задан параметр nConnection - он используется 2. Заданное имя сервера в командах use/create или set path/default 3. Соединение по умолчанию в LETO_CONNECT(). Путь к таблице на сервере может быть задан функцией LETO_PATH(). Также добавлена буферизация команды skip -1, что дает увеличение производительности для TBrowse и других гридов И еще небольшие изменения, см. выше
|
|
|
gfilatov
|
| модератор
|
Пост N: 826
Зарегистрирован: 25.05.05
|
|
Отправлено: 08.08.08 14:24. Заголовок: Выложил готовую к ис..
Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу: http://minigui.mylivepage.ru/file/?fileid=5815 Эта сборка включает в себя последние Пашины изменения. Обычный консольный Browse() стал работать быстрее. Спасибо, Паша!
|
|
|
|
Snake
|
| |
Пост N: 29
Зарегистрирован: 23.02.06
|
|
Отправлено: 12.08.08 11:01. Заголовок: Не собирается под li..
Не собирается под linux. a1.log: === gcc -Wall -O3 -mcpu=pentium -c -Iinclude -I/pub/xharbour/include -o obj/linux/leto1.o source/client/leto1.c === a2.log: === source/client/leto1.c: In function `letoIsBinaryField': source/client/leto1.c:399: warning: comparison is always false due to limited range of data type source/client/leto1.c: In function `leto_ParseRec': source/client/leto1.c:439: warning: dereferencing type-punned pointer will break strict-aliasing rules source/client/leto1.c: In function `letoOpenConnection': source/client/leto1.c:2131: error: invalid operands to binary - source/client/leto1.c: At top level: source/client/leto1.c:3628: warning: initialization from incompatible pointer type source/client/leto1.c:3665: warning: initialization from incompatible pointer type source/client/leto1.c:3666: warning: initialization from incompatible pointer type make: *** [obj/linux/leto1.o] Error 1 ===
|
|
|
Pasha
|
| Администратор
|
Пост N: 964
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.08.08 08:16. Заголовок: leto1.c строка 2131,..
leto1.c строка 2131, поставьте uiLen = ptr - (char *) pOpenInfo->abName + 1; вечером я поправлю на CVS
|
|
|
Snake
|
| |
Пост N: 30
Зарегистрирован: 23.02.06
|
|
Отправлено: 13.08.08 09:33. Заголовок: Тогда еще, наверное,..
Тогда еще, наверное, надо: letomgmn.c (279) PHB_ITEM aInfo = hb_itemArrayNew( 11 );
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 704
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.10.08 21:04. Заголовок: Вопрос на засыпку: а..
Вопрос на засыпку: а можно ли LetoDB собирать под Windows Mobile 6 или 7 ? А то тут задачка наклевывается и не знаешь на чем делать ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 1007
Зарегистрирован: 23.05.05
|
|
Отправлено: 17.10.08 09:25. Заголовок: У меня нет устройств..
У меня нет устройств под Windows Mobile, проверить не могу
|
|
|
Dima
|
| |
Пост N: 1016
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.10.08 16:45. Заголовок: Andrey пишет: Вопро..
Andrey пишет: цитата: | Вопрос на засыпку: а можно ли LetoDB собирать под Windows Mobile 6 или 7 ? |
| Cколько стоит наладонник , ~300 $ ? Проще купить мини ноутбуки ценой ~400 $ на которых установлен полноценный Windows XP (usb порты , Lan , беспроводная сеть) , при желании можно прицепить мобильный инет. Глючные да и медленные эти наладонники.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 705
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.10.08 17:43. Заголовок: Dima пишет: Глючны..
Dima пишет: цитата: | Глючные да и медленные эти наладонники. |
| Зато в карман влазит. Там только один список поступающих заявок будет. Нужно чтоб это работало в реальном режиме.
|
|
|
Dima
|
| |
Пост N: 1017
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.10.08 18:27. Заголовок: Andrey пишет: Зато ..
Andrey пишет: Это единственный плюс , думаю ты сам со временем поймешь что делать ставку на наладонник не стоит;) Мини нота чуток больше 22x15 см ЗЫ У моего клиента счас выляются без дела 30 наладонников , поменял 4 софта купленных оффициально а толку ноль. Сделал ему сейчас свою связь через инет на мини нотах , работает успешно. Решать тебе конечно.
|
|
|
Dima
|
| |
Пост N: 1018
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.10.08 18:41. Заголовок: Andrey Хотя возможн..
Andrey Хотя возможно у нас разные задачи чуть. У нас. Сеть 50 компов , Склад (Clipper) , Netware (ADS) Есть 30 комагентов , которые ездят и собирают заявки. Заявки через инет уходят меньше чем за секунду. Прием данных из оффиса через инет занимает от 3 до 5 секунд (прайс лист , остатки , новый список клиентов для данного агента и тд) В оффисе крутится задачка типа минисервера которая эти запросы и обслуживает + берет и освежает данные в основной программе Склад. Похожая схема на наладонниках жутко глючила.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 712
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.10.08 18:55. Заголовок: У меня проще будет з..
У меня проще будет задача. Все заявки принимаются в офисе. А мастера по объектам ходят и выполняют заявки. Выполнил заявки (галочку поставил), тыкнул и посмотрел есть ли еще. Всего 30-50 заявок в день, может больше.
|
|
|
MMK
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 25.10.08 09:22. Заголовок: Dima пишет: Это еди..
Dima пишет: цитата: | Это единственный плюс , думаю ты сам со временем поймешь что делать ставку на наладонник не стоит;) |
| Здравствуй Борисович :)) По всей вероятности со временем все будет с точностью до наоборот :))) Налодонники развиваются очень быстро и для таких задач они явно удобнее. Да для некоторых других тоже.. Dima пишет: цитата: | У моего клиента счас выляются без дела 30 наладонников , поменял 4 софта купленных оффициально а толку ноль. |
| Жедезо опережает софт. За бугром начали под них бабки вкладывать. Ну , а по поводу 4 софтов - мог бы и сам написать . Харбор и FW сегодня позволяют это сделать А спрос будет .
|
|
|
Dima
|
| |
Пост N: 1048
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.10.08 10:11. Заголовок: MMK пишет: Ну , а п..
MMK пишет: цитата: | Ну , а по поводу 4 софтов - мог бы и сам написать |
| я и написал , только под Windows :) Где пропадал ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 713
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.08 13:22. Заголовок: Как насчет надежност..
Как насчет надежности сервера LetoDB ? В смысле того, можно ли написав отдельную прогу - получить доступ к данным на ЧУЖОМ сервере ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 715
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.11.08 12:37. Заголовок: Куда пропал Alexande..
Куда пропал Alexander Kresin ?
|
|
|
Ответов - 55
, стр:
1
2
3
All
[только новые]
|
|