Форум » LetoDB, HbNetio. » Leto DB Server (продолжение 8) » Ответить
Leto DB Server (продолжение 8)
Pasha: Немного доработал документацию к letodb
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
полная версия страницы