Форум » LetoDB, HbNetio. » Leto DB Server(продолжение) » Ответить

Leto DB Server(продолжение)

alkresin: Только что открыл на 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 на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.

Ответов - 301, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All

alx_on: Pasha пишет: А что глючит ? простой SKIP Если выполнить выражение фильтра на записи, то все правильно (.F.) Если SKIP, то на нее переходит (хотя не должен)

Pasha: А фильтр серверный или клиентский ? С серверным должно быть все ok

alx_on: Pasha пишет: А фильтр серверный или клиентский ? клиентский


Pasha: Уже вижу, в letoSkipRaw нет проверки на клиентский фильтр для буфера skip. Надо добавить. А scope тут ни при чем

alx_on: Pasha пишет: в letoSkipRaw нет проверки на клиентский фильтр для буфера skip Как тогда работает MT вариант? :)

Pasha: Непонятно Точно клиентский фильтр ? Т.е. сервер не может вычислить выражение фильтра, или задан только блок кода для фильтра ?

AlexMyr: К вопросу о файловом доступе: А если реализовать это через BLOB поля? Вот пример без letodb (проверял работает) #include "blob.ch" FUNCTION SHOWPIX() LOCAL cPixFile := "ntimage.gif" LOCAL nPos REQUEST DBFCDX rddSetDefault( "DBFCDX" ) dbCreate( "customer", { { "PIX","W",10,0 } } ) USE Customer NEW dbAppend() nPos := FieldPos( "Pix" ) BLOBIMPORT( nPos, "ved.prg" ) dbAppend() IF !BLOBIMPORT( nPos, cPixFile ) Alert( "Export of picture " + cPixFile + " failed!" ) ENDIF dbAppend() BLOBIMPORT( nPos, "test_ta.exe" ) dbgotop() BLOBEXPORT( nPos, "ved_new.prg", 0 ) dbGoBottom() BLOBEXPORT( nPos, "test_ta_new.exe", 0 ) return Если собрать этот пример с letodb, то letodb не может создать файл с полем типа W (blob поле), а если создать с MEMO полем, то letodb выдает ошибку: Error LETO/0 Operation not supported Called from DBFILEPUT(0) Called from SHOWPIX(17) Кто что скажет по поводу BLOB полей?

alx_on: Pasha пишет: сервер не может вычислить выражение фильтра да LETO_ISFLTOPTIM() - .F.

Pasha: AlexMyr пишет: Кто что скажет по поводу BLOB полей? А что тут говорить... надо добавить в leto поддержку HB_FT_BLOB, HB_FT_PICTURE, HB_FT_OLE Сейчас поддерживается только HB_FT_MEMO Я использую memo, и проблем не было, ни с M, 10, ни с M, 4

Pasha: В M, 4 я храню в том числе и картинки jpg. Сейчас проверил - работает и на чтение, и на запись

Pasha: Кстати, старый Harbour 1.0 знает, что такое HB_FT_BLOB, HB_FT_PICTURE, HB_FT_OLE ?

AlexMyr: Pasha пишет: Кстати, старый Harbour 1.0 знает, что такое HB_FT_BLOB, HB_FT_PICTURE, HB_FT_OLE ? Скорее всего да. В файле whatsnew.txt сказано: Version 0.46 Alpha Build 46 (2006-05-29) tag: build46 ... - Added all Clipper 5.3 BLOB*() functions support. - Added new RDD DBFBLOB compatible with Clipper 5.3 DBFBLOB. It operates on memo files only (.dbv) without tables (.dbf). ...

Pasha: blob и прочая я уже добавил, вечером скину

Pasha: alx_on пишет: да LETO_ISFLTOPTIM() - .F. Странно это. Я сейчас проверил - skip правильно отрабатывает клиентский фильтр. Тогда понятно только то, что ничего не понятно :(

alx_on: Pasha пишет: Тогда понятно только то, что ничего не понятно Вот и я о том же

alx_on: Нашел проблему с фильтром Была интересная проверка на длину LETO_MAX_EXP У меня фильтр был больше и это воспринималось как снятие фильтра! Выложу исправления - проверьте плз Вопрос Александру: в каких глобальных целях используется функция leto_ParseFilter()? Были какие то нюансы при простой проверке? (т.е. просто попробовать скомпилять блок кода) Потому как его надо допиливать на предмет добавления проверки "FIELD->". Стоит это делать?

alkresin: Вопрос Александру: в каких глобальных целях используется функция leto_ParseFilter()? Представьте такое выражение фильтра: SOME_FIELD == 1 .AND. Some_UDF() Если мы его выполняем (для проверки) при текущем значении SOME_FIELD != 1, возвращается логическое выражение .F. и никакой ошибки, т.к. до выполнения Some_UDF() дело не доходит - получается, что выражение годно для выполнения на сервере, что неверно.

alkresin: Потому как его надо допиливать на предмет добавления проверки "FIELD->". А зачем использовать field-> в выражении для фильтра ?

alx_on: alkresin пишет: Если мы его выполняем (для проверки) Уже просто компиляция вернет ошибку (нет функции Some_UDF) А зачем использовать field-> При строгой проверке (ключ -w3) без "FIELD->" макрокоманда "SET FILTER" не компиляется

AlexMyr: Не могу собрать letodb, hbmk2: Processing local make script: hbmk.hbm hbmk2: Compiling Harbour sources... hbmk2: Harbour compiler command (embedded): (c:\dev\harbour\bin\harbour.exe) -n1 source\client\rddsys.prg -n -w -q0 -es2 -olib\.hbmk\win\bcc\ -ic:\dev\harbour\include -iinclude hbmk2: Compiling... hbmk2: C/C++ compiler command: bcc32.exe -c -q -d -6 -O2 -OS -Ov -Oi -Oc -tWM -w -Q -w-sig- -nlib\.hbmk\win\bcc -Ic:\dev\harbour\include -Iinclude lib\.hbmk\win\bcc\rddsys.c source\client\leto1.c source\client\letomgmn.c source\common\blowfish.c source\common\common_c.c source\common\hbip.c source\common\net.c lib\.hbmk\win\bcc\rddsys.c: source\client\leto1.c: Error E2451 source\client\leto1.c 490: Undefined symbol 'HB_FT_PICTURE' in function letoIsBinaryField Warning W8057 source\client\leto1.c 497: Parameter 'uiType' is never used in function letoIsBinaryField Warning W8057 source\client\leto1.c 497: Parameter 'uiLen' is never used in function letoIsBinaryField Error E2451 source\client\leto1.c 625: Undefined symbol 'HB_FT_PICTURE' in function leto_ParseRec Error E2172 source\client\leto1.c 625: Duplicate case in function leto_ParseRec Warning W8019 source\client\leto1.c 626: Code has no effect in function leto_ParseRec Error E2379 source\client\leto1.c 626: Statement missing ; in function leto_ParseRec Error E2451 source\client\leto1.c 1786: Undefined symbol 'HB_FT_PICTURE' in function letoGetValue Error E2172 source\client\leto1.c 1786: Duplicate case in function letoGetValue Warning W8019 source\client\leto1.c 1787: Code has no effect in function letoGetValue Error E2379 source\client\leto1.c 1787: Statement missing ; in function letoGetValue Error E2451 source\client\leto1.c 2196: Undefined symbol 'HB_FT_PICTURE' in function letoPutValue Error E2172 source\client\leto1.c 2196: Duplicate case in function letoPutValue Warning W8019 source\client\leto1.c 2197: Code has no effect in function letoPutValue Error E2379 source\client\leto1.c 2197: Statement missing ; in function letoPutValue Error E2451 source\client\leto1.c 2692: Undefined symbol 'HB_FT_PICTURE' in function letoCreate Error E2172 source\client\leto1.c 2692: Duplicate case in function letoCreate Error E2188 source\client\leto1.c 2693: Expression syntax in function letoCreate Error E2451 source\client\leto1.c 2991: Undefined symbol 'HB_FT_PICTURE' in function letoOpen *** 14 errors in Compile *** source\client\letomgmn.c: Warning W8075 source\client\letomgmn.c 116: Suspicious pointer conversion in function HB_FUN_LETO_FILE Warning W8075 source\client\letomgmn.c 143: Suspicious pointer conversion in function HB_FUN_LETO_FERASE Warning W8075 source\client\letomgmn.c 176: Suspicious pointer conversion in function HB_FUN_LETO_FRENAME Warning W8075 source\client\letomgmn.c 628: Suspicious pointer conversion in function HB_FUN_LETO_VARSET Warning W8075 source\client\letomgmn.c 635: Suspicious pointer conversion in function HB_FUN_LETO_VARSET Warning W8080 source\client\letomgmn.c 797: 'cType' is declared but never used in function HB_FUN_LETO_VARINCR Warning W8080 source\client\letomgmn.c 834: 'cType' is declared but never used in function HB_FUN_LETO_VARDECR Warning W8080 source\client\letomgmn.c 866: 'lValue' is declared but never used in function HB_FUN_LETO_VARDEL Warning W8080 source\client\letomgmn.c 866: 'cType' is declared but never used in function HB_FUN_LETO_VARDEL Warning W8075 source\client\letomgmn.c 871: Suspicious pointer conversion in function HB_FUN_LETO_VARGETLIST Warning W8080 source\client\letomgmn.c 955: 'ui' is declared but never used in function HB_FUN_LETO_VARGETLIST source\common\blowfish.c: source\common\common_c.c: source\common\hbip.c: Warning W8084 source\common\hbip.c 184: Suggest parentheses to clarify precedence in function hb_ipInit source\common\net.c: hbmk2: Error: Running C/C++ compiler. 1 bcc32.exe -c -q -d -6 -O2 -OS -Ov -Oi -Oc -tWM -w -Q -w-sig- -nlib\.hbmk\win\bcc -Ic:\dev\harbour\include -Iinclude lib\.hbmk\win\bcc\rddsys.c source\client\leto1.c source\client\letomgmn.c source\common\blowfish.c source\common\common_c.c source\common\hbip.c source\common\net.c



полная версия страницы