On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
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 
Профиль
Ответов - 316 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]


alkresin
moderator


Пост N: 275
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 21.05.10 13:40. Заголовок: alx_on пишет: Т.е. ..


alx_on пишет:

 цитата:
Т.е. переставить местами SELF_SYNCCHILDREN и SELF_SKIPFILTER, то все работает
Вопрос к alkresin: я правильно понял проблему или это просто так повезло в моем случае?


Думаю, что просто повезло.
Чтобы решить проблему, надо во всех операциях перемещения вставить строку

pArea->lpdbPendingRel = NULL;

Дело в том, что когда в родительской области происходит перемещение этот элемент структуры child area устанавливается ( см. letoChildSync ) и когда мы читаем запись из child area, то при установленном pArea->lpdbPendingRel происходит перемещение в child области.


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


Пост N: 34
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 21.05.10 14:15. Заголовок: alkresin Примерно ..


alkresin

Примерно так?

Скрытый текст


PS Вставлять вообще ВЕЗДЕ или только после SELF_SYNCCHILDREN?
PPS Сама функция letoChildSync() не сбрасывает lpdbPendingRel. Ее тоже необходимо поправить?

PPPS Для текущей версии harbour вместо HB_LONG используется HB_MAXINT. У себя я поправил (иначе падало. Например в UpdateRec обработка числовых полей HB_FT_LONG и HB_FT_FLOAT)

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


Пост N: 276
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 21.05.10 14:57. Заголовок: Примерно так? Лучш..



 цитата:
Примерно так?


Лучше поставить в начале функции.

 цитата:
PS Вставлять вообще ВЕЗДЕ или только после SELF_SYNCCHILDREN?


Во всех функциях перемещения. SELF_SYNCCHILDREN тут ни при чем, так как она вызывается для синхронизации детей текущей area.

 цитата:
PPS Сама функция letoChildSync() не сбрасывает lpdbPendingRel. Ее тоже необходимо поправить?


Нет, letoChildSync() устанавливает lpdbRelations для себя, ее трогать не надо.

Эта штука (lpdbRelations) обнуляется для того, чтобы area, где она установлена родителем, не перемещала текущую запись в соответствии с положением родителя.

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


Пост N: 277
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.05.10 10:44. Заголовок: alkresin пишет: Что..


alkresin пишет:

 цитата:
Чтобы решить проблему, надо во всех операциях перемещения вставить строку
pArea->lpdbPendingRel = NULL;


Выложил сегодня эти изменения на CVS

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


Пост N: 35
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 25.05.10 18:25. Заголовок: alkresin Выложил св..


alkresin
Выложил свои изменения (в продолжение темы relations).
1. DBSKIP(0) ничего не делал (в принципе, нормально для родителя, но дитя должно перемещаться).
2. DbAppend() не синхронизировал записи
3. RECNO() возвращал значение до синхронизации с родителем (также блокировка)
Поправлена установка фильтра с национальными символами
Изменил HB_LONG на HB_MAXINT (вопрос: на xHarbour это компиляется?)

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


Пост N: 279
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.05.10 21:10. Заголовок: alx_on пишет: Измен..


alx_on пишет:

 цитата:
Изменил HB_LONG на HB_MAXINT (вопрос: на xHarbour это компиляется?)


Не знаю, как на xHarbour, а на той версии Harbour, которой я пользуюсь, HB_MAXINT не определен ...

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


Пост N: 280
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.05.10 21:29. Заголовок: Проверил xHarbour - ..


Проверил xHarbour - там тоже HB_MAXINT не определен.

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


Пост N: 36
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 25.05.10 21:40. Заголовок: alkresin пишет: Не ..


alkresin пишет:

 цитата:
Не знаю, как на xHarbour, а на той версии Harbour, которой я пользуюсь, HB_MAXINT не определен ...


я пользуюсь с SVN
2 варианта
либо нет HB_MAXINT под определенную платформу (так уже было)
либо придется проверять версию (начиная с какой?)

