Форум » LetoDB, HbNetio. » Leto DB Server (продолжение 8) » Ответить

Leto DB Server (продолжение 8)

Pasha: Немного доработал документацию к letodb

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

Andrey: Pasha пишет: Я выкладывал сборку этой библиотеки с xHarbour SVN, и она может быть несовместима с более ранней версией xHarbour. Точно, не совместима ! Скачал xHarbour 1.2.3 SVN и ВСЕ ЗАРАБОТАЛО.... Блин, как баран в стенку долбился... Pasha а нельзя где нибудь файлик к этой либе ( lib.xharbour\rddleto.lib ) приложить - типа "совместимо/собрано только для xHarbour 1.2.3 SVN" ? Другие чтобы не залетали... А еще лучше запросить версию rddleto.lib из своей программы, функцию какую нибудь. Так можно ?

Dima: Pasha А в LetoDB есть серверные (оптимизированные) фильтры как в ADS ?

Pasha: Andrey пишет: Pasha а нельзя где нибудь файлик к этой либе ( lib.xharbour\rddleto.lib ) приложить - типа "совместимо/собрано только для xHarbour 1.2.3 SVN" ? Другие чтобы не залетали... Мое упущение. Сейчас уже архив перезаливать не буду, учту на следующий раз. А еще лучше запросить версию rddleto.lib из своей программы, функцию какую нибудь. Так можно ? Версию клиента можно запросить вызовом dbinfo(DBI_RDD_VERSION) версию letodb сервера, к которому выполнен коннект: LETO_GETSERVERVERSION() Но это все не для случая сборки программы и клиентской библиотеки разными версиями харбора.


Pasha: Dima пишет: А в LetoDB есть серверные (оптимизированные) фильтры как в ADS ? Да, конечно. При установке фильтра командой set filter сервер пытается выполнить выражение фильтра. Если попытка успешна, то устанавливается серверный фильтр, если нет - фильтр выполняется на клиенте.

Dima: Pasha Понял. А как узнать успешна ли попытка установки фильтра на сервере ?

Pasha: После dbSetFilter надо вызвать проверку: LETO_ISFLTOPTIM() Фильтр может быть неоптимальным (клиентским), если в нем присутствуют переменные памяти или вызовы функций, незарегистрированных на сервере. Еще сервер не поймет ссылки на другие рабочие области. Я не рассматриваю случай просто неверного выражения.

Andrey: На МиниГуи с ходу стало собираться и конектиться... Вопрос по путям: D:\@TEST_LETODB\letodb.ini [MAIN] Port=2812 Log=letodb.log DataPath=D:\@TEST_LETODB\DATA Посмотрел лог-файл на всякий случай: 02/28/13 23:11:37: Leto DB Server has been started. Leto DB Server v.2.09 ! INIT: DataPath=D:\@TEST_LETODB\DATA, ShareTables=.... У меня в программе: #include "rddleto.ch" #include "minigui.ch" Local cPath := "//127.0.0.1:2812/" ..... // Создать базу перед формой, иначе данные будут недоступны MyDbf866(cPath) .... ITEMS LoadDbf866(cPath) ; // загрузить базу на форму // далее эти 2 функции //////////////////////////////////////////////////////////// Procedure MyDbf866(cPath) LOCAL cFileDbf, aDbf := {}, nI cFileDbf := cPath + "test866.dbf" AADD( aDbf , {"FIO" ,"C", 25,0 } ) AADD( aDbf , {"STATUS" ,"C", 10,0 } ) AADD( aDbf , {"CLASS" ,"C", 4,0 } ) DBCreate( cFileDbf, aDbf ) USE ( cFileDbf ) Alias TEMP866 CODEPAGE "RU866" NEW EXCLUSIVE aDbf := {} AADD( aDbf , {"Петров Артем" ,"ученик" ,"1a"} ) ........................... AADD( aDbf , {"Куликов Сергей Борисович" ,"учитель","-"} ) SELECT TEMP866 FOR nI := 1 TO LEN(aDbf) APPEND BLANK TEMP866->FIO := aDbf[nI,1] TEMP866->STATUS := aDbf[nI,2] TEMP866->CLASS := aDbf[nI,3] NEXT CLOSE TEMP866 Return //////////////////////////////////////////////////////////// FUNCTION LoadDbf866(cPath) LOCAL aRows := {}, cFileDbf, cNum cFileDbf := cPath + "test866.dbf" MsgInfo("LETO_FILE( "+cFileDbf+" )=" ) MsgInfo( LETO_FILE( cFileDbf ) ) IF !LETO_FILE( cFileDbf ) AAdd( aRows, {"", "Нет базы / No Base !" , "" , "" } ) AAdd( aRows, {"", cPath , "test866.dbf" , "" } ) ELSE // открытие базы 866 / open base 866 USE ( cFileDbf ) Alias TEMP866 CODEPAGE "RU866" //NEW SHARED SELECT TEMP866 GOTO TOP DO WHILE !EOF() cNum := ALLTRIM(STR( RECNO() ))+"." AAdd( aRows, {cNum, ALLTRIM(FIELD->FIO) , FIELD->STATUS, FIELD->CLASS } ) SKIP ENDDO CLOSE TEMP866 ENDIF RETURN aRows Так вот сам вопрос. База успешно создается по пути: D:\@TEST_LETODB\DATA\test866.dbf А почему при открытии в функции LoadDbf866(cPath) cFileDbf := cPath + "test866.dbf" IF !LETO_FILE( cFileDbf ) -> возвращает .F. Что я не так делаю ?

AlexMyr: Andrey пишет: IF !LETO_FILE( cFileDbf ) -> возвращает .F. в letodb.ini надо EnableFileFunc = 0 - если 1, разрешено использование файловых функций ( leto_file(), leto_ferase(), leto_frename(); читаем readme

Andrey: AlexMyr пишет: читаем readme Спасибо БОЛЬШОЕ ! Пропустил.... А как заставить запущенную службу LETODB перечитать заново letodb.ini ?

AlexMyr: Andrey пишет: А как заставить администрирование-службы-letodb-перезапустить

Andrey: AlexMyr пишет: администрирование-службы-letodb-перезапустить Это понятно, а как на ходу перечитать конфигурацию сервера ? Если удаленно нужно это сделать ?

Pasha: Только перезапуск службы Его можно автоматизировать батником: net stop "LetoDB Service" net start "LetoDB Service"

Andrey: Pasha пишет: Его можно автоматизировать батником: Спасибо БОЛЬШОЕ ! А не планируется ли какая то хитрая команда на сервер LetoDB чтобы на "ходу" править конфигурацию его. А то если нет доступа по удаленке на комп, то труба... Ножками топать придется к заказчику...

PSP: Андрей, зачем?

Pasha: Andrey пишет: А не планируется ли какая то хитрая команда на сервер LetoDB чтобы на "ходу" править конфигурацию его. А то если нет доступа по удаленке на комп, то труба... Ножками топать придется к заказчику... Не планируется. Этих настроек всего-то 3-4 позиции, и выставить их правильно изначально труда не составляет.

Dima: PSP пишет: А не планируется ли какая то хитрая команда на сервер LetoDB чтобы на "ходу" править конфигурацию его Даже в ADS нет такого.

Andrey: Уже и сразу запинали....

Dima: Что то не могу обновиться. Может кто чего подскажет... http://shot.qip.ru/00bVmc-3vwdt63nm/ http://shot.qip.ru/00bVmb-3V4IuUaS2/ http://shot.qip.ru/00bVma-3d3R3GdrE/

Pasha: Только что успешно обновился с точно такими же параметрами. Но у меня очень старая версия TortoiseCVS: 1.8.3 2004 года С тех пор, как начал работать с харбором (делать коммиты) - не обновлял ее. А это было 9 лет назад

Pasha: AlexMyr пишет: Если не задана настройка формата memo в letodb.ini, то возвращать логически ожидаемое для DBFCDX - fpt, DBFNTX - dbt, если задан формат, то это значение. Наконец-то дошли руки, и сделал поддержку параметра Memo_Type в letodb.ini



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