Поиск:

Ответ в темуСоздание новой темы Создание опроса
> команда внутри транзакции, cursorsetprop() 
:(
    Опции темы
Artiom
Дата 18.9.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



основной код такой 
  
Код

SELECT SELECT(1)  
    USE journal SHARED   
    SET MULTILOCKS ON   
    =CURSORSETPROP("Buffering" , 3)  
    BEGIN TRANSACTION   
    APPEND BLANK   
    GATHER FROM nArray FIELDS EXCEPT jr_id  
        IF !TABLEUPDATE(1)  
            ROLLBACK   
            SELECT journal  
            USE  
            MESSAGEBOX("Error writing log!", 16, "error")  
            RETURN   
        ENDIF   
    END TRANSACTION   
    SELECT journal  
    USE

    
Проблема в том что когда я пытаюсь вызвать эту процедуру внутри другой транзакции - выдается ошибка на 
=CURSORSETPROP("Buffering" , 3) (недопустимая команда внутри транзакции) 
Как лучше поступить в этом случае?

Добавлено @ 16:20 
Эта процедура пишет данные в лог файл - похоже просто придется отказаться от лога внутри транзакций - плохо smile 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Artiom
Дата 18.9.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



ну оказалось что не страшно
вызываю свою процедуру или после ROLLBACK или за пределами транзакции - почти все что хотел в лог попадает


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Cashey
Дата 19.9.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



Введи в ф-цию, производящую запись логов параметр, в который передавай нужно ли открывать транзакцию или нет. Например:
Код

LPARAM lTrans
SELECT SELECT(1)  
    USE journal SHARED   
    SET MULTILOCKS ON   
    IF !lTrans
        =CURSORSETPROP("Buffering" , 3)
    ENDIF 
    BEGIN TRANSACTION   
    APPEND BLANK   
    GATHER FROM nArray FIELDS EXCEPT jr_id  
        IF !TABLEUPDATE(1)  
            ROLLBACK   
            SELECT journal  
            USE  
            MESSAGEBOX("Error writing log!", 16, "error")  
            RETURN   
        ENDIF   
    END TRANSACTION   
    SELECT journal  
    USE

Или перед каждой командой транзакции


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.