Форум » LetoDB, HbNetio. » Leto DB Server (продолжение) » Ответить

Leto DB Server (продолжение)

alkresin: Только что открыл на 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: Какую версию letodb вы используете ? Свежую с CVS, или собранный резиз ?

a_sidorov: Вообще-то задачу запустил, пересобрав сервер. Indexkey() пока из функции открытия убрал. Ошибка в выражении третьего индекса идет и в своем и в Вашем варанте (сборка от 26.05). Попробую протестировать на других файлах.

a_sidorov: На другом файле идет то же самое, здесь Indexkey(3) возвращает пустую строку независимо от индексного выражения, сборка с CVS, сервер на локальном комьютере. Открытие индексов NTX через DBSETINDEX(ntxfile)


Pasha: a_sidorov пишет: 1. При отсутствии файла letodb.ini (ну ошибся в имени, с кем не бывает) файл открывается по полному пути. Если поставить вызов leto_file(), то возвращает .f. (не работает), при этом все начинает глючить Пофиксил

Pasha: Хотелось бы обсудить такой вопрос Для переменных SET DEFAULT или SET PATH устанавливается значение вида //ip_addr:port/... Множество функций харбора, таких как File(), используют эти переменные, в результате чего "лезут неизвестно куда", что приводит к задержке в работе при их вызове порядка 10-15 сек Как настроить LETO по-другому ? Предложения ?

Pasha: Например, возможен такой вариант: Использовать стандартные set-переменные SET_DEFAULT и SET_PATH только для локальных каталогов, и не устанавливать их для LETO В letodb добавить 2 переменные окружения: cLetoPath и cLetoDefault Если они заданы - использовать их в letodb, а если нет - тогда уже открывать файлы по переменным SET

Pasha: Решил добавить поле szPath в структуру LETOCONNECTION. В функции LETO_CONNECT заполнять его (если задан путь после //ip:port), и возвращать nConnection, начиная с 1, а не с 0 Затем в letoOpen и letoCreate добавить поддержку pOpenInfo->uiConnection, и, если он задан и задан pConnection->szPath, использовать его вместо hb_set.HB_SET_PATH

gfilatov: Выложил готовую к использованию полную сборку 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: У меня вот такой 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: Выложил готовую к использованию полную сборку 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: Не работает: ========== 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: Вдогонку: INDEX ON STR(pronto->Dok,10) TO ( cPath+'PRX' ) - тоже не работает: Error LETO/1021 Data type error: -003:15-1002 |

Pasha: Snake пишет: INDEX ON STR(pronto->Dok,10) TO ( cPath+'PRX' ) - тоже не работает: Алиас в индексном выражении работать не будет, поскольку оно вычисляется на сервере, а там алиасы открытых таблиц отличаются от локальных алиасов С ошибкой при создании индекса посмотрю. Это cdx или ntx ?

Snake: Это cdx и xharbour. Еще заметил - если я делаю index on str(Dok,10) TAG prx - все ок, если для каждого tag создаю свой .cdx - не работает. В принципе можно и так работать, просто к сведению.

Andrey: Snake пишет: если для каждого tag создаю свой .cdx - не работает. В принципе можно и так работать, просто к сведению. Я тоже создаю для каждого tag создаю свой .cdx ! Мне принципиально нужно чтоб работало.... Но это не срочно, я подожду ....

Pasha: 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: Выложил готовую к использованию полную сборку 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: Эх... привиредливый я ... Создаваться-то они создаются, но работают как-то странно: 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: Snake пишет: - в Browse() показывает одну пустую строку. Если делать index ... tag ... - все ок. Кстати - не позволяет создать индекс в каталоге отличном от каталога с .dbf ( index on STR(A2) TO ( 'x/x/prx' ) ) Еще вопрос - правильно ли я понимаю, что вывод прогрессбара при индексации при открытии via leto невозможен? Поддержку нескольких bag надо пересмотреть Прогрессбар - да, невозможен. Обмена пакетами между клиентом и сервером во время индексации на сервере нет

Snake: Еще: Устанавливаем 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: Вопрос 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 (скачал Сегодня с сайта Григоря Филатова) Спасибо

Петр: Oskar_A пишет: Версия xHarbour Compiler build 0.99.60 (SimpLex) какие причины заставляют вас использовать устаревшую сборку?

Pasha: 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: Snake пишет: Еще: Устанавливаем scope. затем Browse(), жмем Ctrl+PgDn (к концу таблицы) жмем PgUp... и ничего. Так и остаемся в конце таблицы. Поправил

Oskar_A: Pasha & Петр, спасибо за отзывы. Версия xHarbour Compiler build 0.99.60 (SimpLex) крутится и довольно успешно. Сегодня постараюсь скачать последнюю версию xHarbor. Можно ли выложить на почту или указать адрес откуда с минимальными проблемами можно получить одинаковую сборку LetoDB и хHarbour? E-Mai:l abdyvasiev_a@kcredit.kg - просьба порциями до 2МБ в виде RAR-архива...... Заранее спасибо....

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) Еще: Если сразу после открытия базы, когда никакой scope еще не задан, выполняем ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) - вылетает с ошибкой

Oskar_A: Скачал версию 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: При этом слетает сервер, причем если под Win его можно перезапустить, то под Linux при попытке запуска выдает "Server already running", хотя на самом деле ничего он не running, и ps -ax его не показывает. Snake пишет: Если сразу после открытия базы, когда никакой scope еще не задан, выполняем ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) - вылетает с ошибкой

