Консультация № 91846
18.06.2007, 03:28
0.00 руб.
0 2 2
Здратсти всем
пытаюсь прогрммировать на Borland C++ builde, подскажите как вставить в таблицу запись, с данными из Edit1 и Edit2,
пытался строкой Insert Into opl.db (fild1) Values (Ediit1->Text), так он ругается на Ediit1->Text, подскажите т/к/ я уже замучился, все п

Обсуждение

Неизвестный
18.06.2007, 08:18
общий
это ответ
Здравствуйте, Michail_bal!
Компилятор ругается, потому что значение Edit1->Text есть значение типа AnsiString, которое не может быть использовано напрямую.
Попробуйте вот так: INSERT INTO opl.db (fild1) VALUES (Edit1->Text.c_str()).
Неизвестный
19.06.2007, 12:42
общий
это ответ
Здравствуйте, Michail_bal!
Во первых, конструкция команда «insert into» преднозначена для выполнениея кода SQL и к С++Builder не имеет отношения. Если хотите использовать такую команду, надо тогда сформировать правильно запрос в виде строки. Например:
String s = “Insert Into opl.db (fild1) Values (‘“+Ediit1->Text+”’ )”;
Или, коль уж работаем на С/С++:
Char s[255] = {0};
Sprintf(s,” Insert Into opl.db (fild1) Values (‘%s’)”, Ediit1->Text.c_str());
//для компонентов TQuery
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(s);
ADOQuery1->ExecSQL();
// ИЛИ для выполнения кода на сервере
ADOCommand1->CommandText = s;
ADOCommand1->Execute();

Иначе, просто надо пользоваться свойствами Insert() или InsertRecord().
Tbl->Insert();
// работаем/ добовляем данные в таблицу
Tbl->Post(); // сохраняем записи

Для InsertRecord:
Tbl->InsertRecord(ARRAYOFCONST((Edit1->Text,Edit2->Text, Null, Null, Null, Null, Null, Null,NULL)));
В этом случае, надо вводить все значения, если их нет – пишем NULL но все поля должны быть задействованы.

Форма ответа