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 
Профиль
Ответов - 55 , стр: 1 2 3 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 572
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет