Форум » LetoDB, HbNetio. » Вопросы новичка... » Ответить

Вопросы новичка...

Andrey: Взял последнюю версию с "Новая страница с бинарниками", установил на Win2008 Server, чуток помучился с портом... Собрал на МиниГуи+BCC 551 - \MiniGui\batch\hbmk2.bat rddleto.hbp Получил rddleto.lib - 131072 байт - правильный ли размер ? И еще Warning-и лезут: lib\.hbmk\win\bcc\rddsys.c: source\client\letocl.c: source\client\leto1.c: source\client\letomgmn.c: source\common\blowfish.c: source\common\common_c.c: source\common\hbip.c: TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation /P32 lib\rddleto.lib -+ lib\.hbmk\win\bcc\rddsys.obj -+ lib\.hbmk\win\bcc\letocl.obj -+ lib\.hbmk\win\bcc\leto1.obj -+ lib\.hbmk\win\bcc\letomgmn.obj -+ lib\.hbmk\win\bcc\blowfish.obj -+ lib\.hbmk\win\bcc\common_c.obj -+ lib\.hbmk\win\bcc\hbip.objWarning: 'rddsys' not found in library Warning: 'letocl' not found in library Warning: 'leto1' not found in library Warning: 'letomgmn' not found in library Warning: 'blowfish' not found in library Warning: 'common_c' not found in library Warning: 'hbip' not found in library Так должно быть или нет ? Вопрос сразу напрашивается с путями - как писать правильно "\" или "/" : Local cPathServer := "//127.0.0.1:2812/" cPathServer := cPathServer +"DATE_TEST_PATH\test.dbf" Помню что где то обсуждали, а результат не запомнил...

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

Andrey: Pasha пишет: Мы об этом уже говорили, когда обсуждали ограничение на размер файлов при их передаче. Честное слово не запомнил максимальную цифру для передачи файла ! Я запомнил типа в "пределах разумного". Напомните пожалуйста.

Pasha: Ограничения на размер файла нет

Andrey: Всем привет. Тестирую сервер на медленном соединение... Не очень приятно видеть как TBROWSE медленно перерисовывает окно и саму таблицу. Есть ли возможность определять в своем коде скорость соединения ? А уже из этой скорости строить по другому прорисовку....


Pasha: Andrey пишет: Не очень приятно видеть как TBROWSE медленно перерисовывает окно и саму таблицу. TBrowse забрасывает сервер запросами RecCount. Чтобы избежать этого, после соединения с сервером надо задать настройку: RddInfo( 101, .F.,, 1 ) // RDDI_REFRESHCOUNT И конечно, размер skip-буфера надо определить не меньше, чем количество строк в TBrowse. После таких телодвижений число запросов к серверу сократится в десятки раз, что положительно скажется на скорости. Можно попробовать открыть файл через dbedit на медленном соединении, там все эти настройки учтены.

Andrey: Pasha пишет: TBrowse забрасывает сервер запросами RecCount. Чтобы избежать этого, после соединения с сервером надо задать настройку: Я уточняю - TBROWSE из МиниГуи ! Я имею ввиду свой пример TestCalcDbf.exe из LetoDB_2. Я такой высылал тебе. Сделал настройку для него - стало чуток веселей .... Pasha пишет: И конечно, размер skip-буфера надо определить не меньше, чем количество строк в TBrowse. Сделал - еще до этого... IF M->nPubDriver == 1 // Leto nSkip := oBrw3:nRowCount() // кол-во строк показа LETO_SETSKIPBUFFER( nSkip ) RddInfo( 101, .F.,, 1 ) // RDDI_REFRESHCOUNT ENDIF Pasha пишет: Можно попробовать открыть файл через dbedit на медленном соединении, там все эти настройки учтены. Пробовал, скорость открытия тоже медленная - 15 записей на экране открывает по 0,6 сек, видна перерисовка каждой стоки. Но потом шустро ходит по ячейкам в таблице. В МиниГуи у меня очень вальяжно ходит курсор...

SergKis: Andrey Попробуй Browse с двойной буферизацией, возможно будет быстрее. Проверь за сколько будет отбор 100,500,1000 записей (задавать руками) и организовывать в массив или memio отбор и потом вешать tbrowse. По кнопкам next, prev получать еще порцию и просматривать ограниченное число записей. Можно попробовать "ручное" управление skip буф. (временем сброса\чтения), но Паша может объяснит лучше последовательность команд, я не пробовал.

Dima: SergKis Сергей у него TS , поэтому 2-ой буферизации там нет в принципе.

SergKis: Dima Я знаю, но предлагаю пробнуть, но мои тесты на медленном соединении подсказывают, что если и изменится прорисовка, то немного.

Andrey: SergKis пишет: но мои тесты на медленном соединении подсказывают Как у себя в программе определить что соединение МЕДЛЕННОЕ ? Чтобы потом юзеру повесить табличку - что с таким интернетом работать не будет !!! Да и себе понять ....

Pasha: Как у себя в программе определить что соединение МЕДЛЕННОЕ ? Если средствами letodb - то можно выдать на сервер команду leto_memoread(), если на сервере есть файл приличного размера, который можно прочитать, или leto_memowrite(), и засечь время ответа с сервера. По этому времени можно и оценивать скорость соединения.

Dima: Andrey пишет: Как у себя в программе определить что соединение МЕДЛЕННОЕ ? Еще как вариант можно заюзать HB_PING , сырец я выкладывал. Время так же можно засечь до него и после (можно и в цикле сделать от 1 до 10 к примеру ) .

Andrey: Dima пишет: Еще как вариант можно заюзать HB_PING , сырец я выкладывал. Время так же можно засечь до него и после (можно и в цикле сделать от 1 до 10 к примеру ) . Давай заново выложи пожалуйста....

Dima: Andrey пишет: Давай заново выложи пожалуйста.... Да без проблем

PSP: Всё это, т.е. измерение скорости канала, конечно хорошо. Но вот как быть, к примеру, в такой ситуации: канал в офисе - 50 Мбит/с, т.е. весьма неплохо )) Но! Кто-то из работников часто пользуется торрентами, забивая втихаря весь канал и шлюз в инет. Естественно, в момент максимальной нагрузки, "измерение" скорости канала даст весьма плачевные результаты. Работник, который получит такой результат, зная, что канал-то широкий и измерения не соответствуют действительности, обратится с вопросами либо к руководству, либо к тому, кто эту "измерялку" сделал )) Вот тут-то и начинается основное веселье по поиску того, куда, бля, делись эти 50 Мбит/с ))) Посему, КМК )), не нужно использовать T(S)Browse для просмотра таблиц, находящихся дальше, чем локальная сеть. Если есть нужда использовать данные, находящиеся в инете, придется переделать логику программы, чтобы не сильно зависеть от скорости канала. Кстати, в случае с letodb, udf-функции - изящное и простое решение этого вопроса. Вот, к примеру, нужно показать 1000 записей. Размер каждой - 200 байт. Всего = 200000 байт или 195.3 кБайта. При скорости в 10 Мбит/с, т.е. 1.25 Мбайта/с, т.е. 1280 кБайт/с, передача 195-ти кБайт займет всего 0.15 секунды. Ну, пусть 0.5 секунды. Записав эти данные в локальную базу (еще 0.5 секунды), можно ее показать с помощью T(S)Browse. И никаких тормозов. ))) Вроде, в рассчетах не ошибся. Вы спросите, а как взять эти 1000 записей? Отвечу: посредством udf-функции ))) updt: Пост подредактировал.

Dima: PSP пишет: Вот тут-то и начинается основное веселье по поиску того, куда, бля, делись эти 50 Мбит/с ))) +1

Andrey: PSP пишет: Вы спросите, а как взять эти 1000 записей? Отвечу: посредством udf-функции ))) Не совсем понятно.... Передавать в виде массива или по другому ? ---- udf-функции это КЛАССНО !

PSP: Andrey пишет: Передавать в виде массива или по другому ? Массивом, конечно.

Andrey: PSP пишет: Массивом, конечно. Понял, спасибо ! PSP пишет: не нужно использовать T(S)Browse для просмотра таблиц, находящихся дальше, чем локальная сеть. Если есть нужда использовать данные, находящиеся в инете, придется переделать логику программы, чтобы не сильно зависеть от скорости канала. Кстати, в случае с letodb, udf-функции - изящное и простое решение этого вопроса. Спасибо ! Буду знать теперь ! Dima пишет: Да без проблем Спасибо ! Жалко проверить уже негде... Медленный провайдер уже не доступен.

Dima: Andrey пишет: Медленный провайдер уже не доступен. Сегодня да , а завтра снова может возникнуть новенький. Я бы приготовился заранее к этому моменту , но тебе виднее.

SergKis: Andrey пишет: Медленный провайдер уже не доступен. Берешь мобильный интернет Bilain, MTC и вечерком (Skype уже еле тянет) отдалившись от вышки на ~30-40 км ... и будет тебе "счастье"



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