On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 на Харборе, ... и вообще все в наших руках :).

Кто хочет участвовать в разработке, тестировании - пишите.



Спасибо: 0 
Профиль
Ответов - 193 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


Oskar_Aa



Пост N: 24
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 26.06.09 14:41. Заголовок: "Простая" б..



"Простая" без LETODB версия работает на УРА...
функция FILE() возвращает .F. в LETODB и .T. без LETO

Благодарю за помощь...

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 210
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.06.09 15:25. Заголовок: Вы же понимаете, что..


Вы же понимаете, что letodb.exe открывает таблицы и индексы через dbfcdx - т.е. это dbfcdx ругается на ваш индекс, выдает при его открытии такую ошибку. Может, там в индексном выражении что-то необычное ( UDF, алиасы, переменные ). Если получится, сделайте урезанный вариант dbf с cdx, убедитесь, что leto по-прежнему на них ругается и вышлите мне на email.

 цитата:
функция FILE() возвращает .F. в LETODB и .T. без LETO


С LETO, наверное, leto_file() ? А EnableFileFunc = 1 в .ini на сервере у вас стоит ?

Спасибо: 0 
Профиль
Oskar_Aa



Пост N: 25
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 30.06.09 06:51. Заголовок: По индексу в LETO об..


По индексу в LETO обошел ошибку. (Просто проиндексировал все БД, раньше пытался открыть индексный фай созданный без LETO). Александр,есть несколько вопросов:
1. максимальный размер символьного поля в БД для построения индесксного ключа (при длине 250 байт - ошибка, даже на примере TEST_TA.prg), сократил до 200 байт - пока нормально
2. Где можно посмотреть HELP по LETODB.exe (LETO_File() - не знал

Можно выслать образец файла .INI....?
По первому вопросу :
Структура файла:LCHT01.DBF
Поле Тип
1 CODE_FULL C 50 0
2 CODE_NBS C 5 0
3 CODE_ORG N 3 0
4 CODE_OTD N 3 0
5 VAL C 3 0
6 CODE_VIP N 7 0
7 CODE_OTR N 3 0
8 CODE_ZLG N 3 0
9 CODE_KAS N 3 0
10 CODE_COLOR N 3 0
11 CODE_ODB C 50 0
12 NAME_CHT C 200 0
13 DATE_OPN D 8 0
14 DATE_SRK D 8 0
15 DATE_DEL D 8 0
16 TYPE_SCH N 1 0
17 STATUS N 1 0
18 SYMV N 3 0
19 SHIFR N 3 0
20 SROK_DOG N 6 0
21 DOGOVOR N 5 0
22 DATE_DOG D 8 0
23 MEMO_CHET C 50 0
24 ARM N 1 0
25 ARM_NAME C 1 0
26 DATE_DBF D 8 0
27 DATE_PRC D 8 0
28 SUM_DOG N 10 0
29 DEL_TE C 1 0
30 KORRCHET C 1 0
31 CODE_VAL C 3 0
32 PRIZNAK_NL N 3 0
33 STYLE_DATA N 1 0
34 OPN_CLS C 1 0
35 CHET_TYPE C 50 0

Index On Str(Code_Org,3)+Code_Nbs+Val+Name_Cht To 'LCHT_10.CDX'
ЕСЛИ поле NAME_CHT 250 байт - ошибка

|Error LETO/1021 Data type error: -003:34-1026 Arguments: ()
|Error at ...: ORDCREATE(0) in Module:
|Called from : DBCREATEINDEX(61) in Module: source\rdd\rddord.prg




Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 212
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 30.06.09 09:47. Заголовок: По индексу в LETO об..



 цитата:
По индексу в LETO обошел ошибку. (Просто проиндексировал все БД, раньше пытался открыть индексный фай созданный без LETO).


Т.е., индексы, созданные letodb, отличаются от созданных вашей программой с dbfcdx ? Это настораживающий признак и вам стоит выяснить, отчего так происходит. Скорее всего, дело в установленной кодовой странице.

 цитата:
максимальный размер символьного поля в БД для построения индесксного ключа (при длине 250 байт - ошибка, даже на примере TEST_TA.prg), сократил до 200 байт - пока нормально


Надо будет увеличить размер буфера.

 цитата:
Где можно посмотреть HELP по LETODB.exe (LETO_File() - не знал


В readme.txt. Списка функций в официальном релизе, правда, нет, он войдет в следующий релиз. Вот он:

LETO_CONNECT( cAddress [, cUserName, cPassword ] ) --> nConnection, -1 if failed
LETO_CONNECT_ERR() --> nError
LETO_DISCONNECT()
LETO_SETCURRENTCONNECTION( nConnection )
LETO_GETCURRENTCONNECTION() --> nConnection
LETO_GETSERVERVERSION() --> cVersion

LETO_BEGINTRANSACTION()
LETO_ROLLBACK()
LETO_COMMITTRANSACTION( [ lUnlockAll ] ) --> lSuccess
LETO_INTRANSACTION() --> lTransactionActive

LETO_SUM( cFieldName [, cFilter ] ) --> nSumma
LETO_ISFLTOPTIM() --> lFilterOptimized
LETO_SETSKIPBUFFER( nSkip )

LETO_FILE( cFileName ) --> lFileExists
LETO_FERASE( cFileName ) --> -1 if failed
LETO_FRENAME( cFileName, cFileNewName ) --> -1 if failed
LETO_FERROR() --> nError

LETO_MGGETINFO()
LETO_MGGETUSERS()
LETO_MGGETTABLES()
LETO_MGKILL()

LETO_USERADD( cUserName, cPass [, cRights ] ) --> lSuccess
LETO_USERPASSWD( cUserName, cPass ) --> lSuccess
LETO_USERRIGHTS( cUserName, cRights ) --> lSuccess
LETO_USERFLUSH() --> lSuccess


 цитата:
Можно выслать образец файла .INI....?


В readme.txt описаны все опции ini - файла, а какие из них ставить - зависит от ваших конкретных нужд, поэтому я не вижу смысла в каком-то образце.

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 144
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.06.09 13:17. Заголовок: Для Александра Креси..


Для Александра Кресина.
Сегодня скачал с CVS LetoDB:

 цитата:
2009-06-30 12:05 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su)
* source/client/leto1.c
* Increased buffer size for seek
* source/server/server.prg
! Bug fixed in hs_openindex()


Exe-шник собрался нормально. Но при попытке открыть базы процесс letodb.exe (на сервере) слетает с ошибкой.
Начало файла letodb_crash.log:

 цитата:
Breakdown at: 2009.06.30 14:02:03
Unrecoverable error 6005: Exception error: %s

Exception Code:C0000005
Exception Address:00433EAB
EAX:00000000 EBX:0000001A ECX:00000005 EDX:000000EC
ESI:00000000 EDI:0000000D EBP:00EEFC20
CS:EIP:001B:00433EAB SS:ESP:0023:00EEFC08
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010246
CS:EIP: 8B 80 7C 03 00 00 C3 90 90 A1 84 AE 4B 00 50 E8
SS:ESP: 004921E8 0000000D 00000000 003D56B1 0000001A 003D56B1 00EEFC40 0044D1D4 00EEFD5C 0000000D 003D56C2 003D56B1 003D56C1 003D993C 00EEFE6C 00404E82


Вот эта версия

 цитата:
2009-06-11 14:10 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su)
* Readme.txt
* Added functions list.


