Вставка новой записи
У меня такая проблема: я пишу программу, работающую с БД Paradox.
Дело в том, что когда я хочу перевести Query1 в режим вставки новой записи в
таблицу у меня все время выходит такое сообщение:
EDataBaseError width message 'Query1: Cannot modify a read-only dataset'.
после таких строк:
Query1->Open();
Query1->Insert();
которые я написал в обработчике события нажатия на кнопку.
В чем моя проблема?
Как же мне используя Query1 вставить новую запись.
Привет всем! Помогите пожалуйста разобраться в чем дело.
У меня такая проблема: я пишу программу, работающую с БД 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 командами надежнее, чем Билдеровскими аналогами.
Но если ты пользуешся локальной БД то можешь воспользоваться компонентом Table.
Привет всем! Помогите пожалуйста разобраться в чем дело.
У меня такая проблема: я пишу программу, работающую с БД 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 настроить на этот компонент.
Если данные собираешь из одной таблицы, то можно выставить
Query1->RequestLife = true;
И все будет работать.
Но правильнее будет использовать компонент UpdateSQL, в свойствах InsertQuery,UpdateQuery,DeleteQuery которого прописать необходимые запросы, А Query1->UpdateObject настроить на этот компонент.
UpdateSQL работает криво. Не знаю как в парадоксе(не пробовал), а вот если база на Interbase, то UpdateSQL будет работать, только если все поля таблицы - not null. Вот так. В свое время я долго промучился, пытаясь понять в чём же ошибка.
UpdateSQL работает криво. Не знаю как в парадоксе(не пробовал), а вот если база на Interbase, то UpdateSQL будет работать, только если все поля таблицы - not null. Вот так. В свое время я долго промучился, пытаясь понять в чём же ошибка.
Ох, даже не знаю что сказать. У меня все нормально работало. И на Парадоксе и на Интербэйзе, не зависимо от того not null поля или нет.