powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 2 Sergey Ch: FOXISAPI
11 сообщений из 11, страница 1 из 1
2 Sergey Ch: FOXISAPI
    #33163408
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы тут однажды тему поднимали по поводу Web-интерфейсов... Поэтому прошу у Вас помощи...

Ситуация такая:
есть одна старая база (создана и работает под FPD). И вот стало просто необходимо (приказ руководства) "прилепить" к ней обработчик HTTP-запросов для инеграции в распределенную корпоративную сеть... (И обеспечить обработку запроса за 10 секунд, когда даже локально запрос обрабатывается 1 минуту (объем DBF-файла (по которому строил селект) 97 МБ, имеется структурный индекс 55 МБ)... )

Не могли бы Вы посоветовать книжку, в которой бы ПОДРОБНО описывалось создание ISAPI-расширений для IIS на Фоксе. Все от начала и до конца. Базияна (для VFP6) я почитал... Есть там очень непонятный и неприятный для меня момент.
Он в книге пишет:
Код: plaintext
1.
2.
3.
define class QueVFP as FOXISAPI OLEPUBLIC
...
ENDDEFINE
a Фокс мне отвечает, что не знает такого класса "FOXISAPI"... И я, почему-то, склонен ему верить...

О себе: на FPD работал 5 лет, год работаю на С++... На VFP написал два небольших проекта. До этого момента с Web (и вообще с СОМ, а особенно на VFP) никогда сталкиваться не приходилось...
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33163961
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу встречный вопрос - Вы сделали пример Web Service , который я предлагаю? Разобрались как он работет?

Используйте Web Services - там уже все есть...

Для 97 MB 10 sec для индексного выражения очень много

У нас есть таблицы около 2 GB (их несколько, Web Service выбирает данные из 4 таблиц (2фирмы*2архива)) и передает результат на клиента - что-то около 1.5 sec отклик от запроса до получения ответа, хотя может и быстрее... (базы данных FPD 2.6 DOS)
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33164855
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChСразу встречный вопрос - Вы сделали пример Web Service , который я предлагаю? Разобрались как он работет?

Используйте Web Services - там уже все есть...

Пока нет, только прочитал. Но обязательно буду пробовать...
Только у меня VFP6, а у Вас, насколько я понял, VFP9.
Есть ли какие-то особенности построения WebServices на базе VFP6 по сравнению с VFP9?
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33164882
Дмитрий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав C.
... (И обеспечить обработку запроса за 10 секунд, когда даже локально запрос обрабатывается 1 минуту ...

Как правило на www серверах максимальное время работы скрипта 40 сек.
Я бы начал с оптимизации запроса. SYS(3054, 11) попробуй
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33164916
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Т. Станислав C.
... (И обеспечить обработку запроса за 10 секунд, когда даже локально запрос обрабатывается 1 минуту ...

Как правило на www серверах максимальное время работы скрипта 40 сек.
Я бы начал с оптимизации запроса. SYS(3054, 11) попробуй
И как, подскажите мне, можно соптимизировать запрос:
Код: plaintext
1.
Select Fio from datafile into cursor
?
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33164967
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Т. Как правило на www серверах максимальное время работы скрипта 40 сек.
Время настраивается и может быть почти разумно любым...
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33164982
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. Select Fio from datafile into cursor
Это не оптимизация, а ошибка в проектировании Вышей базы данных или задачи...

Зачем Вам сразу все фамилии? Такого быть не должно... Надо обязательно применять какой-то критерий отбора по которому иметь индексное выражение.

А FoxPro 6.0 с Web Services лучше не применять, себе дороже - это как раз тот момент, когда надо сделать Upgrade и перейти сразу на последнюю версию (в настоящий момент 9.0)...
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33165318
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch Станислав C. Select Fio from datafile into cursor
Это не оптимизация, а ошибка в проектировании Вышей базы данных или задачи...
Зачем Вам сразу все фамилии? Такого быть не должно... Надо обязательно применять какой-то критерий отбора по которому иметь индексное выражение.

Да знаю я это :) Просто погорячился... На самом деле мой запрос имеет вид:
Select Fio from datafile into cursor where ntel=lcTel , где lcTel = параметр, переданный клиентом (в т.ч. через Web-сервис). В итоге получается, что в курсоре находится лишь одна запись... И индексное выражение имеется - внутри cdx-файла...

Sergey Ch
А FoxPro 6.0 с Web Services лучше не применять, себе дороже - это как раз тот момент, когда надо сделать Upgrade и перейти сразу на последнюю версию (в настоящий момент 9.0)...
Почему? Просветите этот момент?
К сожалению, VFP 6.0 - последняя полученная нами официально (по подписке) версия... И она удовлетворяла наши потребности (до последнего решения руководства) на 100%... А лишь из-за WebServices никто не будет тратить деньги и делать Upgrade...
Неужели мне нельзя ничем помочь
Хоть ссылкой на книжку... И желательно на такую, где все подробно описано: какие нужны библиотеки/компоненты, которых нет в стандартной поставке VFP, где их взять, платно/бесплатно и т.д.
А то получается как в моем первом посте:
Вот оно, решение! Понятное, простое! Но нет необходимого компонента/класса... И где его взять - не сказано...
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33165504
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.Почему? Просветите этот момент?
К сожалению, VFP 6.0 - последняя полученная нами официально (по подписке) версия... И она удовлетворяла наши потребности (до последнего решения руководства) на 100%... А лишь из-за WebServices никто не будет тратить деньги и делать Upgrade...
Неужели мне нельзя ничем помочь
Хоть ссылкой на книжку... И желательно на такую, где все подробно описано: какие нужны библиотеки/компоненты, которых нет в стандартной поставке VFP, где их взять, платно/бесплатно и т.д.
А то получается как в моем первом посте:
Вот оно, решение! Понятное, простое! Но нет необходимого компонента/класса... И где его взять - не сказано...
Вижу в Вас себя пять лет назад, когда передо мной стоял вопрос переходить с 6 на 7 или нет?
Дело в том, что в 9 версии очень много нужных вещей - от всех функций работы с XML до новых и полезных вещей (курсор адаптер, новый отличный синтаксис SQL, новые отчеты, новый графический интерфейс, устранены пробелемы поддержки русского языка в COM, почти новый Grid...)

Если Вы заикнулись о деньгах - то Вам можно купить официальную Upgrade version - цена для России что-то в районе 400 USD... Стоит ли городить лес (изобретая велосипед) из-за такой мелочной суммы?
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33165835
Дмитрий Т.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К вопросу об оптимизации:

Станислав C.
... На самом деле мой запрос имеет вид:
Select Fio from datafile into cursor where ntel=lcTel , где lcTel = параметр, переданный клиентом (в т.ч. через Web-сервис). В итоге получается, что в курсоре находится лишь одна запись... И индексное выражение имеется - внутри cdx-файла...

Результат теста:
Телефонный справочник Екатеринбурга развернул в 1 таблицу (Тел, Фио, Адрес), объединил его с самим собой пару раз для объема.
В итого таблица 1 млн. записей и вес 93Мб.
VFP6 SP5, WinXP, Cel2ГГц, 256 Мб
Аналогичный запрос:
без индексов 3,8 сек., с индексом 0.02 сек.

Может тебе сначала вопрос по железу порешать?
...
Рейтинг: 0 / 0
2 Sergey Ch: FOXISAPI
    #33167285
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Станислав!

Насколько я помню, с VFP6 уже шел пример использования FOX ISAPI (и собственно его исходники, которые нужно скомпилировать в dll-ку) - в фоксе делается COM-сервер, его вызывает этот самый Сишный "посредник"... фоксовый код генерит полностью HTML ответ (ессно получая параметры запроса).
Про WebServices конечно лучше забыть, а вот сделать Web интерфейс - очень даже можно. Другой вопрос, что это довольно много писанины - обычно для таких целей применяют разные WebEnabled каркасы - типа wwConnect, AFP и т.п. Можно аткже напиcать web часть на ASP, а из неё вызывать VFP COM компоненту (опять-же компонента может генеривровать цельные куски HTML представления данных).
Насчёт проблем с языком - решение описано на странице михаила Дроздова (нужно заменить 1 байтик в VFP6t.dll) - ессно что ОЧЕНЬ желательно иметь SP5 к фоксу - AFAIR лишь начиная с VFP6 SP3 появилась поддержка создания "многопоточного" COM-сервера.

Насчёт книги - возможно там используется свой класс - покопай исходники что шли на CD (или тогда ещё на дискетке...) там может и есть этот самый класс... В принципе если там нету никаких ссылок на This.что-то-странное() чего нет в классе Custom - то просто замени класс на Custom, или создай его (т.е. субклассируй Custom с именем foxisapi).

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 2 Sergey Ch: FOXISAPI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]