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

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

alkresin: Может, и стоит. Пока необходимости не возникало, поэтому и не думал на эту тему.

alkresin: Перевел значительные куски сервера, включая ParseCommand, на С. Теперь можно смотреть в сторону дополнительных процессов и потоков.

Andrey: Полез пробовать утилиту и получил ошибку: Error BASE/1004 No exported method: SEND Called from SEND(0) Called from USERSINFO(212) Called from (b)MAIN(88) Called from ONCOMMAND(286) Called from (b)(_INITSTATICS00003)(0) Called from HCONTROL:ONEVENT(148) Called from HPANEL:ONEVENT(93) Called from HWG_ACTIVATEMAINWINDOW(0) Called from HMAINWINDOW:ACTIVATE(231) Called from MAIN(100) HwGUI 2.16 Harbour devel build 1.1-1 Intl. Date:02/18/08 Time:13:26:03 Потом догадался, что не ввел IP-adres & Port. Надо бы сделать для "чайников" обработку и надпись для ввода.


Andrey: Что-то не получается у меня открыть FOX базу на сервере. Добавил VIA "RDDCDX" - ругается USE "//192.168.220.3:2812/FOND/DAT/spiski" SHARED NEW VIA "RDDCDX" что: Subsystem Call ....: DBCMD System Code .......: 1015 Default Status ....: .F. Description .......: Неверный аргумент Operation .........: DBUSEAREA Arguments .........: Involved File .....: Dos Error Code ....: 0 Если убрать VIA то пишет: Open error (21-1001): E:\WORK_UCHET/FOND/DAT/spiski Другой dbf файл без МЕМО открывает нормально.

lista: >А NTX-ы поддерживает ? А программный код дорабатывать нужно и насколько ? >А то у меня есть задачка на Clipper-е, которая реально работает 10 лет в сети, и нагрузка приличная. Можно было >бы потестировать, да и быстродействие сравнить. А на Линух перетащить под Clip. У меня работает на Ура!

alkresin: Что-то не получается у меня открыть FOX базу на сервере. А просто Харбором c DBFCDX она открывается ?

Andrey: alkresin пишет: А просто Харбором c DBFCDX она открывается ? Конечно открывается, я просто подключил рабочую базу на сервере и решил с ней параллельно проэксперементировать. И затык.....

alkresin: Ну пришлите мне ее на email, только очистите сначала zap'ом

alkresin: lista пишет: А на Линух перетащить под Clip. Можно и так, в терминале с stelnet. Кстати, таким же образом можно и под Харбор.

abakkav: А что делать с собственными функциями в индексном выражении? Эта проблема уже всплывала?

alkresin: А что делать с собственными функциями в индексном выражении? Эта проблема уже всплывала? Я вижу здесь 2 варианта: 1) Избавляться от них - как при использовании ADS 2) Собрать сервер вместе с этими функциями

abakkav: Мысль понятна. Интересно, а как с этим борется Польский медиатор? Он вообще не индексирует на сервере или передает клиенту, если ключ нестандартный?

Andrey: А можно привести пример открытия БД с мемо полем FPT ? Может быть я синтакис неправильно делаю ?

Andrey: Петр пишет: Кстати, здесь несколько возможных пользователей уже заявляли о своей готовности тестировать/использовать такой продукт. Я думаю, что было бы неплохо услышать их мнение, первые впечатления так сказать и, что особенно важно, что они ожидают увидеть в бл.будущем. Какие нафиг впечатления ..... Вы сами по себе о чем-то обсуждаете, а простой пример как правильно работать с базой, даже и не подумали выложить. Не все такие продвинутые в разработке. Я например просто использую БД для своих задач. А как это работает подглядывая на исходный код реализованный вами .... догадываться сложно. Давайте коротко: 1) какой RDD доступен сейчас. (у меня не открывается база с мемо FPT) 2) пример доступности сервера и открытия, создания БД (простой и продвинутый) 3) пример индексов к этим базам 4) отдельные файлы для сборки сервера leto db со своими функциями 5) файловые операции на сервере Для начала пока хватит . Да еще: выход из сервера при незакрытой задачи не должен быть !!! Руки даже у админа бывают кривые (смотря какой попадется), а отвечать за утерянные данные придется программисту (даже в лог ничего не пишется ) !

