Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
...сделать журнал событий открытия базы данных на 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 не меняются, т.е. какой-то прикол с функциями низкого уровня, так что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 13:02 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
1234567 что если в событии открытия базы закомментировать всю работу с текстовым файлом, которая ведется функциями низкого уровня, то ошибка исчезает. ... т.е. какой-то прикол с функциями низкого уровня, так что ли? Вот он ответ! Unsupported Visual FoxPro Commands and Functions in OLE DB Provider: FSEEK( ) Function FPUTS( ) Function ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:03 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Посмотрел. Ни одна функция работы с файлами не поддерживается. Типа фиг запишешь что-нибудь в файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 16:26 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
А также не поддерживается USE. Типа фиг запишешь что-нибудь в таблицу? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 16:30 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
1234567А также не поддерживается USE. Типа фиг запишешь что-нибудь в таблицу? :) - используйте stored procedures + передача параметров - используйте SQL команды select, update, delete ... В принципе - ASP.NET + VFP 8.0 работают неплохо - я за 2 месяца сделал коммерческий web site... ничего сложного... Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 17:11 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Sergey Ch- используйте stored procedures + передача параметров Конкретно в событии открытия БД это не помогает. Sergey Ch- используйте SQL команды select, update, delete ... Да это понятно. Дело в другом - нужно создать веб-интерфейс для администраторов, чтобы выполнять обслуживание БД. А это предполагает использование родных фоксовых команд по любому. Придется, наверное, писать COM-сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 10:32 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
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. Извините, ежели чего не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 10:55 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Я так понял, что вы пишете в лог из интерфейса, т.е. лог у вас ведет само приложение. Тут никто не спорит - ASP.NET прекрасно работает с VFP, это даже не обсуждается :). Дело в другом. Просто если есть возможность не зависеть от того, будет какой-то интерфейс писать в лог или не будет, то хотелось бы эту возможность использовать. Ведь событие БД не зависит от прихотей клиентского приложения, правда? А получается, что журнал можно вести только из приложения ASP.NET. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 11:18 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
И да и нет. Используйте триггеры - в stored procedures - там можно использовать команду USE и еще много других Таким образом Вы не будете зависеть от приложения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 14:27 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
авторSergey Ch Есть подозрение, что работая с БД через OLE DB Provider for Visual FoxPro, при срабатывании триггера будет та же хрень. И потом, триггер не решит ту конкретную проблему, которую я описал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 13:52 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
1234567 Есть подозрение, что работая с БД через OLE DB Provider for Visual FoxPro, при срабатывании триггера будет та же хрень. И потом, триггер не решит ту конкретную проблему, которую я описал. С низкоуровневым доступом не решит... Но позволит сделать то, что Вы хотите, причем это не будет зависеть от приложения. Но все как говорится на любителя... Просто ответ на Ваш вопрос - есть возможность из - под ASP.NET писать лог, но для этого Вам надо будет немного изменить идеологию разработки программ... Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 14:20 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Пишите СОМ на VFP и не мучайтесь. Обмен данными через XML. У меня лично никаких проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 16:33 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
CripПишите СОМ на VFP и не мучайтесь. Обмен данными через XML. У меня лично никаких проблем... У меня тоже, кроме одной - стандартная функция XMLTOCUSOR умирает при длине файла более 4 MB Стандарная библиотека от MS XML Parser работает, но так медленно, что просто диву даешься, что там может так тормозить... Уже задумываюсь над передачей просто текстовых файлов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 17:26 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Ну а, скажем, SET PRINTER TO ... ADDITIVE SET PRINTER ON ??? ... или \|\\ ... или TEXT ... ENDTEXT SET PRINTER OFF SET PRINTER TO не поможет, коли низкий уровень не работает? (Порядок ON - TO и TO - OFF) могу напутать, не помню точно ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 11:33 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Т.е. не три вопр. знака, а 1 или 2. Или SET TEXTМERGE ... ADDITIVE (т.е. вопр. знаки - это для SET PRINT, а обратные слеши - для TEXTМERGE - вобщем, точно, без доки, не помню ;-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 11:35 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
А если заменить xmltocursor на xmladapter? Его функция ToCursor работает куда надежнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 12:12 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
UrriНу а, скажем, SET PRINTER TO ... ADDITIVE SET PRINTER ON ??? ... или \|\\ ... или TEXT ... ENDTEXT SET PRINTER OFF SET PRINTER TO не поможет, коли низкий уровень не работает? (Порядок ON - TO и TO - OFF) могу напутать, не помню точно ;-))) Согласно документации - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 14:11 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
CripА если заменить xmltocursor на xmladapter? Его функция ToCursor работает куда надежнее... Надо попробовать... Ничего пока сказать без эксперимента не могу... Thank you very much for your advice... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 14:13 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
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 Так что будем что-то изобретать снова... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 23:18 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Честно говоря проверил работу функции xmltocursor() на 24мб строке. Все отработало тип-топ. Код в студию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 10:55 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
CripЧестно говоря проверил работу функции xmltocursor() на 24мб строке. Все отработало тип-топ. Код в студию... И как быстро? И какой компьютер? Какая OS? Сколько разных полей в курсоре? Какая версия SOAP и MS XML Parsel? Схема передается в теле XML файла? А мой код простой до безобразия: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 11:13 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Ну машинка п4-2600, вин2000, MS XML4SP1, SOAP3.0 updated, 1 текстовое поле, лимон записей. Ну где-то секунд 20... Схема инлайн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 12:58 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
CripНу машинка п4-2600, вин2000, MS XML4SP1, SOAP3.0 updated, 1 текстовое поле, лимон записей. Ну где-то секунд 20... Схема инлайн Разница только в том, что мне надо upgrade for MS XML4SP1 and SOAP3.0... Пошел искать. Спасибо за направление, что получилось - сообщу позже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 14:09 |
|
||
|
Очень хочется...
|
|||
|---|---|---|---|
|
#18+
Скачал, уст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 Странно все это... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2004, 15:03 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1595851]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 426ms |

| 0 / 0 |
