Страница: 1 |
Вопрос: Проблема с Disconnected RecordSet | Добавлено: 03.07.03 20:32 |
Автор вопроса: ![]() |
Привет всем! Братцы, выручайте! весь день провоевал, и без толку... :( Делаю запрос к SQL-Server, полученный RecordSet отсоединяю, базу закрываю. Этот висящий в памяти RecordSet фильтрую и показываю юзеру. Тут всё нормально. Проблема: при попытке добавить запись в этот RecordSet новая запись добавляется, НО в одни поля я могу внести значения, а в другие - нет, выпадает ошибка: "Multiple-step poeration generated errors. Check each status value". Доходит до маразма: в поле, все значения которого только слово "Server" не могу добавить запись со значением "Local" Вот как я получаю и отсоединяю RecordSet: Public Sub readAllForCmbProject(rsAllForCmbProject As ADODB.Recordset) Так пытаюсь добавлять новую запись: For intCounter = 0 To UBound(projectsListLocal()) - 1 Поля "Projektnummer" и "Projektname" - все OK Остальные поля - ругаются Почему одни поля - без проблем, а другие упёрлись? Как решить проблемку? Где же эти грабли? ![]() |
Ответы | Всего ответов: 3 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #1 | Добавлено: 03.07.03 23:05 |
Дык, это... Ты его обратно то подсоедени.. Set rsAllForCmbProject.ActiveConnection =conn rsAllForCmbProject.Update И еще одна весЧ. adLockBatchOptimistic. т.к. рекордсет у тебя отсоеденен, то обновлять он все должен пачкой, вот и ставь вышеозначенный лок. Да и открывать его в этом случае надо статическим. Вот так короче: rsAllForCmbProject.Open strQuery, conn, adOpenStatic, adLockBatchOptimistic |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 69 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 04.07.03 00:34 |
Здравствуй, MAGNUS Ответ интересный, завтра с утра попробую. НО: 1. Почему два поля работают нормально? Для новых записей эти поля заполняются без проблем. И почему остальные три при внесении значений в новую запись ругаются? По-моему, уж если работать, то всем, а если ругаться - так тоже всем... 2. На счет обновления: Ошибка-то лезет до команды Update, на rsAllForCmbProject("Pid").Value = projectsListLocal(intCounter).pid rsAllForCmbProject("PN").Value = CStr(projectsListLocal(intCounter).pnummer) 3. Если я из кода создаю аналогичный RecordSet и, например добавляю записи и заполняю поля, то всё работает нормально. Так у меня было с начала: Запрос --> получаю "присоединенный" RecordSet --> генерирую "отсоединённый" со структурой как у первого --> копирую данные из "присоединенного" в "отсоединённый" --> отключаюсь от базы, "присоединенный" исчезает, зато остаётся второй. 4. Может, что-то с самими полями? Что означает "Check each status value"? Тоесть, перевести я могу, то это значит? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #3 | Добавлено: 04.07.03 01:12 |
Действительно странно... Кинь мне его, я гляну. База в акцесе? Ее тоже давай. Только необходимое. Эта ошибка может быть вызвана очень многимни причинами. Например попытка заполнения поля имеющего автономер, или же если это поле у тебя связано с другим из другой таблицы(constraint) и ты пытаешься внести недопустимое значение. Автоматически оно внесено не будет а база пытается сохранить Iоntegrity, вот и ругается. Проверь эти вещи . |
Страница: 1 |
|