нормально открывает базы.
Что я делаю не так? :)


Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 213
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 30.06.09 13:32. Заголовок: А Harbour какой у ва..


А Harbour какой у вас ?

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 145
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.06.09 13:36. Заголовок: Harbour у нас вот та..


Harbour у нас вот такой:

 цитата:
2009-06-17 00:05 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/hbwin/axcore.c
! fixed GPF on ActiveX application exit caused by invalid
AtlAxWinTerm() call.
; It's inline function and it does not exists in atl.dll
; MSDN says:
When Do I Need to Call AtlAxWinTerm?

AtlAxWinTerm unregisters the "AtlAxWin7" window class. You should
call this function... If don't call this function, the window class
will be unregistered automatically when the process terminates.
; Thanks Toninho for self contained 3 lines GPF sample without
FWH, gtwvg, etc!


Обновить надо?


Спасибо: 0 
Профиль
Петр
постоянный участник


Пост N: 703
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.06.09 14:08. Заголовок: PSP пишет: Обновить..


PSP пишет:

 цитата:
Обновить надо?


Ждать надо. Изменения в ближайшее время будут и в Harbour и я подозреваю, что в LETO.



Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 214
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 30.06.09 14:08. Заголовок: Обновить надо? Нет..



 цитата:
Обновить надо?


