Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Local View - ошибка 1547 / 3 сообщений из 3, страница 1 из 1
26.11.2004, 16:16
    #32801845
help123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Local View - ошибка 1547
Прошу помощи:
Использую в форме данные с Local View. При попытке подтведить изменения (нажатие по кнопке "Сохранить") - Tableupdate возвращает .F.
Проанализировал ошибку - 1547 - Cannot insert an empty row from view into its base table(s).
Использую код:
Кнопка - "Добавить новую запись":
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
PRIVATE buffCheck
addNewPaySell = .F.
SELECT sql_paysellgrid
buffCheck = CURSORSETPROP("Buffering", 5 ,"sql_paysellgrid")
IF buffCheck
	APPEND BLANK IN sql_paysellgrid
	REPLACE sql_paysellgrid.sellerk WITH sql_payseller.sellerk
	addNewPaySell = .T.
ELSE
	MESSAGEBOX ("ххх", 48 ,"ххх")
ENDIF
Кнопка - "Сохранить":
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
IF addNewPaySell .OR. editPaySell
   SELECT sql_paysellgrid
   IF sql_paysellgrid.dates != {}
      BEGIN TRANSACTION
      IF TABLEUPDATE(.T.,.T.,'sql_paysellgrid') 
      END TRANSACTION
      =TABLEUPDATE (.T.)
      LOCAL v_paysellerk
      v_paysellerk = sql_payseller.sellerk
      REQUERY ('sql_paysellgrid')
      ELSE 
      LOCAL laError( 2 )
      =AERROR(laError)
      ? laError						
      ROLLBACK
      MESSAGEBOX ("ххх", 48 ,"хххх")
      =TABLEREVERT (.T.)
      ENDIF
   ELSE
   MESSAGEBOX ("пппппппп", 48 ,"ппппппп")
   ENDIF
ENDIF

В ЧЕМ ОШИБКА?

хоть и революция в стране - но надо же как то расслаблятся... (я с Украины)
...
Рейтинг: 0 / 0
26.11.2004, 21:00
    #32802278
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Local View - ошибка 1547
ээээ... может в построителе представления запарил указать какое из полей являеца первичным ключом!?
...
Рейтинг: 0 / 0
27.11.2004, 00:40
    #32802346
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Local View - ошибка 1547
Ну, так в описании к этой ошибке все ясно написано. Не вставляет View совершенно пустые записи в исходную таблицу. Необходимо, чтобы хотя бы одно поле из тех, которые модифицируют исходную таблицу, было изменено.

Это те поля, которые помечены "птичкой" в столбтке под иконкой карандаша на закладке Update Criteria.

У тебя весьма странный код. Переключение режима буферизации в процессе работы - крайне неразумный поступок, поскольку такая операция приведет к сбросу буфера, если таблица была в режиме строковой буферизации и будет невозможна, если таблица была в табличной буферизации и это буфер был изменен.

Ну, и 2 команды TableUpdate() подряд выглядят бессмысленно.

Кстати, надеюсь твой View обновляет только одну таблицу? Обновление через один View данных из нескольких таблиц требует повышенной бдительности. Особенно в отношении ключевых полей.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Local View - ошибка 1547 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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