Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3

Insert + Edit в IBDataSet

04.05.2012, 06:28. Показов 6177. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день. Такая проблема. Есть таблица с 5 полями. Делаю Insert 3 первых вставляю и эту же новую запись сразу делаю Edit меняю 2 последних (спросите зачем?! проверяю работоспособность. Insert на одной кнопке Edit на другой). Так вот в DataSet все нормально. Закрываю и открываю форму, есть только данные Insert'а , а Edit'а нет. Сам Edit без Insert'а нормально работает. В чем проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2012, 06:28
Ответы с готовыми решениями:

Not in edit or insert mode
Вроде все делает как надо,но в конце выводит ошибку "DataSet not in edit or insert mode" что не так???Помогите,пожалуйста,исправить.... ...

Dataset not in edit or insert mode
есть 2 таблицы :поставка, возврат и окно с помощью которого добавляем записи из поставки в возврат при добавлении возникает...

Dataset not in edit or insert mode
Form3.ADOQuery1.Active:=False; Form3.ADOQuery1.SQL.Clear; Form3.ADOQuery1.SQL.Add('SELECT * FROM WHERE =:b1'); ...

26
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
04.05.2012, 12:35  [ТС]
Студворк — интернет-сервис помощи студентам
IBDac не юзал, пробовал FIBPlus поставить, но помойму он у меня криво встал (или руки кривые). все компаненты стандартные.
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
04.05.2012, 12:39
Bit_Man,
вот это говорит, что вы производите обновление по ключевому полю id_key
SQL
1
2
3
4
UPDATE T_STAC_PLAN_OBSL SET
        id_doctor_out = :id_doctor_out,
        date_out = CURRENT_DATE
WHERE id_key = :old_id_key
вот это говорит, что вы вставляете запись БЕЗ этого поля.
SQL
1
2
INSERT INTO T_STAC_PLAN_OBSL (id_priem3, id_uslcln, id_doctor_in)
VALUES(:id_priem3, :id_uslcln, :id_doctor_in)
возможно оно генерируется триггере, возможно еще что-то.
факт только в том, что новая запись в курсоре вашего датасета вероятно не содержит значение в поле id_key, либо содержит, но это значение не имеет ничего общего с РЕАЛЬНО хранимым значением в БД, т.к. вы его не передали через insert
1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
04.05.2012, 18:47  [ТС]
Цитата Сообщение от arni Посмотреть сообщение
возможно оно генерируется триггере, возможно еще что-то.
факт только в том, что новая запись в курсоре вашего датасета вероятно не содержит значение в поле id_key
arni, Про генерацию еще раз GeneratorField (здесь указывается поле id_key, генератор, и на сколько генерировать (число, обычно всегда 1) ) - Apply Event (при событии) - OnPost (есть еще "на сервере" и "при новой записи"). говорю же все поля заполняются!!!
Цитата Сообщение от arni Посмотреть сообщение
не имеет ничего общего с РЕАЛЬНО хранимым значением в БД
Вероятней всего. Проверю еще раз только завтра.

Добавлено через 19 минут
Видимо получается так: генерируется новое значение id_key, записывается в DataSet, а при выполнении я его не передаю, в DataSet все отлично, но только в БД опять срабатывает генератор при вставке и получается еще +1. Т.е. если в DataSet после insert id_key = 1, то БД id_key = 2. Глупая ошибка. (кстати у меня уже было так, но тогда сам догадался проверить). Но тут видимо ступил. Проверю еще раз только завтра. Если так оно и есть обязательно скажу "спасибо"
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.05.2012, 20:50
Bit_Man, посмотрите в сторону метода TIBDataSet.ExecSQL
1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
05.05.2012, 04:11  [ТС]
И так arni был прав. получается вот такой InsertSQL
SQL
1
2
INSERT INTO T_STAC_PLAN_OBSL (id_key, id_priem3, id_uslcln, id_doctor_in)
VALUES(:id_key, :id_priem3, :id_uslcln, :id_doctor_in)
Все работает если CachedUpdates = false . А вот если CachedUpdates = true опять та же хрень
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
05.05.2012, 11:11
Bit_Man, CachedUpdates - ну так это по идее признак пакетированной обработки, и если он установлен в True, изменения не сразу пишутся напрямую в базу...
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
05.05.2012, 15:28  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
ну так это по идее признак пакетированной обработки, и если он установлен в True, изменения не сразу пишутся напрямую в базу
это я знаю, ApplyUpdate делаю, переоткрываю, но Едита нет на новом Инсерте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2012, 15:28

Dataset not in Edit or Insert mode
Код: if not (qry.DataSource.DataSet.State in ) and (lbl14.Caption <> 'Зображення...') then begin qry.SQL.Clear; ...

Database not in Edit or Insert mode
DBGrid1.DataSource.DataSet.FieldByName('T_Kol_vo').Clear; DBGrid1.DataSource.DataSet.Edit; DBGrid1.DataSource.DataSet.Insert; ...

ADODataSet1: Dataset not in edit or insert mode
Здравсвуйте, сразу извиняюсь за возможный повтор темы. Дело в кнопке выбора документа для загрузки его в дальнейшем в базу...

Ошибка: Dataset not in edit or insert mode
Вообщем такая проблема, задача из одной колонки с количеством (предметов) отнять другую колонку с количеством (тех же предметов), но они в...

Ошибка Dataset not in edit or insert mode
Здравствуйте! Нужно в переменную типа стринг, занести значение поля , пробовал разными способами, но всегда получаю один и ту же ошибку. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru