powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CursorAdapter (TableUpdate)
3 сообщений из 3, страница 1 из 1
CursorAdapter (TableUpdate)
    #38783132
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
CursorAdapter обновляет данные только при условии перечисления всех полей таблицы.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
.Alias              = 'Curfrommysql'
		.DataSourceType     = 'ODBC'
		.DataSource         = qqqq
		.SelectCmd          = 'Select att_id,att_val,objects_app_id,att_parent_id from att_str where att_val is not null'
		.Tables             = 'att_str'
		.BufferModeOverride = 5
		.UpdateType = 2
		.UseCursorSchema = .T.
		.CursorSchema       = 'att_id N(10),att_val C(100),objects_app_id N(10),att_parent_id N(10)'
		.KeyFieldList		= 'att_id,objects_app_id,att_parent_id'
		.UpdatableFieldList = 'att_id,att_val,objects_app_id,att_parent_id'
		.UpdateNameList     = 'att_id att_str.att_id,att_val att_str.att_val,objects_app_id att_str.objects_app_id,att_parent_id att_str.att_parent_id'
		.usetransactions    = .f.
		.MapVarchar = .T.
		.MapBinary = .T.
		.AllowSimultaneousFetch = .F.
		.InsertCmdRefreshCmd = 'select last_insert_id()'
		.InsertCmdRefreshFieldList = 'att_id'
		.FetchSize = 100
		.FetchAsNeeded = .t.


Неужели надо перечислять все? А если 100 столбцов?
Я думал, что достаточно указать поле первичного ключа + перечень полей, которые мне надо обновить.
Или я не прав?
...
Рейтинг: 0 / 0
CursorAdapter (TableUpdate)
    #38783550
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединяюсь к вопросу :)
Мне тоже в .UpdatableFieldList и .UpdatableNameList пришлось перечислять все, даже те, которые не обновлялись.
Непонятно почему, но заработало только после этого.

Ну, a если 100, то попробуйте через макроподстановку - &Var
её и в .SelectCmd можно использовать.
.SelectCmd = 'Sele &Var From Table1 ......................'
...
Рейтинг: 0 / 0
CursorAdapter (TableUpdate)
    #38783622
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Методом научного тыка определил, что дело в UpdateType = 2.
Поскольку при этой установке происходит сначала DELETE, а потом INSERT и если в обновляемой табличке
есть поля, не перечисленные в CursorAdapter и не допускающие NULL, то соответственно никакой UPDATE не проходит.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CursorAdapter (TableUpdate)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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