Pasha: Snake пишет: Если сразу после открытия базы, когда никакой scope еще не задан, выполняем ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) - вылетает с ошибкой поправил

Pasha: Oskar_A пишет: 2. сборка модулей в EXE файл - ошибки: Судя по ошибкам, неправильный скрипт для линкера, не подключаются основные библиотеки

Oskar_A: Pasha, получилось собрать LetoDb & xHarbour 1.0, спасибо за подсказку.... Начну тестировать итд... База из 55 DBF объем 2.6 Гб. Количество записей в одном из DBF 103 млн. количество пользователей до 15 User'ов О результатах сообщу. Спасибо

Snake: 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: ...но под линуксовым сервером это не работает - 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: Snake пишет: Сейчас проверил: если делать так - LETO_FRENAME(cPath+'pronto.cdx','test/pronto.old') - то все ок, pronto.old появляется в d:\Leo\ok\test. Мб так и было задумано? Да. Так все логично. Для 2-го параметра cPath указывать необязательно Насчет линукса - сейчас проверить не могу Меня не будет в эфире 2 недели. В последнем коммите Александр по-видимому пропустил server.prg, и пока он его не обновит, рекомендую не брать leto1.c, так как не будет работать dbCreate()

gfilatov: Выложил готовую к использованию полную сборку 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: Pasha пишет: Насчет линукса - сейчас проверить не могу Я так понимаю, дело заглохло и надолго. Тогда подскажите плз, как из программы можно получить DataPath? Очень нужно - сервер уже крутится у клиентов, а переименование файлов, хоть и не часто, но иногда приходится выполнять.

Pasha: 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: Медленное обновление данных. Тест см. ниже, выполняется по сети: 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: Вопрос снят Я забыл "хакнуть" source\rtl\filesys.c, функцию fsCommit() Теперь все очень быстро :)

Pasha: 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: Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу: http://minigui.mylivepage.ru/file/?fileid=5815 Эта сборка включает в себя последние Пашины изменения. Обычный консольный Browse() стал работать быстрее. Спасибо, Паша!

Snake: Не собирается под 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: leto1.c строка 2131, поставьте uiLen = ptr - (char *) pOpenInfo->abName + 1; вечером я поправлю на CVS

Snake: Тогда еще, наверное, надо: letomgmn.c (279) PHB_ITEM aInfo = hb_itemArrayNew( 11 );

Andrey: Вопрос на засыпку: а можно ли LetoDB собирать под Windows Mobile 6 или 7 ? А то тут задачка наклевывается и не знаешь на чем делать ?

Pasha: У меня нет устройств под Windows Mobile, проверить не могу

Dima: Andrey пишет: Вопрос на засыпку: а можно ли LetoDB собирать под Windows Mobile 6 или 7 ? Cколько стоит наладонник , ~300 $ ? Проще купить мини ноутбуки ценой ~400 $ на которых установлен полноценный Windows XP (usb порты , Lan , беспроводная сеть) , при желании можно прицепить мобильный инет. Глючные да и медленные эти наладонники.

Andrey: Dima пишет: Глючные да и медленные эти наладонники. Зато в карман влазит. Там только один список поступающих заявок будет. Нужно чтоб это работало в реальном режиме.

Dima: Andrey пишет: Зато в карман влазит. Это единственный плюс , думаю ты сам со временем поймешь что делать ставку на наладонник не стоит;) Мини нота чуток больше 22x15 см ЗЫ У моего клиента счас выляются без дела 30 наладонников , поменял 4 софта купленных оффициально а толку ноль. Сделал ему сейчас свою связь через инет на мини нотах , работает успешно. Решать тебе конечно.

Dima: Andrey Хотя возможно у нас разные задачи чуть. У нас. Сеть 50 компов , Склад (Clipper) , Netware (ADS) Есть 30 комагентов , которые ездят и собирают заявки. Заявки через инет уходят меньше чем за секунду. Прием данных из оффиса через инет занимает от 3 до 5 секунд (прайс лист , остатки , новый список клиентов для данного агента и тд) В оффисе крутится задачка типа минисервера которая эти запросы и обслуживает + берет и освежает данные в основной программе Склад. Похожая схема на наладонниках жутко глючила.

Andrey: У меня проще будет задача. Все заявки принимаются в офисе. А мастера по объектам ходят и выполняют заявки. Выполнил заявки (галочку поставил), тыкнул и посмотрел есть ли еще. Всего 30-50 заявок в день, может больше.

MMK: Dima пишет: Это единственный плюс , думаю ты сам со временем поймешь что делать ставку на наладонник не стоит;) Здравствуй Борисович :)) По всей вероятности со временем все будет с точностью до наоборот :))) Налодонники развиваются очень быстро и для таких задач они явно удобнее. Да для некоторых других тоже.. Dima пишет: У моего клиента счас выляются без дела 30 наладонников , поменял 4 софта купленных оффициально а толку ноль. Жедезо опережает софт. За бугром начали под них бабки вкладывать. Ну , а по поводу 4 софтов - мог бы и сам написать . Харбор и FW сегодня позволяют это сделать А спрос будет .

Dima: MMK пишет: Ну , а по поводу 4 софтов - мог бы и сам написать я и написал , только под Windows :) Где пропадал ?

Andrey: Как насчет надежности сервера LetoDB ? В смысле того, можно ли написав отдельную прогу - получить доступ к данным на ЧУЖОМ сервере ?

Andrey: Куда пропал Alexander Kresin ?



полная версия страницы