powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемы с CursorAdapter'ом
10 сообщений из 10, страница 1 из 1
Проблемы с CursorAdapter'ом
    #38022052
Иухенио
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите плиз! разбираюсь с CursorAdapter'ом. Создаю КАД. Таблица находится в БД на MySQL. Считываю данные, вывожу в грид, потом добавляю записи и пытаюсь их сохранить на сервере, но они не сохраняются. Полазил по форумам, посмотрел хелпы и различные статьи но не могу понять в чем дело((((
вот фрагмент кода:

CA = CREATEOBJECT('CursorAdapter')
WITH CA
.Alias = "TestSql"
.DataSourceType = "ODBC"
.DataSource = RegConnect
.SelectCmd = "SELECT id_offices, ofName FROM oms.offices"
.Tables = "oms.offices"
.BufferModeOverride = 5
.usetransactions = .f.
.AllowInsert = .T.
UseCursorSchema = .T.
.CursorSchema="id_offices CHARACTER(10), ofName CHARACTER(50)"
.KeyFieldList = "ID_Offices"
.UpdateNameList = "ID_offices offices.ID, ofName offices.Name"
.UpdatableFieldList = "id_offices, ofName"
ENDWITH
CF = CA.CursorFill()
INSERT INTO (CA.Alias)(id_offices, ofName) SELECT offices.id, offices.Name FROM offices
TABLEUPDATE(1, .T., CA.Alias)
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38022326
Ffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то непонятное. Разве в MySQL можно писать значение в поле индекса?
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38022367
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
(...)

if TableUpdate(1, .T., CA.Alias) = .F.
    Local laError(1)
    =AError(laError)
    MessageBox(laError[2])
endif
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38022405
Иухенио
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на MySQL поле id_offices символьное и заполняется вручную.
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38022408
Иухенио
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в литературе говорится что TABLEUPDATE() Обновляет записи имеющие пометку для обновления, возможно такое что те записи которые я INSERT'ом добавляю не отмечаются как записи для обновления?
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38022767
Иухенио
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,
TABLEUPDATE() Возвращает .T.
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38023510
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иухенио,
Похоже, все дело в установке .usetransactions = .f.
В этом случае курсорадаптер отключает механизм автоматических транзакций и управлять
транзакциями нужно "вручную" через API драйвера ODBC.
А если нет явного завершения транзакции, то не будет и записи изменений.
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38023567
Иухенио
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я убрал эту установку, результат не изменился(((
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38023675
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иухенио,
Еще настораживает:
.UpdateNameList = "ID_offices offices.ID, ofName offices.Name"
по идее должно быть:
.UpdateNameList = "ID_offices offices.ID_offices, ofName offices.ID_offices"

По HELP-у список UpdateNameList должен состоять из пар локальных имен и полных имен полей удаленного источника.
Полное имя поля удаленного источника появляется в виде <имя таблицы удаленного источника>. <имя поля таблицы удаленного источника> где <имя таблицы удаленного источника> соответствует имени из свойства Tables.
...
Рейтинг: 0 / 0
Проблемы с CursorAdapter'ом
    #38026291
Иухенио
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое! Действительно ошибка заключалась именно в этом свойстве, неправильно указал поля для обновления. У меня было 2 таблицы, одна на сервере, другая локальная, из локальной копировались данные в курсор адаптер и соответственно на сервер, я подумал что в этом свойстве (UpdateNameList) нужно указывать поля локальной таблицы и поля таблицы на сервере, а оказывается не локальной таблицы, а поля курсора нужно было указать. Теперь все отлично работает! Спасибо за помощь!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемы с CursorAdapter'ом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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