Нет, лучше не надо. Сегодня там были изменения в структуре RDD, которые я еще не отразил в letodb.

А примерчик, который рушит letodb, можно ? А то у меня тут, вроде, все в порядке.

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 146
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.06.09 14:57. Заголовок: Примерчик: REQUEST ..


Примерчик:

REQUEST HB_GT_WVT
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_CODEPAGE_RU866
REQUEST LETO




PROCEDURE Main


CLS

HB_SetCodePage( "RU866" )
RDDSETDEFAULT( "LETO" )

? Leto_File( "//192.168.1.100:2812/TEMP/Tov.dbf" )
WAIT

QUIT


Leto_File() возвращает .F., причем после паузы 2-3 секунды. Пример нормально завершается, а процесс letodb.exe на сервере слетает.

ЗЫ: я в начале написал "открыть базы". Прошу прощения за введение в заблуждение. До открытия дело не доходит.


Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 147
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.06.09 15:07. Заголовок: ЗЫЗЫ: попытка открыт..


ЗЫЗЫ: попытка открытия приводит к тому же эффекту.

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 215
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 30.06.09 15:48. Заголовок: Странно. У меня ниче..


Странно. У меня ничего подобного не наблюдается. Впрочем, у меня Harbour от сентября прошлого года. Попробую со свежим.

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 148
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.06.09 15:54. Заголовок: Ok. Спасибо...


Ok. Спасибо.

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 216
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 30.06.09 19:23. Заголовок: Попробовал со свежим..


Попробовал со свежим - все в порядке...
А чем вы строите letodb, каким bat'ником ?

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 149
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 01.07.09 09:04. Заголовок: Батник make_b32.bat...


Батник make_b32.bat.
Поищу еще у себя грабли. Спасибо.

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 150
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 01.07.09 09:57. Заголовок: Вопрос закрыт. Грабл..


Вопрос закрыт.
Грабли у меня. Причина оказалась в сборке Harbour.
Нашел у себя исходники на 5 дней старше, чем использовал.
Пересобрал harbour из них и пересобрал letodb.
Все работает.
Еще раз спасибо и прошу извинить за беспокойство.


Спасибо: 0 
Профиль
Oskar_Aa



Пост N: 26
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 03.07.09 06:53. Заголовок: Доброе утро. Как раб..


Доброе утро. Как работает ф/я RECNO() в LETODB? У меня возвращает 0.....


FUNCTION MAIN
LOCAL i,j,cPath := "//127.0.0.1:2812/"
REQUEST LETO
RDDSETDEFAULT( "LETO" )
DBCREATE(cPath+'Test1',{{'DOK','N',10,0},{'KOK','C',100,0}})
USE ( cPath+'Test1' ) NEW Alias File1
INDEX ON STR(Dok,10) TO ( cPath+'Test1_0' )
Index On KOK To ( cPath+'Test1_1' )
Set Index To ( cPath+'Test1_0' ),( cPath+'Test1_1' )
For I =1 To 1000
Append Blank
Repl Dok With i,Kok With StrZero(I,6)
?Recno()
inkey(0)
Next


Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 227
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 03.07.09 09:58. Заголовок: Исправлю. Пока может..


Исправлю. Пока можете после

Append Blank
Repl Dok With i,Kok With StrZero(I,6)

поставить COMMIT, будет правильно работать.


Спасибо: 0 
Профиль
Oskar_Aa



Пост N: 27
Зарегистрирован: 05.08.08
ссылка на сообщение  Отправлено: 03.07.09 10:17. Заголовок: Александр, ОК... Где..


Александр, ОК... Где потом забрать LETODB?
Спасибо, по тэгам еще не разбирался....


Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 229
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 03.07.09 11:49. Заголовок: С CVS. Подробнее - н..


С CVS. Подробнее - на http://kresin.belgorod.su/rus/hrbfaq.html, только вместо harbour-project
, harbour в батник надо ставить letodb.

Спасибо: 0 
Профиль
Ответов - 193 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 24
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет