powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Очень хочется...
25 сообщений из 28, страница 1 из 2
Очень хочется...
    #32634900
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...сделать журнал событий открытия базы данных на VFP 8.0.

Приложение .NET использует базу данных VFP 8.0 для своих внутренних целей. Соединение устанавливается через vfpoledb.dll. Все работает прекрасно.

Событие открытия базы данных:

*Immediately after DBC is opened.
PROCEDURE dbc_OpenData(cDatabaseName,lExclusive,lNoupdate,lValidate)
SET DELETED ON
LOCAL lcEventDate,;
lcDBFullName,;
lcPath,;
lcDBName,;
lcExclusive,;
lcNoupdate,;
lcValidate,;
lnLogHandle
lcEventDate=TTOC(DATETIME())
lcDBFullName=IIF(ISNULL(cDatabaseName),'',ALLTRIM(cDatabaseName))
lcPath=IIF(EMPTY(lcDBFullName),'',LEFT(lcDBFullName,RAT('\',lcDBFullName)))
lcDBName=IIF(EMPTY(lcDBFullName),'',SUBSTR(lcDBFullName,RAT('\',lcDBFullName)+1))
lcExclusive='Exclusive='+IIF(lExclusive,'Yes','No')
lcNoupdate='ReadOnly='+IIF(lNoupdate,'Yes','No')
lcValidate='Validate='+IIF(lValidate,'Yes','No')
lnLogHandle=FOPEN(lcPath+'dbcopendatalog.txt',12)
IF lnLogHandle<0
lnLogHandle=FCREATE(lcPath+'dbcopendatalog.txt')
ENDIF
IF lnLogHandle>=0
=FSEEK(lnLogHandle,0,2)
=FPUTS(lnLogHandle,lcEventDate+', FullName='+lcDBFullName+', Name='+lcDBName+', '+lcExclusive+', '+lcNoupdate+', '+lcValidate)
=FCLOSE(lnLogHandle)
ENDIF
RETURN .T.
ENDPROC

Если база данных открывается из IDE VFP, то все работает, файл создается, запись в него идет. Если база открывается из .NET, то выдает ошибку: File "<MyView>.dbf" not found. (Запрос идет к представлению).

В результате экспериментов установлено, что если из VFP открыть базу монопольно, а потом попытаться соединиться через .NET, то ошибка будет та же. В результате тех же экспериментов установлено )))), что если в событии открытия базы закомментировать всю работу с текстовым файлом, которая ведется функциями низкого уровня, то ошибка исчезает. Права доступа NTFS не меняются, т.е. какой-то прикол с функциями низкого уровня, так что ли?
...
Рейтинг: 0 / 0
Очень хочется...
    #32635205
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1234567 что если в событии открытия базы закомментировать всю работу с текстовым файлом, которая ведется функциями низкого уровня, то ошибка исчезает. ... т.е. какой-то прикол с функциями низкого уровня, так что ли?

Вот он ответ!
Unsupported Visual FoxPro Commands and Functions in OLE DB Provider:
FSEEK( ) Function
FPUTS( ) Function
.....
...
Рейтинг: 0 / 0
Очень хочется...
    #32635383
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел. Ни одна функция работы с файлами не поддерживается. Типа фиг запишешь что-нибудь в файл?
...
Рейтинг: 0 / 0
Очень хочется...
    #32635396
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А также не поддерживается USE. Типа фиг запишешь что-нибудь в таблицу? :)
...
Рейтинг: 0 / 0
Очень хочется...
    #32635535
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1234567А также не поддерживается USE. Типа фиг запишешь что-нибудь в таблицу? :)
- используйте stored procedures + передача параметров
- используйте SQL команды select, update, delete ...

В принципе - ASP.NET + VFP 8.0 работают неплохо - я за 2 месяца сделал коммерческий web site... ничего сложного...

Good luck!
...
Рейтинг: 0 / 0
Очень хочется...
    #32636314
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch- используйте stored procedures + передача параметров

Конкретно в событии открытия БД это не помогает.

Sergey Ch- используйте SQL команды select, update, delete ...

