C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ошибка при вставке записи, ADO, Paradox, TMS DBAdvGrid
kea
Отправлено: 08.01.2006, 16:28


Станционный диспетчер

Группа: Участник
Сообщений: 80



Здравствуйте!
Работаю через ADO ( ADOConnection + ADOTable ) с табличкой Paradox из трех полей, для подключения создал udl-файл.
Вставляю запись, заношу содержимое в первое поле, перехожу к следующему, ошибка.
"Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения."
Помогите разобраться.

Компонент визуализации DBAdvGrid от TMS.
kea
Отправлено: 10.01.2006, 09:50


Станционный диспетчер

Группа: Участник
Сообщений: 80



Здравствуйте! Причина ошибки, вероятнее, неправильное использование ADOTable. Проверял со стандартным компонентом визуализации — та же ошибка.
olegenty
Отправлено: 10.01.2006, 10:20


Ветеран

Группа: Модератор
Сообщений: 2412



а ключик-то там есть?
kea
Отправлено: 11.01.2006, 01:11


Станционный диспетчер

Группа: Участник
Сообщений: 80



QUOTE (olegenty @ 10/01/2006, 10:20)
а ключик-то там есть?

Здравствуйте! Ключик разумеется есть. Первое поле имеет тип autoincrement (Paradox).
kea
Отправлено: 12.01.2006, 02:24


Станционный диспетчер

Группа: Участник
Сообщений: 80



Здравствуйте! Создал аналогичную табличку в access, подключился и никаких проблем. Первое поле имеет тип счетчик, остальные также текстовые по 255 символов. Интересно почему же с Paradox ошибка?
olegenty
Отправлено: 12.01.2006, 08:08


Ветеран

Группа: Модератор
Сообщений: 2412



скорее всего ADO некорректно генерирует UPDATE инструкцию. по какой причине — вопрос отдельный.
kea
Отправлено: 12.01.2006, 20:23


Станционный диспетчер

Группа: Участник
Сообщений: 80



QUOTE (olegenty @ 12/01/2006, 08:08)
скорее всего ADO некорректно генерирует UPDATE инструкцию. по какой причине — вопрос отдельный.

Здравствуйте! Тогда получается, лучше не использовать связку ADO + Paradox?
olegenty
Отправлено: 13.01.2006, 07:21


Ветеран

Группа: Модератор
Сообщений: 2412



Лучше не использовать Paradox, DBASE, Access и прочие "плоские" СУБД.
kea
Отправлено: 16.01.2006, 00:58


Станционный диспетчер

Группа: Участник
Сообщений: 80



QUOTE (olegenty @ 13/01/2006, 07:21)
Лучше не использовать Paradox, DBASE, Access и прочие "плоские" СУБД.

Здравсвтвуйте! Сразу возникает вопрос а почему? Если нужна одна табличка с 3 полями, в чем смысл использования хотя бы InterBase?
Gedeon
Отправлено: 16.01.2006, 01:14


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (kea @ 16/01/2006, 00:58)
Здравсвтвуйте! Сразу возникает вопрос а почему? Если нужна одна табличка с 3 полями, в чем смысл использования хотя бы InterBase?

Если нужна одна табличка с тремя полями надо юзать текстовый, а лучше бинарный файл ИМХО.
olegenty
Отправлено: 16.01.2006, 06:55


Ветеран

Группа: Модератор
Сообщений: 2412



любой клиентский НД поддерживает некий "внутренний" формат хранения данных. если нужна одна табличка с тремя полями, в целом ряде случаев этого и будет достаточно.
poland
Отправлено: 16.01.2006, 12:04


Ученик-кочегар

Группа: Участник
Сообщений: 16



QUOTE (kea @ 16/01/2006, 00:58)
QUOTE (olegenty @ 13/01/2006, 07:21)
Лучше не использовать Paradox, DBASE, Access и прочие "плоские" СУБД.

Здравсвтвуйте! Сразу возникает вопрос а почему? Если нужна одна табличка с 3 полями, в чем смысл использования хотя бы InterBase?

Много лет использую использую вариант VFP (DBase) для локальных небольших таблиц с доступом через ADO, параллельно работая с MS SQL. Никаких неразрешимых проблем не было.
Может проблема именно из-за драйвера для Paradox. Borland давно ее не поддерживает.

Вернуться в Работа с базами данных в C++Builder