Автор | Сообщение |
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 на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.
|
|
|
Ответов - 325
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
All
[только новые]
|
|
alkresin
|
| moderator
|
Пост N: 99
Зарегистрирован: 06.07.06
|
|
Отправлено: 12.02.08 13:30. Заголовок: Может, и стоит. Пока..
Может, и стоит. Пока необходимости не возникало, поэтому и не думал на эту тему.
|
|
|
alkresin
|
| moderator
|
Пост N: 101
Зарегистрирован: 06.07.06
|
|
Отправлено: 13.02.08 15:34. Заголовок: Перевел значительные..
Перевел значительные куски сервера, включая ParseCommand, на С. Теперь можно смотреть в сторону дополнительных процессов и потоков.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 489
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.02.08 13:46. Заголовок: Полез пробовать утил..
Полез пробовать утилиту и получил ошибку: 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
|
| постоянный участник
|
Пост N: 490
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.02.08 16:35. Заголовок: Что-то не получается..
Что-то не получается у меня открыть 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
|
| |
Пост N: 44
Зарегистрирован: 15.11.05
|
|
Отправлено: 18.02.08 16:57. Заголовок: >А NTX-ы поддерж..
>А NTX-ы поддерживает ? А программный код дорабатывать нужно и насколько ? >А то у меня есть задачка на Clipper-е, которая реально работает 10 лет в сети, и нагрузка приличная. Можно было >бы потестировать, да и быстродействие сравнить. А на Линух перетащить под Clip. У меня работает на Ура!
|
|
|
alkresin
|
| moderator
|
Пост N: 102
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.02.08 22:55. Заголовок: Что-то не получается..
цитата: | Что-то не получается у меня открыть FOX базу на сервере. |
| А просто Харбором c DBFCDX она открывается ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 492
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.08 09:20. Заголовок: alkresin пишет: А п..
alkresin пишет: цитата: | А просто Харбором c DBFCDX она открывается ? |
| Конечно открывается, я просто подключил рабочую базу на сервере и решил с ней параллельно проэксперементировать. И затык.....
|
|
|
alkresin
|
| moderator
|
Пост N: 103
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.02.08 10:19. Заголовок: Ну пришлите мне ее н..
Ну пришлите мне ее на email, только очистите сначала zap'ом
|
|
|
alkresin
|
| moderator
|
Пост N: 104
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.02.08 10:25. Заголовок: lista пишет: А на Л..
lista пишет: цитата: | А на Линух перетащить под Clip. |
| Можно и так, в терминале с stelnet. Кстати, таким же образом можно и под Харбор.
|
|
|
abakkav
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.02.08 11:52. Заголовок: А что делать с собст..
А что делать с собственными функциями в индексном выражении? Эта проблема уже всплывала?
|
|
|
alkresin
|
| moderator
|
Пост N: 105
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.02.08 12:31. Заголовок: А что делать с собст..
цитата: | А что делать с собственными функциями в индексном выражении? Эта проблема уже всплывала? |
| Я вижу здесь 2 варианта: 1) Избавляться от них - как при использовании ADS 2) Собрать сервер вместе с этими функциями
|
|
|
|
abakkav
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.02.08 14:48. Заголовок: Мысль понятна. Интер..
Мысль понятна. Интересно, а как с этим борется Польский медиатор? Он вообще не индексирует на сервере или передает клиенту, если ключ нестандартный?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 494
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.02.08 23:13. Заголовок: А можно привести при..
А можно привести пример открытия БД с мемо полем FPT ? Может быть я синтакис неправильно делаю ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 495
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.02.08 00:54. Заголовок: Петр пишет: Кстати,..
Петр пишет: цитата: | Кстати, здесь несколько возможных пользователей уже заявляли о своей готовности тестировать/использовать такой продукт. Я думаю, что было бы неплохо услышать их мнение, первые впечатления так сказать и, что особенно важно, что они ожидают увидеть в бл.будущем. |
| Какие нафиг впечатления ..... Вы сами по себе о чем-то обсуждаете, а простой пример как правильно работать с базой, даже и не подумали выложить. Не все такие продвинутые в разработке. Я например просто использую БД для своих задач. А как это работает подглядывая на исходный код реализованный вами .... догадываться сложно. Давайте коротко: 1) какой RDD доступен сейчас. (у меня не открывается база с мемо FPT) 2) пример доступности сервера и открытия, создания БД (простой и продвинутый) 3) пример индексов к этим базам 4) отдельные файлы для сборки сервера leto db со своими функциями 5) файловые операции на сервере Для начала пока хватит . Да еще: выход из сервера при незакрытой задачи не должен быть !!! Руки даже у админа бывают кривые (смотря какой попадется), а отвечать за утерянные данные придется программисту (даже в лог ничего не пишется ) !
|
|
|
alkresin
|
| moderator
|
Пост N: 106
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.02.08 09:09. Заголовок: А можно привести при..
цитата: | А можно привести пример открытия БД с мемо полем FPT ? Может быть я синтакис неправильно делаю ? |
| Да обычный синтаксис, ничем не отличается от других: USE "//..../path/test.dbf"
|
|
|
alkresin
|
| moderator
|
Пост N: 107
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.02.08 12:17. Заголовок: Вы сами по себе о че..
цитата: | Вы сами по себе о чем-то обсуждаете, а простой пример как правильно работать с базой, даже и не подумали выложить. |
| Вот такой пример устроит ? 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
|
| moderator
|
Пост N: 108
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.02.08 12:20. Заголовок: abakkav пишет: Инте..
abakkav пишет: цитата: | Интересно, а как с этим борется Польский медиатор? Он вообще не индексирует на сервере или передает клиенту, если ключ нестандартный? |
| Понятия не имею, я его не пробовал. А что, он это умеет ? В принципе, здесь можно это, наверное, реализовать - через custom индекс, вычисляя ключи на стороне клиента.
|
|
|
abakkav
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 20.02.08 15:00. Заголовок: Не знаю как, но меди..
Не знаю как, но медиатор допускает собственные ф-ции в индексе и не требует пересобирать серверную часть. А реализовать "через custom индекс" или формируя запрос на клиента в случае нестандартного индекса было бы здорово.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 496
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.02.08 22:03. Заголовок: alkresin пишет: 4) ..
alkresin пишет: цитата: | 4) отдельные файлы для сборки сервера leto db со своими функциями Не понял, что имеете ввиду. |
| Про то, что задавал вопрос: abakkav пишет: цитата: | собственные ф-ции в индексе |
|
|
|
|
Pasha
|
| Администратор
|
Пост N: 815
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.02.08 10:54. Заголовок: Опять мистика какая-..
Опять мистика какая-то Собрал letodb под xHarbour При попытке открытия 22-й по порядку (в разных программах!) таблицы сервер вываливается по gpf на строке IF ( oTable := HSTable():Find( cName ) ) == Nil в hs_opentable, причем до вызова метода Find дело не доходит, управление в HSTable():Find не передается 2 недели назад этого не было
|
|
|
Ответов - 325
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
All
[только новые]
|
|