Добавление записи Query1.Insert
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Здравствуйте!
Подскажите пожалуйста, как можно добавить запись с помощь компонента Query?
Я делал это так.
На форме лежит DBGrid1->DataSource1->Query1 (они так связаны). И прсто писал Query1.Insert. Но выскакивает ошибка:
Query1: Cannot modify a read-only dataset.
Что я делаю неправильно? Как вообще грамотно добавить запись с помощью Query?
Заранее благодарен!
Подскажите пожалуйста, как можно добавить запись с помощь компонента Query?
Я делал это так.
На форме лежит DBGrid1->DataSource1->Query1 (они так связаны). И прсто писал Query1.Insert. Но выскакивает ошибка:
Query1: Cannot modify a read-only dataset.
Что я делаю неправильно? Как вообще грамотно добавить запись с помощью Query?
Заранее благодарен!
если у тебя запрос не редактируемый то придется использовать SQL запрос типа
INSERT INTO database_name (fiel_name1,field_name2...) VALUES (val1,val2...)
//////////
где val1 например это 'иванов' т.е. тто что надо вставить
INSERT INTO database_name (fiel_name1,field_name2...) VALUES (val1,val2...)
//////////
где val1 например это 'иванов' т.е. тто что надо вставить
у тебя Database стоит ReadOnly=true; сделай ReadOnly=false;Pepper писал(а): На форме лежит DBGrid1->DataSource1->Query1 (они так связаны). И прсто писал Query1.Insert. Но выскакивает ошибка:
Query1: Cannot modify a read-only dataset.
Что я делаю неправильно? Как вообще грамотно добавить запись с помощью Query?
форма такая:
insert into имя_таблицы(здесь, столбы, таблицы) values (здесь, данные, если, 'строковые' )
дальше в этом духе

maga from gunib
А запросом же не получится запись добавить, данные-то которые добавляю пока не известны, или я не прав?
Я хочу сделать добавление новой записи по аналогии с Table.Insert.
Как так можно сделать?
А что значит "не редактируемый запрос"? ЧТо с ним делать?
А когда я в Database пытаюсь проставить ReadOnly:=True выскакивает ошибка: "Access violation ..."
Я хочу сделать добавление новой записи по аналогии с Table.Insert.
Как так можно сделать?
А что значит "не редактируемый запрос"? ЧТо с ним делать?
А когда я в Database пытаюсь проставить ReadOnly:=True выскакивает ошибка: "Access violation ..."
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Не любой запрос в принципе может являться редакрируемым, т.е. допускать операции удаления, добавления и обновления (изменения) над набором записей, которые вернул данный запрос.
Это означает, что не при любом значении SQL можно сделать ReadOnly=True.
Во вмногом это зависит от базы, например, в Oracle, при определенных условиях, запрос объединяющий несколько таблиц является обновляемым, в Paradox - никогда. Однако в любом случае DBE должен позволять редактировать запрос вида
SELECT ... FROM t1 WHERE ... ORDER BY ..., если в select-е нет агрегатных функций (sum, avg, count и т.п.)
Это означает, что не при любом значении SQL можно сделать ReadOnly=True.
Во вмногом это зависит от базы, например, в Oracle, при определенных условиях, запрос объединяющий несколько таблиц является обновляемым, в Paradox - никогда. Однако в любом случае DBE должен позволять редактировать запрос вида
SELECT ... FROM t1 WHERE ... ORDER BY ..., если в select-е нет агрегатных функций (sum, avg, count и т.п.)
Если в Select присутствует ORDER BY - возвращаемый набор Read ONLY!
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Apophis, база какая? А LiveQuery:=true пробовали?
В любом случае есть такая вешь как TUpdateSQL, который решает эту проблему, и делает запрос обновляемым.
В любом случае есть такая вешь как TUpdateSQL, который решает эту проблему, и делает запрос обновляемым.
База Парадокс, LiveQuery:=true; Но даже в книжках перечислены условия при которых возвращаемый набор имеет статус readOnly. Вот один из них - присутствие в в запросе условия сортировки.