Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder и базы данных

Войти
Регистрация
Восстановить пароль
 
КсенияК
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
#1

Ввод данных в БД - C++ Builder БД

16.05.2013, 18:22. Просмотров 592. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста с кодом! Необходимо обеспечить ввод данных в БД. А когда надо вводить значение первичного ключа в таблицу, предусмотреть программный код рассчитывающий соответствующее значение ключа.
У меня получился такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ADOUniv->Active=false;
   int k;
          TbNewUniv->Open();
          k=TbNewUniv->FieldByName("univ_id")->AsInteger;
          TbNewUniv->Insert();
          TbNewUniv->FieldByName("univ_id")->AsInteger=k+1;
          TbNewUniv->FieldByName("univ_name")->AsString=Name->Text;
          TbNewUniv->FieldByName("rating")->AsString=Rating->Text;
          TbNewUniv->FieldByName("city")->AsString=Gorod->Text;
   if((Name->Text=="")||(Rating->Text=="")||(Gorod->Text==""))
   {
      TbNewUniv->Cancel();
      ShowMessage("Введены не все поля!");
   }
       else
   {
          TbNewUniv->Post();
          ShowMessage("Информация успешно введена!");
          Name->Text="";
          Rating->Text="";
          Gorod->Text="";
   }
          TbNewUniv->Close();
          ADOUniv->Active=true;
Выходит ввести одну запись. Но когда я пытаюсь ввести запись второй раз, то мне выскакивает сообщение: "Изменения не были успешно внесены из-за повторяющихся значений в индексе, ключевых полях или связях...."
Что у меня не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 18:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод данных в БД (C++ Builder БД):

Ввод данных - C++ Builder
Ребят, я только-только приступил к билдеру - уже голова идет кругом - не могу понять как через формы (например Мемо) вводить числа и...

Ввод-вывод данных - C++ Builder
Добрый день ув. форумчане, брату необходимо для допуска к зачету составить программу на Builder C++, он дуб дубом. Необходимо "Составить...

Ввод данных через StringGrid - C++ Builder
Подскажите пожалуйста как в билдере будет выглядеть код заполнения вручную динамического двумерного массива через StringGrid???

Ввод данных в ячейку из DBComboBox - C++ Builder БД
Имеется записи в Item, но никак не могу сделать, там что выбираешь запись из раскрывающего списка, а она появляется в ячейку. Возможно...

Ввод данных в CSpinEdit вручную - C++ Builder
Нужно ввести данные в CSpinEdit с клавиатуры, но вылетает ошибка, что невозможно переконвертировать пустую строку. Так как же ввести с...

Ввод всех данных с Edit - C++ Builder
Если Edit-ы не введены выводит сообщение " Заполните все поля" помогите решить проблему : при введенном Edit1 и Edit5 не выводится...

5
Sasha
4886 / 2361 / 246
Регистрация: 05.06.2008
Сообщений: 7,423
Записей в блоге: 3
16.05.2013, 20:00 #2
Тип поля ключа счётчик?
0
КсенияК
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
16.05.2013, 20:12  [ТС] #3
Нет. Числовой...
0
Sasha
4886 / 2361 / 246
Регистрация: 05.06.2008
Сообщений: 7,423
Записей в блоге: 3
16.05.2013, 21:30 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
   int k = 0;//объявить глобально
      
   if((Name->Text=="")||(Rating->Text=="")||(Gorod->Text==""))
   {
      ShowMessage("Введены не все поля!");
      return;
   }
       else
   {      
          ADOUniv->Active=false;
          TbNewUniv->Open();
          k=TbNewUniv->FieldByName("univ_id")->AsInteger;
          TbNewUniv->Insert();
          TbNewUniv->FieldByName("univ_id")->AsInteger=k+1;
          TbNewUniv->FieldByName("univ_name")->AsString=Name->Text;
          TbNewUniv->FieldByName("rating")->AsString=Rating->Text;
          TbNewUniv->FieldByName("city")->AsString=Gorod->Text;
          TbNewUniv->Post();
          ShowMessage("Информация успешно введена!");
          Name->Text="";
          Rating->Text="";
          Gorod->Text="";
   }
          TbNewUniv->Close();
          ADOUniv->Active=true;
1
КсенияК
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
17.05.2013, 21:32  [ТС] #5
Всё равно та же ошибка... Я забыла сказать, что уже имеются кое-какие данные в БД. Может из-за этого?
0
КсенияК
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 15
20.05.2013, 16:20  [ТС] #6
Уже сама разобралась) Но спасибо!
0
20.05.2013, 16:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2013, 16:20
Привет! Вот еще темы с ответами:

Эргономичный ввод данных в компьютер - C++ Builder
Приветствую всех. На работе ежемесячно приходится вводить данные в файл Excel из различных источников: из других таблиц Excel, из...

Возобновить ввод данных в недоступном компоненте - C++ Builder
Здравствуйте! Мне нужно решить следующую задачу. Имеется недоступный компонент Edit1 (Enabled = false), который выдает букву в соответствии...

Ввод данных в стороннее приложение не с клавиатуры - C++ Builder
у меня есть готовая *.exe, в которой осуществляется запись и чтение (вид...

Запрет на ввод данных вручную в Edit - C++ Builder БД
Как запретить ввод данных в Edit вручную? Нужно чтобы данные попадали в Edit только та ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.