Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вставка новой записи

2.0K
23 ноября 2002 года
evasya
8 / / 23.11.2002
Привет всем! Помогите пожалуйста разобраться в чем дело.
У меня такая проблема: я пишу программу, работающую с БД Paradox.
Дело в том, что когда я хочу перевести Query1 в режим вставки новой записи в
таблицу у меня все время выходит такое сообщение:
EDataBaseError width message 'Query1: Cannot modify a read-only dataset'.
после таких строк:
Query1->Open();
Query1->Insert();
которые я написал в обработчике события нажатия на кнопку.
В чем моя проблема?
Как же мне используя Query1 вставить новую запись.
1.7K
23 ноября 2002 года
Mark
114 / / 21.11.2002
Цитата:
Originally posted by evasya
Привет всем! Помогите пожалуйста разобраться в чем дело.
У меня такая проблема: я пишу программу, работающую с БД Paradox.
Дело в том, что когда я хочу перевести Query1 в режим вставки новой записи в
таблицу у меня все время выходит такое сообщение:
EDataBaseError width message 'Query1: Cannot modify a read-only dataset'.
после таких строк:
Query1->Open();
Query1->Insert();
которые я написал в обработчике события нажатия на кнопку.
В чем моя проблема?
Как же мне используя Query1 вставить новую запись.



Попробуй предложением SQL, то есть:
Query1->Close();
Query1->SQL->Text = "insert into таблица values(значение1, значение2, ...)";
Query1->ExecSQL();

И вообще, на мой взгляд, пользоваться собственно SQL командами надежнее, чем Билдеровскими аналогами.

293
25 ноября 2002 года
SEDEGOFF
586 / / 06.10.2002
Все дело в том что Query всегда открывается в режиме чтения или может исполнять команду на вставку на языке SQL. Как это делать смотри выше.
Но если ты пользуешся локальной БД то можешь воспользоваться компонентом Table.
358
25 ноября 2002 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by evasya
Привет всем! Помогите пожалуйста разобраться в чем дело.
У меня такая проблема: я пишу программу, работающую с БД Paradox.
Дело в том, что когда я хочу перевести Query1 в режим вставки новой записи в
таблицу у меня все время выходит такое сообщение:
EDataBaseError width message 'Query1: Cannot modify a read-only dataset'.
после таких строк:
Query1->Open();
Query1->Insert();
которые я написал в обработчике события нажатия на кнопку.
В чем моя проблема?
Как же мне используя Query1 вставить новую запись.


Если данные собираешь из одной таблицы, то можно выставить
Query1->RequestLife = true;
И все будет работать.
Но правильнее будет использовать компонент UpdateSQL, в свойствах InsertQuery,UpdateQuery,DeleteQuery которого прописать необходимые запросы, А Query1->UpdateObject настроить на этот компонент.

295
26 ноября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by moonmike

Если данные собираешь из одной таблицы, то можно выставить
Query1->RequestLife = true;
И все будет работать.
Но правильнее будет использовать компонент UpdateSQL, в свойствах InsertQuery,UpdateQuery,DeleteQuery которого прописать необходимые запросы, А Query1->UpdateObject настроить на этот компонент.


UpdateSQL работает криво. Не знаю как в парадоксе(не пробовал), а вот если база на Interbase, то UpdateSQL будет работать, только если все поля таблицы - not null. Вот так. В свое время я долго промучился, пытаясь понять в чём же ошибка.

358
27 ноября 2002 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by gray_k

UpdateSQL работает криво. Не знаю как в парадоксе(не пробовал), а вот если база на Interbase, то UpdateSQL будет работать, только если все поля таблицы - not null. Вот так. В свое время я долго промучился, пытаясь понять в чём же ошибка.


Ох, даже не знаю что сказать. У меня все нормально работало. И на Парадоксе и на Интербэйзе, не зависимо от того not null поля или нет.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог