Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
1

Добавление записи в таблицу через Edit

08.05.2015, 10:45. Просмотров 1801. Ответов 7
Метки нет (Все метки)

Всем привет. Знаю, что подобная тема не однократно рассматривалась, но пожалуйста помогите мне.
У меня есть база данных Access и есть поля для заполнения(Edit) на форме. Для добавления в таблицу использую такой код.
C++
1
String add = "INSERT INTO Tabl (ID, Authors, Boocks, Genres, Year, Company, Status, Info)values('3', " +QuotedStr(Edit1->Text) + ", " +QuotedStr(Edit5->Text)+ ", " +QuotedStr(Edit2->Text)+ ", " +QuotedStr(StrToInt(Edit3->Text))+ ", " +QuotedStr(Edit4->Text)+ ", " +QuotedStr(Edit6->Text)+ ", " +QuotedStr(Memo1->Text)+ ")";
Беда в том, что он не хочет добавлять данные.
Посмотрите, пожалуйста, и скажите, что тут нет так. Буду очень благодарен.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2015, 10:45
Ответы с готовыми решениями:

Добавление записи в базу данных через Edit
Здравствуйте есть база данных на c++ builder которая соединена с Interbase .DB...

Добавление записи в таблицу через ADOQuery
Здравствуйте) В моей программе таблица базы данных подключена к компоненту...

Добавление нового столбца в таблицу + работа с edit
Есть таблица, в приложении можно удалить, добавить, редактировать поля с...

Добавление информации в базу данных через ADOQuery вводимый через Edit
Не получается добавить информацию в таблицу, каждый Edit отвечает за отдельное...

Добавление данных через Edit
Всем здравствуйте, это снова я =) Имеется БД, соединил через АДО. Инфа...

7
Bit_Man
426 / 355 / 93
Регистрация: 24.04.2012
Сообщений: 1,405
Записей в блоге: 3
08.05.2015, 11:03 2
Цитата Сообщение от qozyrek Посмотреть сообщение
Беда в том, что он не хочет добавлять данные.
Да ты что, у-у-у--у какой Access нехороший.
Ошибки то хоть есть?
Цитата Сообщение от qozyrek Посмотреть сообщение
values('3'
ID - это текстовое поле?
0
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
08.05.2015, 11:26  [ТС] 3
Bit_Man, ошибок никаких не выдаёт. Просто не добавляет. При обновлении остаются те поля какие и были.

Добавлено через 30 секунд
Bit_Man,
Цитата Сообщение от Bit_Man Посмотреть сообщение
ID - это текстовое поле?
число
0
Bit_Man
426 / 355 / 93
Регистрация: 24.04.2012
Сообщений: 1,405
Записей в блоге: 3
08.05.2015, 17:35 4
ну и на ... ты в него символ пишешь?!!!
Покажи полностью код, а не только строку запроса
0
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
09.05.2015, 22:35  [ТС] 5
Bit_Man, даже и без кавычек оно, почему-то, не добавляет.
Кусок кода:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button5Click(TObject *Sender) {
String add = "INSERT INTO Tabl (ID, Authors, Boocks, Genres, Year, Company, Status, Info)values(3, " +QuotedStr(Edit1->Text) + ", " +QuotedStr(Edit5->Text)+ ", " +QuotedStr(Edit2->Text)+ ", " +QuotedStr(StrToInt(Edit3->Text))+ ", " +QuotedStr(Edit4->Text)+ ", " +QuotedStr(Edit6->Text)+ ", " +QuotedStr(Memo1->Text)+ ")";
 
DataModule2->ADOQuery1->SQL->Clear();
                        DataModule2->ADOQuery1->SQL->Add(add);
                        DataModule2->ADOQuery1->Open();
}

Я по такому же принципу делал поиск, так всё работает.
0
MrMajki
3 / 3 / 4
Регистрация: 27.05.2013
Сообщений: 33
15.05.2015, 11:12 6
Лучший ответ Сообщение было отмечено qozyrek как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
Form1->ADOQuery1->Close();
Form1->ADOQuery1->SQL->Clear();
Form1->ADOQuery1->SQL->Add("Insert Into Tab1 (ID, Authors, Boocks, Genres, Year, Company, Status, Info) Values (:o1, :o2, :03, :o4, :o5, :o6, :o7, :o8)");
Form1->ADOQuery1->Parameters->ParamByName("o1")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o2")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o3")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o4")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o5")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o6")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o7")->Value=Edit1->Text;
Form1->ADOQuery1->Parameters->ParamByName("o8")->Value=Edit1->Text;
Form1->ADOQuery1->ExecSQL();
Только смотри за типами полей в БД. Там где нужно преобразуй значение Edit->Text в нужный тип.
1
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
15.05.2015, 11:36 7
поле ID если это счётчик, то добавлять не надо, оно само автоинкреминируется
1
qozyrek
6 / 6 / 5
Регистрация: 19.11.2012
Сообщений: 438
17.05.2015, 15:38  [ТС] 8
MrMajki, спасибо огромное, порпобую Ваш вариант.
0
17.05.2015, 15:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2015, 15:38

Добавление записи в 2 таблицу
Всем привет. Ребят помогите пожалуйста в c++ Builder не давно начал работать ...

Добавление записи в таблицу
ВСем привет! Ребят, помогите плиз. Я уже не знаю как быть. Пытаюсь создать на...

Добавление записи в таблицу Access
Пытаюсь добавить запись в таблицу Клиент Form4->ADOQuery4->Close();...


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

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

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