Автор | Сообщение |
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
|
|
|
Ответов - 55
, стр:
1
2
3
All
[только новые]
|
|