под xHarbour могу поправить (только проверить не смогу)
PS кстати, я запускаю letodb под MacOSX (10.6) - все работает

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


Пост N: 281
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.05.10 08:02. Заголовок: alx_on пишет: я пол..


alx_on пишет:

 цитата:
я пользуюсь с SVN


А я пользуюсь "Changelog 2008-09-17 18:04" :) и в ближайшее время переходить на более новую не планирую.
Давайте вернем это дело назад. Думаю, я не один такой, кто еще не перешел на Harbour-2.

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


Пост N: 37
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.05.10 08:31. Заголовок: alkresin пишет: Дав..


alkresin пишет:

 цитата:
Давайте вернем это дело назад


Может, конечно, это совпадение, но у меня с HB_LONG падает
Обрамим проверками на Harbour-2
По типу:

#if defined (__XHARBOUR__) || !defined(__HARBOUR__) || ( (__HARBOUR__ - 0) < 0x020000 )
HB_LONG lVal
#else
HB_MAXINT lVal
#endif

или так (в самом начале):
#if !defined (HB_MAXINT)
#define HB_MAXINT HB_LONG
#endif
В течение часа выложу


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


Пост N: 282
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.05.10 09:00. Заголовок: alx_on пишет: #if !..


alx_on пишет:

 цитата:
#if !defined (HB_MAXINT)
#define HB_MAXINT HB_LONG
#endif


Так не получится, потому что HB_MAXINT определен через typedef и defined (HB_MAXINT) всегда будет false.

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


Пост N: 38
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.05.10 09:03. Заголовок: alkresin пишет: Так..


alkresin пишет:

 цитата:
Так не получится, потому


да, я уже заметил :)
значит первый вариант

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


Пост N: 39
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.05.10 09:28. Заголовок: alkresin выложил..


alkresin
выложил

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




Пост N: 1310
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.05.10 12:41. Заголовок: alx_on пишет: PS кс..


alx_on пишет:

 цитата:
PS кстати, я запускаю letodb под MacOSX (10.6) - все работает



Круто ! Это просто фантастика ! Харбор на маке...
А программа тоже под MacOSX работает ?


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


Пост N: 40
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 26.05.10 13:56. Заголовок: Andrey пишет: А про..


Andrey пишет:

 цитата:
А программа тоже под MacOSX работает ?


Да

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


Пост N: 41
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 27.05.10 13:28. Заголовок: alkresin выложил но..


alkresin
выложил новые изменения...

PS вопрос: в связи с чем индексы каждый раз переоткрываются для уже открытой базы (hs_openindex)?
Можно ли это оптимизировать?

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


Пост N: 283
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.05.10 21:00. Заголовок: alx_on пишет: PS во..


alx_on пишет:

 цитата:
PS вопрос: в связи с чем индексы каждый раз переоткрываются для уже открытой базы (hs_openindex)?


Хм... Я этого не замечал, наверное потому что дополнительные ( не compound ) индексы использую только как временные, для одного сеанса работы и не разделяю их с другими экземплярами программы.
Надо как-то исправить, конечно.

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




Пост N: 1460
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.05.10 21:31. Заголовок: Перевел документацию..


Перевел документацию на русский язык
См. readme_rus.txt

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




Пост N: 1316
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.05.10 22:29. Заголовок: Pasha пишет: Переве..


Pasha пишет:

 цитата:
Перевел документацию на русский язык


Спасибо Паша !

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


Пост N: 29
Зарегистрирован: 13.09.07
ссылка на сообщение  Отправлено: 27.05.10 22:39. Заголовок: Реальные проекты с Leto DB Server


Использует ли кто-то в реальных проектах Leto DB Server? Насколько надежно
он ведет себя в работе? Стоит ли на него переходить?


Спасибо: 0 
Профиль
Ответов - 316 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 68
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет