Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H / 6 сообщений из 6, страница 1 из 1
23.12.2004, 17:24
    #32842412
strizh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H
Делаю STP-запрос обновляемым (устанавливаю свойства UpdatableFieldList, UpdateNameList, Tables, KeyFieldList, SendUpdates, Buffering = 5).
В открытой рабочей области ноль записей.
Делаю append blank, присваиваю всем обновляемым полям правильные значения. Проверяю функцию GetNextModified(0) ну или 1 - она возвращает 0, как будто таблица не обновлена. Хотя если делаю tableupdate(.t.) - ODBC-запрос на вставку проходит корректно.
Ну и почему такая несправедливость ? Аналогичный вариант если делать через обновляемое удаленное представление - функция GetNextModified(0) возвращает правильное значение
...
Рейтинг: 0 / 0
23.12.2004, 17:51
    #32842491
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H
Скорее всего, ошиблись рабочей областью. Т.е. натравливаете GetNextModified() не на ту таблицу.

Попробуйте явно прописать рабочую область:

?GetNextModified(0,"MySTPCursor")
...
Рейтинг: 0 / 0
24.12.2004, 13:19
    #32843712
lnu
lnu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H
А что такое STP-запрос?
...
Рейтинг: 0 / 0
27.12.2004, 09:52
    #32845427
strizh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H
STP - ошибся. Конечно SPT - SQL Pass Througth. С рабочей областью не ошибаюсь.
...
Рейтинг: 0 / 0
27.12.2004, 21:15
    #32846868
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H
Ищи ошибку у себя.

Проверил в VFP8 все нормально, если SPT-курсор в 5 режиме буферизаци, то после APPEND BLANK GetNextModified(0) возвращает -1, что и должно быть.

Дело в том, что работа GetNextModified() никак, никоим образом не зависит от того, каким образом был создан курсор.

Имей в виду, что параметр функции GetNextModified() - это физический номер записи начиная с которого надо искать измененную запись. Поэтому, если изначально курсор был пустой, то использование в качестве параметра 1 даст 0 (ничего не найдет), поскольку ты пытаешся искать запись после записи с физическим номером 1. А такой записи в принципе не существует. В качестве параметра надо указывать именно 0. Т.е. искать с самого начала.

Новые записи в буферизированной таблице до того, как буфер будет сброшен имеют отицательный физический номер. Поэтому, полученное значение -1 - это не ошибка. Это действительно такой физический номер записи. Отрицательный. Проверь, что вернет функция Recno()
...
Рейтинг: 0 / 0
28.12.2004, 20:15
    #32848658
strizh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H
To ВладимирМ:
Спасибо ! Аж обидно, что видя то, что возникают записи с отрицательным номером и почитав про это в доке, я забыл, что и GetNextModified тоже номер записи возвращает, и проверял на >0 вместо <>0.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Почему не работает функция GetNextModified() в обновляемом SPT-запросе ?H / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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