Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Builder + ADO - вопрос 
:(
    Опции темы
Vladus
Дата 17.1.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Всем доброго времени суток.

Пытаюсь связать приложение с базой аксес(при помощи ADO). Вобщем, связать таблицу базы с билдеровским компонентом удалось- данные отображаються. Теперь хочу вставить значение в базу вот таким действием:

Код

    ADOQuery1->SQL->Add("insert into t_table (ID,f_name,s_name) values (22, 's', 'v');");
    ADOQuery1->ExecSQL();


в базу добавляеться запись, но компонент не обновляеться(а должен ли он обновиться сам или нужно мое вмещательство?). Может я использую неэффективный метод? И пожалуйста поподробнее  smile 

Заранее благодарен за любую помощ
PM MAIL   Вверх
Данкинг
Дата 17.1.2009, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Vladus @  17.1.2009,  01:16 Найти цитируемый пост)
но компонент не обновляеться

Какой компонент - AdoTable, что ли? Ну, попробуй её переоткрыть.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vladus
Дата 17.1.2009, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Да, компонент - AdoTable. переоткрыть пробовал - не помагает  smile 
PM MAIL   Вверх
Данкинг
Дата 17.1.2009, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Vladus @  17.1.2009,  02:09 Найти цитируемый пост)
переоткрыть пробовал - не помагает 

Active=false/Active=true не помогает?!


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vladus
Дата 17.1.2009, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Цитата

Active=false/Active=true не помогает?!


нет, не помагает (: 

пробовал сделать вот так 

Код

ADOTable1->UpdateRecord();


получал ошибку при исполнении, что то вроде ADOTable1: Dataset not in edit or insert mode.
PM MAIL   Вверх
Данкинг
Дата 17.1.2009, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Тогда само AdoConnection попробуй переоткрыть...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vladus
Дата 17.1.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Данкинг, 

Цитата

Тогда само AdoConnection попробуй переоткрыть...


пробовал, не помагает. Использую вот такую конструкцию:
Код

    AnsiString Connect="..."//тут очень длинная строка;
    if (FileExists("db1.mdb")){
        ADOConnection1->Connected=false;
        ADOConnection1->ConnectionString=Connect;
        ADOConnection1->Connected=true;
        ADOConnection1->LoginPrompt = false;
    }
    ADOTable1->Active=False;
    ADOTable1->Active=True;

    ADOConnection1->KeepConnection = true;

PM MAIL   Вверх
Sharkfire
Дата 17.1.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 30.11.2006
Где: Одесса

Репутация: 2
Всего: 2



В таблице запись появляется ?  (проверял) ?
PM MAIL ICQ   Вверх
osmus
Дата 17.1.2009, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



По идеи должно работать  ADOTable1->Refresh();
PM MAIL   Вверх
Vladus
Дата 17.1.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Sharkfire, да проверял. в таблицу запись добавляется


osmus, к сожалению, не помагает. Даже пробовал сделать обновление по клику на другую кнопку - никакого результата :(

Также пробовал сделать добавление отдельной транзакцией:

Код

    ADOConnection1->BeginTrans();
    ADOQuery1->SQL->Add("insert into t_table (ID,f_name,s_name) values (105, 's', 'v');");
    ADOQuery1->ExecSQL();
       ADOConnection1->CommitTrans();


безрезультатно :(

PM MAIL   Вверх
Sharkfire
Дата 17.1.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 30.11.2006
Где: Одесса

Репутация: 2
Всего: 2



очень странно!
пробывал с другими БД\Таблицами\полями.. ?

может у тебя в запосе на вывод таблицы ошибка?
такое бывает когда делаешь пересечение таблиц

Это сообщение отредактировал(а) Sharkfire - 17.1.2009, 16:31
PM MAIL ICQ   Вверх
Vladus
Дата 17.1.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Sharkfire,

Цитата

пробывал с другими БД\Таблицами\полями.. ?

не пробовал, а стоит?

Цитата

может у тебя в запосе на вывод таблицы ошибка?
такое бывает когда делаешь пересечение таблиц

вы меня не совсем правильно поняли. Я вытаскиваю данные из таблицы не запросом. А просто использую набор ADOConnection, ADOTable, DataSet. Связываю их друг с другом и данные сами выводяться. Если честно, я не очень понимаю принцип работы этих компонентов, потому и не могу сам найти проблему. Может вы посоветуете какой то другой способ работы, может не использовать ADO, может попытаться делать sql запросы через ADOConnection а не через ADOSQL?
PM MAIL   Вверх
Данкинг
Дата 17.1.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Vladus @  17.1.2009,  17:06 Найти цитируемый пост)
может попытаться делать sql запросы через ADOConnection а не через ADOSQL? 

Ась? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vladus
Дата 17.1.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 1.2.2008

Репутация: нет
Всего: 4



Цитата

Ась? smile 


Код

ADOConnection1->Execute(bla, bla, bla);


Я ошибся, компонент называеться не ADOSQL, а ADOQuery
PM MAIL   Вверх
Данкинг
Дата 17.1.2009, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Запросы через ADOQuery и надо делать... smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.