On-line: tnsr2, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
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 [только новые]


alx_on
постоянный участник


Пост N: 53
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 28.05.10 19:33. Заголовок: alkresin пишет: Я н..


alkresin пишет:

 цитата:
Я не ставлю никаких своих дополнительных ключей, что есть в стандартных файлах конфигурации, то и использую


В смысле просто make?

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


Пост N: 290
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.05.10 19:38. Заголовок: alx_on пишет: В смы..


alx_on пишет:

 цитата:
В смысле просто make?


В той версии, которой я пользуюсь, еще есть make_b32.bat и make_b32.mak, там еще не используется gnu make :)

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


Пост N: 291
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.05.10 19:41. Заголовок: Это для Windows. А д..


Это для Windows. А для Линукс - да, просто make, и перед ним устанавливаю несколько переменных окружения:
export HB_ARCHITECTURE=linux
export HB_COMPILER=gcc
export HB_GT_LIB=gtcrs


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


Пост N: 292
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.05.10 20:17. Заголовок: Посмотрел внимательн..


Посмотрел внимательнее hs_openindex, там вроде бы все в порядке, ничего не переоткрывается, ничего не переинициализируется.

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


Пост N: 293
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.05.10 20:51. Заголовок: Павел, что-то после ..


Павел, что-то после ваших сегодняшних изменений "for compatibility with older xHarbour versions" у меня перестало компилироваться:

source\server\server.prg(110) Error F0029 Can't open #include file: 'hbextcdp.ch'
...
Error: Unresolved external '_hb_GetSetStructPtr' referenced from C:\MYAPPS\LETODB\OBJ\B32\LETOFUNC.OBJ

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




Пост N: 1463
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 28.05.10 21:44. Заголовок: Я проверял сборку дл..


Я проверял сборку для Harbour с SVN, поэтому получилась такая неувязка.

с _hb_GetSetStructPtr понятно, я сейчас поправлю. У меня Harbour 1.х нет, но суть ясна.

А с source\server\server.prg(110) какие-то чудеса, а поскольку чудес не существует, видимо баг в препроцессоре
Я собирал letodb с xharbour 1.01, и на строке 105, в ветке для Harbour, которую xHarbour не должен компилировать:

#if ( (HB_VER_SVNID - 0) > 11796 )

получил ошибку на #if

я заменил конструкцию:

#if defined(HB_VER_SVNID)
#if ( (HB_VER_SVNID - 0) > 11796 )
#define __HB_EXT_CDP__
#endif
#endif

на идентичную:

#if defined(HB_VER_SVNID) && ( (HB_VER_SVNID - 0) > 11796 )
#define __HB_EXT_CDP__
#endif

ошибка в xharbour исчезла, но появилась непонятная ошибка в Harbour

Я конечно верну все назад, но фокусы с препроцессором непонятны


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


Пост N: 54
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 29.05.10 10:20. Заголовок: alkresin пишет: Пос..


alkresin пишет:

 цитата:
Посмотрел внимательнее hs_openindex, там вроде бы все в порядке


Я вставил отладочные сообщения - hs_openindex каждый раз отрабатывает, т.е.
OrdListAdd( cBagName )
OrdSetFocus( OrdCount() )
хотя таблица с таким индексным файлом уже открыта и используется

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


Пост N: 294
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.05.10 13:41. Заголовок: Pasha пишет: А с so..


Pasha пишет:

 цитата:
А с source\server\server.prg(110) какие-то чудеса, а поскольку чудес не существует, видимо баг в препроцессоре


Да, по-видимому, в тех версиях такие конструкции вызывают ошибки. Я уже сталкивался с этим.

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


Пост N: 295
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.05.10 13:43. Заголовок: alx_on пишет: Я вст..


alx_on пишет:

 цитата:
Я вставил отладочные сообщения - hs_openindex каждый раз отрабатывает, т.е.
OrdListAdd( cBagName )
OrdSetFocus( OrdCount() )
хотя таблица с таким индексным файлом уже открыта и используется


Да, отрабатывает. Но если вы посмотрите на реализацию OrdListAdd() d dbfcdx и dbfntx ( я вчера посмотрел :) ), то увидите, что там проверяется, открыт ли уже этот индекс, и, если открыт, не делается ничего.

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


Пост N: 55
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 31.05.10 19:05. Заголовок: Нашел интересную зав..


Нашел интересную зависимость под win

Если стоит "microsoft visual C++ 2008 Redistributable - x86 9.0.21022"
то лето падает (как мной описано постами выше)
если удалить (стандартно), то не падает

(конечно, может и неверно лето работает, например, ошибки по памяти остаются, но молча пропускаются )


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


Пост N: 296
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 01.06.10 08:20. Заголовок: alx_on пишет: Если ..


alx_on пишет:

 цитата:
Если стоит "microsoft visual C++ 2008 Redistributable - x86 9.0.21022"
то лето падает (как мной описано постами выше)
если удалить (стандартно), то не падает


Интересно... А каким С компилятором у вас letodb скомпилирован ? MSVS ? Если да, то той же версии, что и Redistributable ?

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


