On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 на Харборе, ... и вообще все в наших руках :).

Кто хочет участвовать в разработке, тестировании - пишите.



Спасибо: 0 
Профиль
Ответов - 55 , стр: 1 2 3 All [только новые]


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




Пост N: 929
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.06.08 13:04. Заголовок: Какую версию letodb ..


Какую версию letodb вы используете ? Свежую с CVS, или собранный резиз ?

Спасибо: 0 
Профиль
a_sidorov



Пост N: 3
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 09.06.08 13:35. Заголовок: Вообще-то задачу зап..


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

Спасибо: 0 
Профиль
a_sidorov



Пост N: 4
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 09.06.08 13:54. Заголовок: На другом файле идет..


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


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 930
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.06.08 20:08. Заголовок: a_sidorov пишет: 1...


a_sidorov пишет:

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



Пофиксил

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 932
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.06.08 15:00. Заголовок: Хотелось бы обсудить..


Хотелось бы обсудить такой вопрос

Для переменных SET DEFAULT или SET PATH устанавливается значение вида
//ip_addr:port/...

Множество функций харбора, таких как File(), используют эти переменные, в результате чего "лезут неизвестно куда", что приводит к задержке в работе при их вызове порядка 10-15 сек
Как настроить LETO по-другому ? Предложения ?


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 933
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.06.08 15:18. Заголовок: Например, возможен т..


Например, возможен такой вариант:

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


Спасибо: 0 
Профиль
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

Спасибо: 0 
Профиль
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])



Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
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



Спасибо: 0 
Профиль
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



Спасибо: 0 
Профиль
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 |



Спасибо: 0 
Профиль
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 ?

Спасибо: 0 
Профиль
Snake





Пост N: 21
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 04.07.08 14:26. Заголовок: Это cdx и xharbour. ..


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

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




Пост N: 611
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.08 14:13. Заголовок: Snake пишет: если д..


Snake пишет:

 цитата:
если для каждого tag создаю свой .cdx - не работает. В принципе можно и так работать, просто к сведению.


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

Спасибо: 0 
Профиль
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' )



поправил

Спасибо: 0 
Профиль
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



Спасибо: 0 
Профиль
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 невозможен?



Спасибо: 0 
Профиль
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 надо пересмотреть

Прогрессбар - да, невозможен. Обмена пакетами между клиентом и сервером во время индексации на сервере нет

Спасибо: 0 
Профиль
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




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

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


Пост N: 457
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.07.08 15:43. Заголовок: Oskar_A пишет: Верс..


Oskar_A пишет:

 цитата:
Версия xHarbour Compiler build 0.99.60 (SimpLex)



какие причины заставляют вас использовать устаревшую сборку?

Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 946
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.08 22:17. Заголовок: Snake пишет: Еще: ..


Snake пишет:

 цитата:
Еще:
Устанавливаем scope.
затем Browse(), жмем Ctrl+PgDn (к концу таблицы)
жмем PgUp... и ничего. Так и остаемся в конце таблицы.



Поправил

Спасибо: 0 
Профиль
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-архива......
Заранее спасибо....

Спасибо: 0 
Профиль
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)

- вылетает с ошибкой


Спасибо: 0 
Профиль
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).
С уважением,


Спасибо: 0 
Профиль
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)

- вылетает с ошибкой



Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 947
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.07.08 22:24. Заголовок: Snake пишет: Если с..


Snake пишет:

 цитата:
Если сразу после открытия базы, когда никакой scope еще не задан, выполняем

ORDSCOPE(0,NIL)
ORDSCOPE(1,NIL)

- вылетает с ошибкой



поправил

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 948
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.07.08 22:29. Заголовок: Oskar_A пишет: 2. с..


Oskar_A пишет:

 цитата:
2. сборка модулей в EXE файл - ошибки:



Судя по ошибкам, неправильный скрипт для линкера, не подключаются основные библиотеки


Спасибо: 0 
Профиль
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'ов
О результатах сообщу.
Спасибо

Спасибо: 0 
Профиль
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. Мб так и было задумано?



Спасибо: 0 
Профиль
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 появляется в корневом каталоге



Спасибо: 0 
Профиль
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()

Спасибо: 0 
Профиль
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



Спасибо: 0 
Профиль
Snake





Пост N: 28
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 05.08.08 07:06. Заголовок: Pasha пишет: Насчет..


Pasha пишет:

 цитата:
Насчет линукса - сейчас проверить не могу


Я так понимаю, дело заглохло и надолго. Тогда подскажите плз, как из программы можно получить DataPath? Очень нужно - сервер уже крутится у клиентов, а переименование файлов, хоть и не часто, но иногда приходится выполнять.

Спасибо: 0 
Профиль
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++ )


Спасибо: 0 
Профиль
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 выполняет обновление файла данных и индекса локально.
Причем файлы открыты монопольно, сервер работает в тепличных условиях.
Почему наблюдается такой странный эффект ?


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 962
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.08.08 14:44. Заголовок: Вопрос снят Я забыл ..


Вопрос снят
Я забыл "хакнуть" source\rtl\filesys.c, функцию fsCommit()
Теперь все очень быстро :)

Спасибо: 0 
Профиль
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 и других гридов
И еще небольшие изменения, см. выше


Спасибо: 0 
Профиль
gfilatov
модератор




Пост N: 826
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 08.08.08 14:24. Заголовок: Выложил готовую к ис..


Выложил готовую к использованию полную сборку LetoDB CVS build 0.7 по адресу:

http://minigui.mylivepage.ru/file/?fileid=5815

Эта сборка включает в себя последние Пашины изменения.
Обычный консольный Browse() стал работать быстрее.
Спасибо, Паша!



Спасибо: 0 
Профиль
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
===


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 964
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.08.08 08:16. Заголовок: leto1.c строка 2131,..


leto1.c строка 2131, поставьте

uiLen = ptr - (char *) pOpenInfo->abName + 1;

вечером я поправлю на CVS

Спасибо: 0 
Профиль
Snake





Пост N: 30
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 13.08.08 09:33. Заголовок: Тогда еще, наверное,..


Тогда еще, наверное, надо:

letomgmn.c (279)

PHB_ITEM aInfo = hb_itemArrayNew( 11 );



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




Пост N: 704
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.08 21:04. Заголовок: Вопрос на засыпку: а..


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

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 1007
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.10.08 09:25. Заголовок: У меня нет устройств..


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

Спасибо: 0 
Профиль
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 , беспроводная сеть) , при желании можно прицепить мобильный
инет.
Глючные да и медленные эти наладонники.

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




Пост N: 705
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.10.08 17:43. Заголовок: Dima пишет: Глючны..


Dima пишет:

 цитата:
Глючные да и медленные эти наладонники.


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


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 1017
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.10.08 18:27. Заголовок: Andrey пишет: Зато ..


Andrey пишет:

 цитата:
Зато в карман влазит.


Это единственный плюс , думаю ты сам со временем поймешь что делать ставку на наладонник не стоит;)
Мини нота чуток больше 22x15 см

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


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 1018
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.10.08 18:41. Заголовок: Andrey Хотя возможн..


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

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




Пост N: 712
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.10.08 18:55. Заголовок: У меня проще будет з..


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


Спасибо: 0 
Профиль
MMK



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 25.10.08 09:22. Заголовок: Dima пишет: Это еди..


Dima пишет:

 цитата:
Это единственный плюс , думаю ты сам со временем поймешь что делать ставку на наладонник не стоит;)


Здравствуй Борисович :)) По всей вероятности со временем все будет с точностью до наоборот :)))
Налодонники развиваются очень быстро и для таких задач они явно удобнее. Да для некоторых других тоже..

Dima пишет:

 цитата:
У моего клиента счас выляются без дела 30 наладонников , поменял 4 софта купленных оффициально а толку
ноль.


Жедезо опережает софт. За бугром начали под них бабки вкладывать.
Ну , а по поводу 4 софтов - мог бы и сам написать . Харбор и FW сегодня позволяют это сделать

А спрос будет .


Спасибо: 0 
Dima
администратор




Пост N: 1048
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.10.08 10:11. Заголовок: MMK пишет: Ну , а п..


MMK пишет:

 цитата:
Ну , а по поводу 4 софтов - мог бы и сам написать


я и написал , только под Windows :)
Где пропадал ?

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




Пост N: 713
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.10.08 13:22. Заголовок: Как насчет надежност..


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

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




Пост N: 715
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.11.08 12:37. Заголовок: Куда пропал Alexande..


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

Спасибо: 0 
Профиль
Ответов - 55 , стр: 1 2 3 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 24
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет