Автор | Сообщение |
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 на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|
alx_on
|
| постоянный участник
|
Пост N: 89
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 10:31. Заголовок: Pasha пишет: А что ..
Pasha пишет: простой SKIP Если выполнить выражение фильтра на записи, то все правильно (.F.) Если SKIP, то на нее переходит (хотя не должен)
|
|
|
Pasha
|
| Администратор
|
Пост N: 1581
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 10:41. Заголовок: А фильтр серверный и..
А фильтр серверный или клиентский ? С серверным должно быть все ok
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 90
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 10:42. Заголовок: Pasha пишет: А филь..
Pasha пишет: цитата: | А фильтр серверный или клиентский ? |
| клиентский
|
|
|
Pasha
|
| Администратор
|
Пост N: 1582
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 10:49. Заголовок: Уже вижу, в letoSkip..
Уже вижу, в letoSkipRaw нет проверки на клиентский фильтр для буфера skip. Надо добавить. А scope тут ни при чем
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 91
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 11:08. Заголовок: Pasha пишет: в leto..
Pasha пишет: цитата: | в letoSkipRaw нет проверки на клиентский фильтр для буфера skip |
| Как тогда работает MT вариант? :)
|
|
|
Pasha
|
| Администратор
|
Пост N: 1583
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 11:20. Заголовок: Непонятно Точно клие..
Непонятно Точно клиентский фильтр ? Т.е. сервер не может вычислить выражение фильтра, или задан только блок кода для фильтра ?
|
|
|
AlexMyr
|
| |
Пост N: 16
Зарегистрирован: 11.06.10
|
|
Отправлено: 12.07.10 11:24. Заголовок: К вопросу о файловом..
К вопросу о файловом доступе: А если реализовать это через 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
|
| постоянный участник
|
Пост N: 92
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 11:24. Заголовок: Pasha пишет: сервер..
Pasha пишет: цитата: | сервер не может вычислить выражение фильтра |
| да LETO_ISFLTOPTIM() - .F.
|
|
|
Pasha
|
| Администратор
|
Пост N: 1584
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 12:07. Заголовок: AlexMyr пишет: Кто ..
AlexMyr пишет: цитата: | Кто что скажет по поводу BLOB полей? |
| А что тут говорить... надо добавить в leto поддержку HB_FT_BLOB, HB_FT_PICTURE, HB_FT_OLE Сейчас поддерживается только HB_FT_MEMO Я использую memo, и проблем не было, ни с M, 10, ни с M, 4
|
|
|
Pasha
|
| Администратор
|
Пост N: 1585
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 12:12. Заголовок: В M, 4 я храню в том..
В M, 4 я храню в том числе и картинки jpg. Сейчас проверил - работает и на чтение, и на запись
|
|
|
Pasha
|
| Администратор
|
Пост N: 1586
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 12:14. Заголовок: Кстати, старый Harbo..
Кстати, старый Harbour 1.0 знает, что такое HB_FT_BLOB, HB_FT_PICTURE, HB_FT_OLE ?
|
|
|
|
AlexMyr
|
| |
Пост N: 17
Зарегистрирован: 11.06.10
|
|
Отправлено: 12.07.10 12:34. Заголовок: Pasha пишет: Кстати..
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
|
| Администратор
|
Пост N: 1587
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 12:40. Заголовок: blob и прочая я уже ..
blob и прочая я уже добавил, вечером скину
|
|
|
Pasha
|
| Администратор
|
Пост N: 1588
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.10 12:41. Заголовок: alx_on пишет: да L..
alx_on пишет: цитата: | да LETO_ISFLTOPTIM() - .F. |
| Странно это. Я сейчас проверил - skip правильно отрабатывает клиентский фильтр. Тогда понятно только то, что ничего не понятно :(
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 93
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 12:51. Заголовок: Pasha пишет: Тогда ..
Pasha пишет: цитата: | Тогда понятно только то, что ничего не понятно |
| Вот и я о том же
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 94
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 16:18. Заголовок: Нашел проблему с фил..
Нашел проблему с фильтром Была интересная проверка на длину LETO_MAX_EXP У меня фильтр был больше и это воспринималось как снятие фильтра! Выложу исправления - проверьте плз Вопрос Александру: в каких глобальных целях используется функция leto_ParseFilter()? Были какие то нюансы при простой проверке? (т.е. просто попробовать скомпилять блок кода) Потому как его надо допиливать на предмет добавления проверки "FIELD->". Стоит это делать?
|
|
|
alkresin
|
| moderator
|
Пост N: 385
Зарегистрирован: 06.07.06
|
|
Отправлено: 12.07.10 18:41. Заголовок: Вопрос Александру: в..
цитата: | Вопрос Александру: в каких глобальных целях используется функция leto_ParseFilter()? |
| Представьте такое выражение фильтра: SOME_FIELD == 1 .AND. Some_UDF() Если мы его выполняем (для проверки) при текущем значении SOME_FIELD != 1, возвращается логическое выражение .F. и никакой ошибки, т.к. до выполнения Some_UDF() дело не доходит - получается, что выражение годно для выполнения на сервере, что неверно.
|
|
|
alkresin
|
| moderator
|
Пост N: 386
Зарегистрирован: 06.07.06
|
|
Отправлено: 12.07.10 18:44. Заголовок: Потому как его надо ..
цитата: | Потому как его надо допиливать на предмет добавления проверки "FIELD->". |
| А зачем использовать field-> в выражении для фильтра ?
|
|
|
alx_on
|
| постоянный участник
|
Пост N: 95
Зарегистрирован: 07.07.09
|
|
Отправлено: 12.07.10 22:01. Заголовок: alkresin пишет: Есл..
alkresin пишет: цитата: | Если мы его выполняем (для проверки) |
| Уже просто компиляция вернет ошибку (нет функции Some_UDF) цитата: | А зачем использовать field-> |
| При строгой проверке (ключ -w3) без "FIELD->" макрокоманда "SET FILTER" не компиляется
|
|
|
AlexMyr
|
| |
Пост N: 18
Зарегистрирован: 11.06.10
|
|
Отправлено: 12.07.10 22:25. Заголовок: Не могу собрать leto..
Не могу собрать 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
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|