Пост N: 56
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 01.06.10 09:39. Заголовок: alkresin пишет: С к..


alkresin пишет:

 цитата:
С компилятором у вас letodb скомпилирован ?


MinGW

Но суть не в этом. Я нашел проблему! По крайней мере одну из... :)
При передаче значений полей возникает путаница, если кол-во полей в таблице > 255
Там такой бардак начинается, что диву даешься как это все работало
Попытаюсь сегодня выложить предварительные исправления

PS Александр, вопрос: в старом harbour и xHarbour есть функции (правильно! работающие под разные ОС)
hb_osPathSeparator()
hb_osDriveSeparator()
hb_osNewLine()

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


Пост N: 297
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 01.06.10 10:30. Заголовок: alx_on пишет: PS Ал..


alx_on пишет:

 цитата:
PS Александр, вопрос: в старом harbour и xHarbour есть функции (правильно! работающие под разные ОС)
hb_osPathSeparator()
hb_osDriveSeparator()
hb_osNewLine()


Функции есть, ну а правильно они работают или нет - не проверял. Наверное, правильно :).

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


Пост N: 57
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 01.06.10 10:58. Заголовок: alkresin пишет: Фун..


alkresin пишет:

 цитата:
Функции есть


Предлагаю их использовать вместо прямых указаний "/", "\" и перевода строк
все пути в коде сервера переводить на нативный вариант текущей оси сервера
(путаница возникает при использовании на клиентских местах разных ОС)

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


Пост N: 298
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 01.06.10 11:23. Заголовок: Предлагаю их использ..



 цитата:
Предлагаю их использовать вместо прямых указаний "/", "\" и перевода строк


Не возражаю. А перевод строк где нам нужен ?

 цитата:
все пути в коде сервера переводить на нативный вариант текущей оси сервера


Так они переводятся, только с использованием напрямую "/", "\"

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


Пост N: 58
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 01.06.10 12:28. Заголовок: alkresin пишет: А п..


alkresin пишет:

 цитата:
А перевод строк где нам нужен


В логах, например

 цитата:
Так они переводятся,


Не везде

Вопрос: для чего в letoOrderCreate() после успешного создания индекса нужно делать SELF_GOTOP()?
Во первых это лишний вызов (у меня в CDX-файле штук 10 ордеров и 10 gotop соответственно мне не нужны,
после создания последнего может и надо, и то не в моем случае)
Столкнулся со странной ситуацией - на ОДИН файл не может создать индекс (причем, подобные файлы с такой же структурой - ок)
именно "return SELF_GOTOP( ( AREAP ) pArea )" возвращает ошибку!

upd!
Ошибся! Сделал
SELF_GOTOP( ( AREAP ) pArea );
return SUCCESS;
- тоже самое
Ничего не понимаю

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


Пост N: 299
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 01.06.10 13:14. Заголовок: Вопрос: для чего в l..



 цитата:
Вопрос: для чего в letoOrderCreate() после успешного создания индекса нужно делать SELF_GOTOP()?


Потому что так ведет себя эта функция во всех RDD.

 цитата:
именно "return SELF_GOTOP( ( AREAP ) pArea )" возвращает ошибку!


Ошибку - в смысле run-time error с соответствующими gencode, subcode ? Если так, то что дает return SUCCESS, если эта runtime error уже произошла во время исполнения SELF_GOTOP ...

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


Пост N: 59
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 01.06.10 13:20. Заголовок: alkresin пишет: во ..


alkresin пишет:

 цитата:
во время исполнения SELF_GOTOP


В чем может быть проблема?

в функциях
letoGoTop() в leto1.c
leto_Goto() в letofunc.c
ошибки не возникают...

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


Пост N: 300
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 01.06.10 13:37. Заголовок: В чем может быть про..



 цитата:
В чем может быть проблема?

в функциях
letoGoTop() в leto1.c
leto_Goto() в letofunc.c
ошибки не возникают...



Как я понял, эта ошибка происходит у вас при создании одного определенного индекса - т.е. сразу после его создания программа вываливается, так ? Значит, letoGoTop() для этого индекса не вызываются, или я не так понял ?
А вот почему именно этот индекс вызывает ошибку надо смотреть. Создался он на сервере или нет, нормальный ли он ( открывается ли с dbfcdx ), какую именно ошибку вернул сервер. Мне, чтобы предметно об этом говорить, нужен самодостаточный пример, чтоб я мог его воспроизвести.

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


Пост N: 60
Зарегистрирован: 07.07.09
ссылка на сообщение  Отправлено: 01.06.10 17:11. Заголовок: alkresin пишет: сра..


alkresin пишет:

 цитата:
сразу после его создания программа вываливается, так ?


да

 цитата:
Значит, letoGoTop() для этого индекса не вызываются


только что еще раз проверил - вызывается

 цитата:
Создался он на сервере или нет, нормальный ли он ( открывается ли с dbfcdx )


да и да

самодостаточный пример попытаюсь сделать
PS пока баловался - сделал нечаянно тот же самый индекс с параметром DESCENDING - прошло без ошибок

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