Автор | Сообщение |
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 на Харборе, ... и вообще все в наших руках :). Кто хочет участвовать в разработке, тестировании - пишите.
|
|
|
Ответов - 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 Благодарю за помощь...
|
|
|
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 на сервере у вас стоит ?
|
|
|
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
|
|
|
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 - файла, а какие из них ставить - зависит от ваших конкретных нужд, поэтому я не вижу смысла в каком-то образце.
|
|
|
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. |
| нормально открывает базы. Что я делаю не так? :)
|
|
|
alkresin
|
| moderator
|
Пост N: 213
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.06.09 13:32. Заголовок: А Harbour какой у ва..
А Harbour какой у вас ?
|
|
|
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! |
| Обновить надо?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 703
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.09 14:08. Заголовок: PSP пишет: Обновить..
PSP пишет: Ждать надо. Изменения в ближайшее время будут и в Harbour и я подозреваю, что в LETO.
|
|
|
alkresin
|
| moderator
|
Пост N: 214
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.06.09 14:08. Заголовок: Обновить надо? Нет..
Нет, лучше не надо. Сегодня там были изменения в структуре RDD, которые я еще не отразил в letodb. А примерчик, который рушит letodb, можно ? А то у меня тут, вроде, все в порядке.
|
|
|
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 на сервере слетает. ЗЫ: я в начале написал "открыть базы". Прошу прощения за введение в заблуждение. До открытия дело не доходит.
|
|
|
PSP
|
| постоянный участник
|
Пост N: 147
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.06.09 15:07. Заголовок: ЗЫЗЫ: попытка открыт..
ЗЫЗЫ: попытка открытия приводит к тому же эффекту.
|
|
|
|
alkresin
|
| moderator
|
Пост N: 215
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.06.09 15:48. Заголовок: Странно. У меня ниче..
Странно. У меня ничего подобного не наблюдается. Впрочем, у меня Harbour от сентября прошлого года. Попробую со свежим.
|
|
|
PSP
|
| постоянный участник
|
Пост N: 148
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.06.09 15:54. Заголовок: Ok. Спасибо...
Ok. Спасибо.
|
|
|
alkresin
|
| moderator
|
Пост N: 216
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.06.09 19:23. Заголовок: Попробовал со свежим..
Попробовал со свежим - все в порядке... А чем вы строите letodb, каким bat'ником ?
|
|
|
PSP
|
| постоянный участник
|
Пост N: 149
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.07.09 09:04. Заголовок: Батник make_b32.bat...
Батник make_b32.bat. Поищу еще у себя грабли. Спасибо.
|
|
|
PSP
|
| постоянный участник
|
Пост N: 150
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.07.09 09:57. Заголовок: Вопрос закрыт. Грабл..
Вопрос закрыт. Грабли у меня. Причина оказалась в сборке Harbour. Нашел у себя исходники на 5 дней старше, чем использовал. Пересобрал harbour из них и пересобрал letodb. Все работает. Еще раз спасибо и прошу извинить за беспокойство.
|
|
|
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
|
|
|
alkresin
|
| moderator
|
Пост N: 227
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.07.09 09:58. Заголовок: Исправлю. Пока может..
Исправлю. Пока можете после Append Blank Repl Dok With i,Kok With StrZero(I,6) поставить COMMIT, будет правильно работать.
|
|
|
Oskar_Aa
|
| |
Пост N: 27
Зарегистрирован: 05.08.08
|
|
Отправлено: 03.07.09 10:17. Заголовок: Александр, ОК... Где..
Александр, ОК... Где потом забрать LETODB? Спасибо, по тэгам еще не разбирался....
|
|
|
alkresin
|
| moderator
|
Пост N: 229
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.07.09 11:49. Заголовок: С CVS. Подробнее - н..
|
|
|
Ответов - 193
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|