![]() |
|
|
![]()
|
|
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Не понимаю, почему ошибка...
При четвертом выполнении цикла в момент выполнения функции ADOColor->Next() вылетает EOleException "Недостаточные или неполные сведения о ключевом поле. Обновление влияет на слишком большое число строк." Отслеживал пошагово - значения ячеек массива Cveta[a][0] и Cveta[a][1] нормальные - обычный строковый текст длиной не более 10 символов. БД Access, таблица одна 2 столбца*23 записи. В ADOColor выводится по простейшему запросу "select * from tablica". Ключевых и индексных полей в таблице нет. Пишу на Builder 6. Вроде все идеально. А ошибка все равно вылазит. --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 7 Всего: 122 |
В ADOColor вскгда "select * from tablica"???
если в таблицу добавляешь данные то надо юзать INSERT... или я что то упустил? |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
"select..." в ADOColor всегда. Тем ADOColor и замечателен, что не надо выполнять добавление записей через insert - записи добавляются нормально (у меня несколько других таблиц успешно добавляют записи без запроса insert). А кроме того, я выполняю не вставку, а редактирование таблицы.
Это сообщение отредактировал(а) SkyHawk - 6.9.2007, 08:45 --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Rodman |
|
||||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 7 Всего: 122 |
Вау... не знал... слушай, я вот глянул что твое "обновление" надо POST'ом завершать или я путаюсь? ну типа
|
||||
|
|||||
| Tsume |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 3.3.2005 Репутация: нет Всего: нет |
Я вот только одного не пойму... причем тут color... Т.е. почему цикл идет по массиву, а Next по DataSet
Я правильно понимаю задачу: Есть задаваемая таблица цветов. Пишем ее в базу, при этом затираем предыдущие значения. Тут уместно наверное сказать, что размеры могут и не совпадать у Array и DataSet. Особенно если цветов, скажем 2, а в таблице записей 1000. Ну так вот... уж коли речь так пошла о том что сложно и неправильно делать так:
то напишем алгоритм. 1. Чистим таблицу 2. вставляем нужное количество записей
так вроде. Кодил тут - так что проверьте насчет где Close правильно ставить. А что касается редактирования... То может стоит еще смотреть, а есть там такое значение или нет? Это сообщение отредактировал(а) Tsume - 6.9.2007, 17:04 |
||||
|
|||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
УРА!!! РАЗОБРАЛСЯ!!!
Оказывается, в таблице было две записи с абсолютно одинаковыми записями, которые процессор баз данных не мог различить (судя по всему, Access обращается к записям по уникальным значениям, хотя индексов нет). Помозговал, и добавил еще одно поле-счетчик (у которого все значения естественно будут уникальными ). И все заработало! Всем большое спасибо за участие. --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |