Автор | Сообщение |
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 на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.
|
|
|
Ответов - 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?
|
|
|
alkresin
|
| moderator
|
Пост N: 290
Зарегистрирован: 06.07.06
|
|
Отправлено: 28.05.10 19:38. Заголовок: alx_on пишет: В смы..
alx_on пишет: В той версии, которой я пользуюсь, еще есть make_b32.bat и make_b32.mak, там еще не используется gnu make :)
|
|
|
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
|
|
|
alkresin
|
| moderator
|
Пост N: 292
Зарегистрирован: 06.07.06
|
|
Отправлено: 28.05.10 20:17. Заголовок: Посмотрел внимательн..
Посмотрел внимательнее hs_openindex, там вроде бы все в порядке, ничего не переоткрывается, ничего не переинициализируется.
|
|
|
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
|
|
|
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 Я конечно верну все назад, но фокусы с препроцессором непонятны
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 54
Зарегистрирован: 07.07.09
|
|
Отправлено: 29.05.10 10:20. Заголовок: alkresin пишет: Пос..
alkresin пишет: цитата: | Посмотрел внимательнее hs_openindex, там вроде бы все в порядке |
| Я вставил отладочные сообщения - hs_openindex каждый раз отрабатывает, т.е. OrdListAdd( cBagName ) OrdSetFocus( OrdCount() ) хотя таблица с таким индексным файлом уже открыта и используется
|
|
|
alkresin
|
| moderator
|
Пост N: 294
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.05.10 13:41. Заголовок: Pasha пишет: А с so..
Pasha пишет: цитата: | А с source\server\server.prg(110) какие-то чудеса, а поскольку чудес не существует, видимо баг в препроцессоре |
| Да, по-видимому, в тех версиях такие конструкции вызывают ошибки. Я уже сталкивался с этим.
|
|
|
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 ( я вчера посмотрел :) ), то увидите, что там проверяется, открыт ли уже этот индекс, и, если открыт, не делается ничего.
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 55
Зарегистрирован: 07.07.09
|
|
Отправлено: 31.05.10 19:05. Заголовок: Нашел интересную зав..
Нашел интересную зависимость под win Если стоит "microsoft visual C++ 2008 Redistributable - x86 9.0.21022" то лето падает (как мной описано постами выше) если удалить (стандартно), то не падает (конечно, может и неверно лето работает, например, ошибки по памяти остаются, но молча пропускаются )
|
|
|
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 ?
|
|
|
|
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()
|
|
|
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() |
| Функции есть, ну а правильно они работают или нет - не проверял. Наверное, правильно :).
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 57
Зарегистрирован: 07.07.09
|
|
Отправлено: 01.06.10 10:58. Заголовок: alkresin пишет: Фун..
alkresin пишет: Предлагаю их использовать вместо прямых указаний "/", "\" и перевода строк все пути в коде сервера переводить на нативный вариант текущей оси сервера (путаница возникает при использовании на клиентских местах разных ОС)
|
|
|
alkresin
|
| moderator
|
Пост N: 298
Зарегистрирован: 06.07.06
|
|
Отправлено: 01.06.10 11:23. Заголовок: Предлагаю их использ..
цитата: | Предлагаю их использовать вместо прямых указаний "/", "\" и перевода строк |
| Не возражаю. А перевод строк где нам нужен ? цитата: | все пути в коде сервера переводить на нативный вариант текущей оси сервера |
| Так они переводятся, только с использованием напрямую "/", "\"
|
|
|
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; - тоже самое Ничего не понимаю
|
|
|
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 ...
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 59
Зарегистрирован: 07.07.09
|
|
Отправлено: 01.06.10 13:20. Заголовок: alkresin пишет: во ..
alkresin пишет: цитата: | во время исполнения SELF_GOTOP |
| В чем может быть проблема? в функциях letoGoTop() в leto1.c leto_Goto() в letofunc.c ошибки не возникают...
|
|
|
alkresin
|
| moderator
|
Пост N: 300
Зарегистрирован: 06.07.06
|
|
Отправлено: 01.06.10 13:37. Заголовок: В чем может быть про..
цитата: | В чем может быть проблема? в функциях letoGoTop() в leto1.c leto_Goto() в letofunc.c ошибки не возникают... |
| Как я понял, эта ошибка происходит у вас при создании одного определенного индекса - т.е. сразу после его создания программа вываливается, так ? Значит, letoGoTop() для этого индекса не вызываются, или я не так понял ? А вот почему именно этот индекс вызывает ошибку надо смотреть. Создался он на сервере или нет, нормальный ли он ( открывается ли с dbfcdx ), какую именно ошибку вернул сервер. Мне, чтобы предметно об этом говорить, нужен самодостаточный пример, чтоб я мог его воспроизвести.
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 60
Зарегистрирован: 07.07.09
|
|
Отправлено: 01.06.10 17:11. Заголовок: alkresin пишет: сра..
alkresin пишет: цитата: | сразу после его создания программа вываливается, так ? |
| да цитата: | Значит, letoGoTop() для этого индекса не вызываются |
| только что еще раз проверил - вызывается цитата: | Создался он на сервере или нет, нормальный ли он ( открывается ли с dbfcdx ) |
| да и да самодостаточный пример попытаюсь сделать PS пока баловался - сделал нечаянно тот же самый индекс с параметром DESCENDING - прошло без ошибок
|
|
|
Ответов - 316
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|