alkresin: А можно привести пример открытия БД с мемо полем FPT ? Может быть я синтакис неправильно делаю ? Да обычный синтаксис, ничем не отличается от других: USE "//..../path/test.dbf"

alkresin: Вы сами по себе о чем-то обсуждаете, а простой пример как правильно работать с базой, даже и не подумали выложить. Вот такой пример устроит ? Function Main Local cTable, arr Local i, n1, n2, nSec, s REQUEST LETO RDDSETDEFAULT( "LETO" ) cTable := "//199.10.11.5:2812/test1.dbf" arr := { { "FirstName", "C", 20, 0 }, ; { "LastName", "C", 20, 0 }, ; { "Age", "N", 3, 0 }, ; { "Date", "D", 8, 0 }, ; { "Rate", "N", 6, 2 }, ; { "Student", "L", 1, 0 } } dbCreate( cTable, arr ) use (cTable) new ? "Test 1 " nSec := Seconds() for i := 1 to 200000 append blank n1 := hb_RandomInt( 80 ) n2 := hb_RandomInt( 50 ) replace Age with n1, ; Date with Date() - 365*n2 + n1, ; Rate with 56.5 - n1/2 replace FirstName with "A"+Chr(64+n2)+Padl(i,10,'0'), ; LastName with "B"+Chr(70+n2)+Padl(i,12,'0'), ; Student with ( (field->Age % 2) == 1 ) unlock next ?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds" ? "Test 2 " nSec := Seconds() index on Age tag Age ?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds" use use (cTable) new go top ? "Test 3 " nSec := Seconds() do while !Eof() s := FirstName skip enddo ?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds" use use (cTable) new set order to 1 go top ? "Test 4 " nSec := Seconds() do while !Eof() s := FirstName skip enddo ?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds" use ? Return Nil 1) какой RDD доступен сейчас. (у меня не открывается база с мемо FPT) RDD один - LETO, на сервере поднят DBFCDX. У меня файлы с мемо fpt открываются, поэтому я и просил вас прислать свой, может в нем что необычное - только не весь, конечно, оставьте в нем пару записей. 2) пример доступности сервера и открытия, создания БД (простой и продвинутый) 3) пример индексов к этим базам См. пример выше. 4) отдельные файлы для сборки сервера leto db со своими функциями Не понял, что имеете ввиду. 5) файловые операции на сервере Это к Pasha, я их сам еще не пробовал.

alkresin: abakkav пишет: Интересно, а как с этим борется Польский медиатор? Он вообще не индексирует на сервере или передает клиенту, если ключ нестандартный? Понятия не имею, я его не пробовал. А что, он это умеет ? В принципе, здесь можно это, наверное, реализовать - через custom индекс, вычисляя ключи на стороне клиента.

abakkav: Не знаю как, но медиатор допускает собственные ф-ции в индексе и не требует пересобирать серверную часть. А реализовать "через custom индекс" или формируя запрос на клиента в случае нестандартного индекса было бы здорово.

Andrey: alkresin пишет: 4) отдельные файлы для сборки сервера leto db со своими функциями Не понял, что имеете ввиду. Про то, что задавал вопрос: abakkav пишет: собственные ф-ции в индексе

Pasha: Опять мистика какая-то Собрал letodb под xHarbour При попытке открытия 22-й по порядку (в разных программах!) таблицы сервер вываливается по gpf на строке IF ( oTable := HSTable():Find( cName ) ) == Nil в hs_opentable, причем до вызова метода Find дело не доходит, управление в HSTable():Find не передается 2 недели назад этого не было



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