Да это понятно. Дело в другом - нужно создать веб-интерфейс для администраторов, чтобы выполнять обслуживание БД. А это предполагает использование родных фоксовых команд по любому. Придется, наверное, писать COM-сервер.
...
Рейтинг: 0 / 0
Очень хочется...
    #32636375
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1234567 Sergey Ch- используйте stored procedures + передача параметров
Конкретно в событии открытия БД это не помогает.
Не понимаю я Вас, sorry... ASP.NET работает с базами VFP прекрасно, а тем более их открывает... Например вот этот ваш журнал - кто что делал - у меня есть на Web site - пишу в таблицу log событий - без проблем... Нет смысла, имея такую мощную среду - как VFP использовать текстовый формат...

Мой дружеский совет - немного пересмотрите Ваш подход к программированию на VFP - это не старый FPD - это гораздо лучше, даже ASp.NET не дотягивает до него - изучите SQL команды - с их помощью можно сделать все...

Вот пример администрирования (он немного староват - ASP+VFP 6.0) но суть я думаю будет понятна - это пример форума на VFP:

http://www.universalthread.com/wconnect/wc.dll?FournierTransformation~2,54,33,10004

Скачайте, посмотрите как это работает - в ASp.NET можно использовать конечно более прогрессиваный подход и имеющиеся классы...

Ну а про COM - сервер отличная идея. Для администрирования Web Site я написал толстого клиента VFP8.0+Web Services... В принципе - жалоб со стороны клиента нет...

P.S. Извините, ежели чего не так.
...
Рейтинг: 0 / 0
Очень хочется...
    #32636430
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял, что вы пишете в лог из интерфейса, т.е. лог у вас ведет само приложение. Тут никто не спорит - ASP.NET прекрасно работает с VFP, это даже не обсуждается :). Дело в другом. Просто если есть возможность не зависеть от того, будет какой-то интерфейс писать в лог или не будет, то хотелось бы эту возможность использовать. Ведь событие БД не зависит от прихотей клиентского приложения, правда? А получается, что журнал можно вести только из приложения ASP.NET.
...
Рейтинг: 0 / 0
Очень хочется...
    #32636927
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да и нет.
Используйте триггеры - в stored procedures - там можно использовать команду USE и еще много других Таким образом Вы не будете зависеть от приложения...
...
Рейтинг: 0 / 0
Очень хочется...
    #32638641
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSergey Ch

Есть подозрение, что работая с БД через OLE DB Provider for Visual FoxPro, при срабатывании триггера будет та же хрень. И потом, триггер не решит ту конкретную проблему, которую я описал.
...
Рейтинг: 0 / 0
Очень хочется...
    #32638734
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1234567 Есть подозрение, что работая с БД через OLE DB Provider for Visual FoxPro, при срабатывании триггера будет та же хрень. И потом, триггер не решит ту конкретную проблему, которую я описал.

С низкоуровневым доступом не решит... Но позволит сделать то, что Вы хотите, причем это не будет зависеть от приложения.

Но все как говорится на любителя... Просто ответ на Ваш вопрос - есть возможность из - под ASP.NET писать лог, но для этого Вам надо будет немного изменить идеологию разработки программ...

Good luck!
...
Рейтинг: 0 / 0
Очень хочется...
    #32639024
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите СОМ на VFP и не мучайтесь. Обмен данными через XML. У меня лично никаких проблем...
...
Рейтинг: 0 / 0
Очень хочется...
    #32639147
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CripПишите СОМ на VFP и не мучайтесь. Обмен данными через XML. У меня лично никаких проблем...
У меня тоже, кроме одной - стандартная функция XMLTOCUSOR умирает при длине файла более 4 MB Стандарная библиотека от MS XML Parser работает, но так медленно, что просто диву даешься, что там может так тормозить...

Уже задумываюсь над передачей просто текстовых файлов...
...
Рейтинг: 0 / 0
Очень хочется...
    #32640550
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а, скажем,
SET PRINTER TO ... ADDITIVE
SET PRINTER ON
??? ... или \|\\ ... или TEXT ... ENDTEXT
SET PRINTER OFF
SET PRINTER TO
не поможет, коли низкий уровень не работает?

