| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Builder + ADO - вопрос |
| Автор: Vladus 17.1.2009, 01:16 | ||
| Всем доброго времени суток. Пытаюсь связать приложение с базой аксес(при помощи ADO). Вобщем, связать таблицу базы с билдеровским компонентом удалось- данные отображаються. Теперь хочу вставить значение в базу вот таким действием:
в базу добавляеться запись, но компонент не обновляеться(а должен ли он обновиться сам или нужно мое вмещательство?). Может я использую неэффективный метод? И пожалуйста поподробнее Заранее благодарен за любую помощ |
| Автор: Данкинг 17.1.2009, 02:07 |
Какой компонент - AdoTable, что ли? Ну, попробуй её переоткрыть. |
| Автор: Vladus 17.1.2009, 02:09 |
| Да, компонент - AdoTable. переоткрыть пробовал - не помагает |
| Автор: Данкинг 17.1.2009, 02:11 |
Active=false/Active=true не помогает?! |
| Автор: Vladus 17.1.2009, 03:02 | ||||
нет, не помагает (: пробовал сделать вот так
получал ошибку при исполнении, что то вроде ADOTable1: Dataset not in edit or insert mode. |
| Автор: Данкинг 17.1.2009, 03:05 |
| Тогда само AdoConnection попробуй переоткрыть... |
| Автор: Vladus 17.1.2009, 12:15 | ||||
Данкинг,
пробовал, не помагает. Использую вот такую конструкцию:
|
| Автор: Sharkfire 17.1.2009, 13:21 |
| В таблице запись появляется ? (проверял) ? |
| Автор: osmus 17.1.2009, 13:54 |
| По идеи должно работать ADOTable1->Refresh(); |
| Автор: Vladus 17.1.2009, 15:15 | ||
| Sharkfire, да проверял. в таблицу запись добавляется osmus, к сожалению, не помагает. Даже пробовал сделать обновление по клику на другую кнопку - никакого результата :( Также пробовал сделать добавление отдельной транзакцией:
безрезультатно :( |
| Автор: Sharkfire 17.1.2009, 16:29 |
| очень странно! пробывал с другими БД\Таблицами\полями.. ? может у тебя в запосе на вывод таблицы ошибка? такое бывает когда делаешь пересечение таблиц |
| Автор: Vladus 17.1.2009, 17:06 | ||||
Sharkfire,
не пробовал, а стоит?
вы меня не совсем правильно поняли. Я вытаскиваю данные из таблицы не запросом. А просто использую набор ADOConnection, ADOTable, DataSet. Связываю их друг с другом и данные сами выводяться. Если честно, я не очень понимаю принцип работы этих компонентов, потому и не могу сам найти проблему. Может вы посоветуете какой то другой способ работы, может не использовать ADO, может попытаться делать sql запросы через ADOConnection а не через ADOSQL? |
| Автор: Данкинг 17.1.2009, 17:21 | ||
Ась? |
| Автор: Vladus 17.1.2009, 18:20 | ||||
Я ошибся, компонент называеться не ADOSQL, а ADOQuery |
| Автор: Данкинг 17.1.2009, 19:38 |
| Запросы через ADOQuery и надо делать... |
| Автор: Dmi3ev 17.1.2009, 20:14 |
| Vladus, как вариант, попробуй с экзешником проделать все это (не через билдер запускать). при это переоткрывай таблицу, или соединение ... так же? |
| Автор: Vladus 17.1.2009, 22:33 |
| Dmi3ev Попробовал...переоткрывал и таблицу и соединение...Никаких изменений :( Если это принципиально, то у меня билдер 2009 |
| Автор: Данкинг 17.1.2009, 23:00 |
| Логически подумай: при закрытии соединения и открытии его вновь происходит подключение "заново" к базе. А в базе этой уже есть все те строчки, которые добавила программа (если они действительно добавляются, как ты говоришь). Так что, ищи, косяк где-то у тебя в коде, вероятно. |