Odbc ошибка обновления присоединенной связанной таблицы


Форум программистов Vingrad

Новости ·
Фриланс ·
FAQ

Правила ·
Помощь ·
Рейтинг ·
Избранное ·
Поиск ·
Участники

Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Редактирование таблицы DBF(VisualFoxPro), Редактирование таблицы DBF(VFP) из базы 

:(

   

Опции темы

gbcfk
Дата 4.11.2006, 04:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.11.2006

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

Здравствуйте!
Есть база base.dbc, в которую входят несколько таблиц *.dbf типа Visual FoxPro.
Нужно из аксесса изменять поля этой таблицы, сейчас проект находится на такой стадии:

Код

Sub Secondrocedure()
Dim dbCurrent As Database
Dim tdTarget As TableDef
Dim fldLoop As Field
  Set dbCurrent = CurrentDb()
  Set tdTarget = dbCurrent.CreateTableDef("Pisok") 
  tdTarget.Connect = "ODBC;DSN=Visual FoxPro 
Database;SourceDB=D:\dbf\bases\base.DBC;SourceType=DBC;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;;TABLE=Spisok"
  tdTarget.SourceTableName = "Spisok" 
  dbCurrent.TableDefs.Append tdTarget

  dbCurrent.Close
  Set tdTarget = Nothing

End Sub

Т.е. сама таблица (в данном случае D:\dbf\Spisok.dbf) прилинкована к таблице Pisok в Аксессе.
Но чето не получается её редактировать, т.е при попытке изменить любую ячейку прилинкованной dbf-ки выдает:
«ODBC — ошибка обновления присоединенной (связанной) таблицы ‘Spisok’
[Microsoft][ODBC Visual FoxPro Driver]SQL: Statement too long. (#812)»
Далее пишет, что в приложении обнаружена ошибка при сохранении записи и приложение будет закрыто.  
Может кто знает, как можно изменять поля этой таблицы?

Заранее благодарен

PM MAIL   Вверх
mihanik
Дата 4.11.2006, 08:22 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

-=Белый Медведь=-
****

Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109

Ты «руками» можешь эту таблицу редактировать?

Если «да», то кинь эту БД сюда.
Оставь в ней буквально несколько записей только для того, чтобы было поле для экспериментов.
Данные в таблице можешь изменить, если там секреты…  smile

Что-то мне не нравиться способ подключения к БД, а вот почему?
Не пойму…

———————

Программистами не рождаются, — это родовая травма…
user posted imageuser posted image

PM MAIL WWW ICQ   Вверх
gbcfk
Дата 4.11.2006, 09:27 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.11.2006

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

Таким образом подключенную -нет, ругается.
Вот:(160Кб) http://cp.people.overclockers.ru/cgi-bin/d…;filename=1.rar

Добавлено @ 09:30 
А вот Бд из которой я пытаюсь ее прилинковать (220Кб)
http://cp.people.overclockers.ru/cgi-bin/d…e=gbcfk_f__.rar
На форме весит кнопка «подключить Spisok», на ней процедура из Модуль1

PM MAIL   Вверх
mihanik
Дата 4.11.2006, 13:15 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

-=Белый Медведь=-
****

Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109

gbcfk!!!

 http://cp.people.overclockers.ru/cgi-bin/d…;filename=1.rar удалось открыть только при помощи VisualFoxPro.
Access  жалуется, что «непредвиденная ошибка драйвера внешней базы данных (8961).

http://cp.people.overclockers.ru/cgi-bin/d…e=gbcfk_f__.rar  при помощи Access   открыть удалось, но с ошибкой
Пожаловался, что не хватает файла vfpoledb.dll версии 1.0

Думаю…

———————

Программистами не рождаются, — это родовая травма…
user posted imageuser posted image

PM MAIL WWW ICQ   Вверх
gbcfk
Дата 5.11.2006, 04:38 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.11.2006

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

Цитата(mihanik @  4.11.2006,  13:15 Найти цитируемый пост)
http://cp.people.overclockers.ru/cgi-bin/d…e=gbcfk_f__.rar  при помощи Access   открыть удалось, но с ошибкой
Пожаловался, что не хватает файла vfpoledb.dll версии 1.0

Блин, забыл. Там по-моему нужно драйвер установить
http://download.microsoft.com/download/vfo…-US/VFPODBC.msi (900Кб)

Цитата(mihanik @  4.11.2006,  13:15 Найти цитируемый пост)
http://cp.people.overclockers.ru/cgi-bin/d…;filename=1.rar удалось открыть только при помощи VisualFoxPro.
Access  жалуется, что «непредвиденная ошибка драйвера внешней базы данных (8961).

А как вы пытались открыть? Из Аксесса?

PM MAIL   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Программирование, связанное с MS Office»

mihanik

staruha

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

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми
компонентами


  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль «Помогите!» таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в

    «Книге отзывов о работе администрации»

  • А вот тут лежит FAQ нашего подраздела


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

С уважением
mihanik и
staruha.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »
  • Remove From My Forums

 locked

ODBC — update on a linked table <table> failed. (Error 3157)

  • Question

  • I am using Access 2013 with a linked table from an Oracle 11g database. I am executing a very simple update statement:

    UPDATE USP_INTERCO_DETAIL_TEST SET USP_INTERCO_DETAIL_TEST.STATUS = «Y»;

    The status column is a varchar2.

    The update returns either ORA-01461 or ORA-01722 but when I click on the help it goes to a page for the ODBC error 3157.

    I have verified that the database is read/write and so is the table. There are no locks on the table. The table has a foreign key assigned in Access. It can be read across the network so the database is available. There are no rules on the table. I linked
    the table as the table owner so there should not be any permission problems.

    To connect to the database, I am using the Oracle instant client 11_2.

    What can cause this error and how can I troubleshoot the root cause?

    Thanks!

    Nancy

Logo
MurCode

  • Форумы
  • Поиск
  • О проекте

SunnyVa

Дата: 30.03.2005 16:11:02

Поделитесь, пожалуйста, опытом как избежать данной ошибки…
Истоником данных для формы является динамически изменяемая таблица, которая была подключена с помощью источника ODBC…
Динамический запрос подгружает необходимые данные из двух таблиц, которые связаны между собой по ключевому полю…
Допустим, пользователь изменяет данные в ПолеТ1, которое относиться к Таблице1 и в ПолеТ2, которое относиться к Таблице2
Возникает ошибка:
ODBC-ошибка обновления присоединенной (связанной) таблицы ‘Таблица12’
[Microsoft][ODBC SQL Server Driver][SQL Server] View or Function ‘dbo.Таблица12’ is not updatable because the modification affects multiple base tables (#4405)
Как я правильно понимаю не может он одновременно обновить поля, которые пренадлежат разным таблицам :((
Проверяя, этот динамический запрос SQL Server без ошибок обновляет Поля, которые пренадлежат разным таблицам… Это происходит именно в Access-е…

Alexus12

Дата: 30.03.2005 16:53:07

проверьте, что указаны ключевые поля линкованных таблиц
(открыть таблицу на дизайн и убедиться, что в самом левом стоблике у каких-то полей стоит ключик)

если нет — причина в этом, перелинкуйте таблицы и явно укажите ключ, когда Access спрашивает

SunnyVa

Дата: 30.03.2005 16:56:13

ключик я ставлю как полагается…
кстати, Таблица1 по ключю содержит уникальную запись… а в Таблице2 по этому ключу может быть много записей, т. е. связь один ко многим…

paparome

Дата: 30.03.2005 17:05:33

SunnyVa
ключик я ставлю как полагается…
кстати, Таблица1 по ключю содержит уникальную запись… а в Таблице2 по этому ключу может быть много записей, т. е. связь один ко многим…

Добавь в выборку еще и ключ из таблицы 2 — может поможет
Акс ваще не любит править запросы в которых нет ключевых полей редактируемой таблы
А в случае с ODBC их еще ему и указывать надо при прилинковке, а то получится таблица без ключевых полей и все — править низя

SunnyVa

Дата: 30.03.2005 17:10:51

сдела как Вы сказали: указала 2 ключа — все равно ошибка :((

Alexus12

Дата: 31.03.2005 10:32:27

View or Function ‘dbo.Таблица12’ is not updatable because the modification affects multiple base tables (#4405)

а не выглядит ли это так, что вы в этой самой view
объединили таблицу-журнал,составленную из двух (главная+подчиненная)
и кучу таблиц-справочников (id, наименование показателя),
связанных с журнальными таблицами,
и теперь пытаетесь забивать через эту одну View
все сразу?

ДЛЯ РЕДАКТИРОВАНИЯ так не делают, это только просмотр ;)

а ДЛЯ РЕДАКТИРОВАНИЯ
делают форму для ТАБЛИЦЫ (не view) журнала-главной с показом 1 записи,
на ней лежит журнал-подчиненная с показом всех записей
для текущей-главной (связь по ID),
а значения справочников подставляются из табл-справочников
с помощью «полей со списком» на этих двух формах
(см. «источник строк» для каждого из «полей со списком» )

SunnyVa

Дата: 31.03.2005 10:45:03

я не спорю с вашим замечанием…
но с помощью VIEW я подгружаю к главной таблице (Таблица1) только одну запись из справочника (Таблица2) (сами понимаете зачем мне в этом случае делать подтаблицу)

Alexus12

Дата: 31.03.2005 10:51:01

SunnyVa

Дата: 31.03.2005 10:56:49

Alexus12
текст вьюхи в студию

извините за глупый вопрос, но что значит с форматированием (SRC)?

Alexus12

Дата: 31.03.2005 11:10:00

над окошком ввода ответа есть такая кнопочка

Microsoft Access не может обновлять большие поля Memo (длинный текст) в связанной таблице ODBC SQLite. Предел составляет от 2300 до 5152 символов. Это может быть запрос обновления, DAO или ADO rs.Edit или ручная копирование вставки с помощью Ctrl-C/Ctrl-V + mouse непосредственно в связанную таблицу — это не имеет значения.

Сообщения об ошибках:

Обновить запрос или ручную копию:

ODBC-update on a linked table 'Adobe_AdditionalMetadata' failed.
sequence error (#-1)

DAO, VBA на линии rs.Edit:

Run-time error '3027':
Cannot update. Database or object is read-only.

ADO, VBA на rs.Update:

Run-time error '-2147217887 (80040e21)':
ODBC-update on a linked table 'Adobe_AdditionalMetadata' failed.

Установленный драйвер:
http://www.ch-werner.de/sqliteodbc/ (драйвер SQLite3 ODBC)
Доступ к связанным свойствам поля: длинный текст
исходные свойства поля SQLite: TEXT NOT NULL DEFAULT »
(Доступ просматривает почти все поля в виде памятки)
Это поле «xmp» в таблице «Adobe_AdditionalMetadata» файла Adobe Lightroom «Lightroom Catalog.lrcat».

Меньшие поля Memo могут быть легко обновлены.

Понравилась статья? Поделить с друзьями:
  • Office 2010 не подчеркивает ошибки
  • Odbc ошибка 28000
  • Occt ошибка видеопамяти
  • Odbc sql server driver ошибка безопасности ssl
  • Office 2007 ошибка направления команды приложению