(Порядок ON - TO и TO - OFF) могу напутать, не помню точно ;-)))
...
Рейтинг: 0 / 0
Очень хочется...
    #32640557
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. не три вопр. знака, а 1 или 2.
Или SET TEXTМERGE ... ADDITIVE (т.е. вопр. знаки - это для SET PRINT, а обратные слеши - для TEXTМERGE - вобщем, точно, без доки, не помню ;-))
...
Рейтинг: 0 / 0
Очень хочется...
    #32640649
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если заменить xmltocursor на xmladapter? Его функция ToCursor работает куда надежнее...
...
Рейтинг: 0 / 0
Очень хочется...
    #32640959
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriНу а, скажем,
SET PRINTER TO ... ADDITIVE
SET PRINTER ON
??? ... или \|\\ ... или TEXT ... ENDTEXT
SET PRINTER OFF
SET PRINTER TO
не поможет, коли низкий уровень не работает?

(Порядок ON - TO и TO - OFF) могу напутать, не помню точно ;-)))

Согласно документации - нет
...
Рейтинг: 0 / 0
Очень хочется...
    #32640970
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CripА если заменить xmltocursor на xmladapter? Его функция ToCursor работает куда надежнее...
Надо попробовать... Ничего пока сказать без эксперимента не могу...

Thank you very much for your advice...
...
Рейтинг: 0 / 0
Очень хочется...
    #32641799
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch CripА если заменить xmltocursor на xmladapter? Его функция ToCursor работает куда надежнее...
Надо попробовать... Ничего пока сказать без эксперимента не могу...

Thank you very much for your advice...

Аналогично все умирает
Проблема видимо в том, что в основе всех этих функций лежит один прородитель:

The XMLAdapter class requires Microsoft XML Core Services (MSXML) 4.0 Service Pack 1 (SP1) or later

Так что будем что-то изобретать снова...
...
Рейтинг: 0 / 0
Очень хочется...
    #32646044
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря проверил работу функции xmltocursor() на 24мб строке. Все отработало тип-топ. Код в студию...
...
Рейтинг: 0 / 0
Очень хочется...
    #32646089
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CripЧестно говоря проверил работу функции xmltocursor() на 24мб строке. Все отработало тип-топ. Код в студию...
И как быстро? И какой компьютер? Какая OS? Сколько разных полей в курсоре? Какая версия SOAP и MS XML Parsel? Схема передается в теле XML файла?

А мой код простой до безобразия:
Код: plaintext
XMLTOCURSOR(lcXML,"names", 0 )
Спасибо за информацию.
...
Рейтинг: 0 / 0
Очень хочется...
    #32646435
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну машинка п4-2600, вин2000, MS XML4SP1, SOAP3.0 updated, 1 текстовое поле, лимон записей. Ну где-то секунд 20... Схема инлайн
...
Рейтинг: 0 / 0
Очень хочется...
    #32646688
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CripНу машинка п4-2600, вин2000, MS XML4SP1, SOAP3.0 updated, 1 текстовое поле, лимон записей. Ну где-то секунд 20... Схема инлайн
Разница только в том, что мне надо upgrade for MS XML4SP1 and SOAP3.0...
Пошел искать. Спасибо за направление, что получилось - сообщу позже...
...
Рейтинг: 0 / 0
Очень хочется...
    #32646906
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал, устaновил - MSXML4 SP2
Теперь не виснет

Но время явно хуже чем у Вас (P4 Xenon 1,7 Ghz, 512 Mb memory, Win XP, W2K)

XML file size Time
1,2 Mb 30 sec
1,6 MB 55 sec
2,0 Mb 1 min 15 s
2,4 Mb 2 min
3,4 Mb 3 min 45 sec

Что явно не приемлимо - загрузка процессора 100% и VFP пишет - NOt response Странно все это...
...
Рейтинг: 0 / 0
Очень хочется...
    #32647204
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если быть точным то это 33 сек. Для лимона записей вполне прилично... Я правда не вижу смысла зачем такой большой объем конвертить в XML?
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Очень хочется...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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