Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2013, 06:20   #1
skorik-1992
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 19
По умолчанию Не обновляется значения счётчика после вставки методом Insert(ClientDataSet)

БД подключена к локальному сереверу на котором стоит БД MySQL. компоненты подключения:
SQLConnection+SQLQuery+DataSetProva ider+ClientDataSet+DataSo urce+DbGrid
В таблице присутствует поле id - счётчик.
Грабли в следующем,

Добавляю новую запись следующим образом:
Код:
//Регестрируем нового пользователя
    customersForm->ClientDataSet_ind->Insert();//вставляем новую запись
    customersForm->ClientDataSet_ind->FieldByName("id_klient")->AsInteger = NULL;
    customersForm->ClientDataSet_ind->FieldByName("surname")->AsString = EdSurname->Text;
    customersForm->ClientDataSet_ind->FieldByName("name")->AsString = EdName->Text;
    customersForm->ClientDataSet_ind->FieldByName("patronymic")->AsString = EdPatronymic->Text;
    customersForm->ClientDataSet_ind->FieldByName("telephone")->AsString = EdTelephone->Text;
    customersForm->ClientDataSet_ind->FieldByName("email")->AsString = EdEmail->Text;
    customersForm->ClientDataSet_ind->FieldByName("date_reg")->AsDateTime = EdRegDate->Text;
    customersForm->ClientDataSet_ind->ApplyUpdates(-1);//обновляем
В итоге поле ID в ДБ гриде отображается 0, а в БД записывается как положено.
А при последующих добавлениях записей, поля ID так же идут с 0 и происходит ошика, т.к. это поле указанно как ключевое.

Ещё пробовал вот так:
Код:
//Регестрируем нового пользователя
    customersForm->ClientDataSet_ind->Insert();//вставляем новую запись
    customersForm->ClientDataSet_ind->FieldByName("id_klient")->AsInteger = NULL;
    customersForm->ClientDataSet_ind->FieldByName("surname")->AsString = EdSurname->Text;
    customersForm->ClientDataSet_ind->FieldByName("name")->AsString = EdName->Text;
    customersForm->ClientDataSet_ind->FieldByName("patronymic")->AsString = EdPatronymic->Text;
    customersForm->ClientDataSet_ind->FieldByName("telephone")->AsString = EdTelephone->Text;
    customersForm->ClientDataSet_ind->FieldByName("email")->AsString = EdEmail->Text;
    customersForm->ClientDataSet_ind->FieldByName("date_reg")->AsDateTime = EdRegDate->Text;
    customersForm->ClientDataSet_ind->ApplyUpdates(-1);//обновляем
    customersForm->ClientDataSet_ind->Refresh;
Эти команды происходят по нажатию кнопки, и получается при первом нажатии, новая запись в ДБгриде не отображается, как будто я ничего и не добавлял, а в БД заносится, а при последующих нажатиях, все записи заносятся как нужно, с нужным ID, правда не учитывая первой записи, которая так и не отразилась.
skorik-1992 вне форума Ответить с цитированием
Старый 19.01.2013, 11:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
SQLQuery
Вот что пишет Хелп:
Цитата:
TQuery components do not support the Refresh method if the query is not “live”. To refresh a static TQuery, close and reopen the dataset.
Может это как раз твой случай?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2013, 14:20   #3
skorik-1992
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 19
По умолчанию

Хм, ну я этот метод использую для clientdataset, а не для query. Да и к тому же, записи то добавляются
skorik-1992 вне форума Ответить с цитированием
Старый 19.01.2013, 14:29   #4
skorik-1992
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 19
По умолчанию

ахахах) блин, точно, сделал такую связку:
SQLconnection+SQLDataSet(а был SQLQuery)+DataSetProvaider+DataSetC lient и всё круто добавляется, спаси большое, весь день тупил из-за такой глупости
skorik-1992 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++]: сортировка методом вставки erfo Помощь студентам 3 23.05.2012 16:13
Массивы в С++. Сортировка методом вставки Azzzza Помощь студентам 0 05.05.2011 14:40
И снова я. Сортировка методом вставки! xitrec1zaraza Общие вопросы C/C++ 3 07.12.2010 09:48
Уподрядочить члены последовательности методом вставки. xitrec1zaraza Помощь студентам 0 27.11.2010 20:45
Не обновляется поле при выборе значения Agapov_stas Microsoft Office Access 5 29.01.2010 10:29