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

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

Dima: Продолжаем тут

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

PSP: Думаю, Павел научит Leto_File() учитывать SET PATH TO Надо подождать... :)

Dima: PSP пишет: Думаю, Павел научит Leto_File() учитывать SET PATH TO ;) Еще и эти тоже LETO_FERASE , LETO_FRENAME

Pasha: PSP пишет: Думаю, Павел научит Leto_File() учитывать SET PATH TO Надо подождать... :) Я специально избегаю в файловых функциях leto использование set path. Когда я в 2008-м только начинал использовать leto, эти настройки учитывал. Но заметил, что программа вдруг начинает работать необьяснимо медленно. Выяснилось, что обычные файловые функции вроде File(), тоже использующие set path, резко замедляют свою работу, так как по set path начинают искать в сети файл, а этого ресурса то нет. В set path же есть строка вроде //server:2812/path Пришлось убрать учет set path. Приходится разделять обычные файловые операции и запросы к letodb. Одна и таже настройка и для первого, и для второго конфликтует между собой. Если надо найти файл (один или несколько) на сервере letodb, который может быть в одной из нескольких папок, можно использовать функцию UDF_FilesExist из модуля letoudf.prg


Dima: Pasha пишет: использовать функцию UDF_FilesExist Вот так ? leto_udf("UDF_FilesExist",pathleto+"\dbf\","test.dbf")

Pasha: Нет, 2-й параметр - массив имен файлов, которые надо проверить И функция возвращает тоже массив, каждый элемент которого - или папка, в которой находится файл, или символ "-", если файл не найден. Одним вызовом можно проверить существование всех файлов БД, индексов, и что там еще надо проверить. т.е leto_udf("UDF_FilesExist",pathleto+"\dbf\"+pathleto+"\dbf2\"+...,{"test.dbf", "test2.dbf", ...})

PSP: Pasha пишет: Но заметил, что программа вдруг начинает работать необьяснимо медленно. Выяснилось, что обычные файловые функции вроде File(), тоже использующие set path, резко замедляют свою работу, так как по set path начинают искать в сети файл, а этого ресурса то нет. В set path же есть строка вроде //server:2812/path Кажись, припоминаю... Вроде была об этом речь. Забылось, конечно, за давностью так сказать... :)

Dima: PSP пишет: Забылось, конечно, за давностью так сказать... Давно Leto юзаешь ?

PSP: Чуть больше двух лет.

Dima: PSP пишет: Чуть больше двух лет. Спишь спокойно ? ;) Я когда на ADS+Clipper перелез стал спать спокойно. Ночные звонки прекратились. С Leto так же ?

PSP: Ни разу с сервером никаких проблем не было. Сервер на ВинХР Проф, шуршит сам по себе, доступ к нему ограничен. Все нормально. :)

Dima: PSP Понял , переделываю дальше свою прогу. PS 3 дня убил на перевод с Clipper+ADS на Harbour-ADS (12 часов в сутки пахал) и 3 недели на оптимизацию отчетов и фильтров. Теперь новый этап -> LetoDB. Переделаю , отпишу.

PSP: Удачи! :)

Dima: Pasha Ты уверен что переменные созданные юзером при выходе из программы + LETO_DISCONNECT() убиваются ? Кажется это не так.

Dima: Установка set autopen off вообще работает для Leto ? Похоже нет. Что делать ?

Pasha: Dima пишет: Ты уверен что переменные созданные юзером при выходе из программы + LETO_DISCONNECT() убиваются ? Кажется это не так. Надо создавать переменную с флагом LETO_VOWN, и все будет ок Запусти 2 раза тест: leto_connect(cPath) ? leto_varget('users', 'u3') ? leto_varset('users', 'u3', 1, LETO_VCREAT+LETO_VOWN) ? leto_varget('users', 'u3') wait при 2-м запуске переменной не будет.

Dima: Pasha пишет: LETO_VCREAT+LETO_VOWN Упс не знал что можно так , попробую. Спасибо. Установка Set path на DBCREATE то же не распространяется ? Что бы бровс не тормозил делаю такую установку RddInfo( RDDI_REFRESHCOUNT,.f.,,LETO_GETCURRENTCONNECTION()) но он все равно подтормаживает если сравнивать с обычным DBFCDX без LETO. Что не так делаю ? А как работать с mem: базами ? Падает прога с ошибкой LETO 1004 Базу создаю так [pre2] kad:="test" dbcreate("mem:"+kad,; {; {"data","d",8,0},; {"nakl","c",100,0},; {"prixs","n",17,2},; {"vozr","n",17,2},; {"p_dok","n",1,0},; {"oplata","n",17,2}},,.t.,"VREMS") [/pre2]

Pasha: Наколько я помню, для dbCreate используется set default А насчет бровса, dbfcdx локальный ? Локальный dbfcdx будет быстрее локального letodb, так как в letodb используется дополнительный слой. Но по сети letodb будет быстрее. Для оптимизации бровса в letodb надо еще задать размер skip-буфера по к-ву строк в бровсе. Да и можно проанализировать, насколько оптимизирован letodb: запустить сервер с параметром в letodb.ini Debug=10 и анализовать лог на сервере. В нем будут пакеты, которые идут с клиента.

Pasha: Dima пишет: А как работать с mem: базами ? Падает прога с ошибкой LETO 1004 Базу создаю так Файл в памяти на клиенте ? Тогда надо его создавать с DBFCDX, а не с letodb: dbcreate("mem:"+kad, aStru, "DBFCDX", .t., cAlias)

Dima: Pasha пишет: Наколько я помню, для dbCreate используется set default Верно. Мой косяк Pasha пишет: Файл в памяти на клиенте ? Тогда надо его создавать с DBFCDX, а не с letodb: И это тоже ;) остался вопрос с Set Autopen off Pasha пишет: Для оптимизации бровса в letodb надо еще задать размер skip-буфера по к-ву строк в бровсе Об этой функции ты говоришь LETO_SETSKIPBUFFER ?

Pasha: Dima пишет: Об этой функции ты говоришь LETO_SETSKIPBUFFER ? да



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