Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Плиз, Хелп! Создание (INSERT) новых записей в таблице(Builder C++ и MySQL)

10K
17 июня 2005 года
novichok
6 / / 22.04.2005
Помогите кто чем может:roll:
Пишу приложение на Builder C++, БД - MySQL...
Вопрос такой: как лучше всего забить данные в таблицу, например, из полей Edit1?
Поясню: Создадим форму, кинем на нее два эдита и кнопку ("Добавить"). У нас есть в базе таблица из двух полей, в которые нужно добавлять данные из полей Edit1 и Edit2 по нажатию кнопки. (Что может быть проще):)
Обычно я делаю так: Создаю ADOQuery, делаю запрос
ADOQuery1->SQL->Text="SELECT * FROM table1";
ADOQuery1->Open();
Затем пишу:
ADOQuery1->Insert
...->FieldValue["row1"]=Edit1->Text;
...
ADOQuery1->Post
Все нормально получается. А теперь пробую так
(вместо проделанного выше):
ADOQuery1->SQL->Text="INSERT INTO `Table1` (`row1`, `row2`) VALUES ('"+Edit1->Text+"', '"+Edit2->Text+"')";
ADOQuery1->ExecSQL();
И нифига не работает:{
Выдает ошибку: "бла бла бла... an Error in SQL sintax ... 'я`' at line 1 "
Откуда там 'я' взялось не пойму
А тотже запрос в БД палит.
Че делать???
Или плюнуть на запросы и делать через ADOQ..->Insert ?
А может еще способы есть по-лучше?;)
Вообщем, помогите, кто чем может! :)
4.2K
17 июня 2005 года
Крыс
98 / / 06.05.2005
Проверь, может просто тип данных не совпадает.
И кстати посмотри в отладчике текст sql-запроса..
И в каком столбце ошибка.. Оч похоже на грамматическую
303
17 июня 2005 года
makbeth
1.0K / / 25.11.2004
INSERT INTO `Table1` (`row1`, `row2`) - мож все-таки без кавычек?
10K
17 июня 2005 года
novichok
6 / / 22.04.2005
Цитата:
Originally posted by Крыс
Проверь, может просто тип данных не совпадает.
И кстати посмотри в отладчике текст sql-запроса..
И в каком столбце ошибка.. Оч похоже на грамматическую


Вся фишка вот в чем: откроем MySQLCC (Control Center)и напишем там простенький SQL-запрос: INSERT INTO `Spec` (`id_spec`, `s_name`) VALUES (NULL, '') - выполнить, ГОТОВО! Создается новая строка в таблице Spec.. Т.к. поле id_spec - autoincrement - оно содержит цифру, а второе просто пустое. Теперь копирую этот запрос в ADOQuery->SQL->Text="..."; И... облом:( Толи я ЕБ..утый, толи лыжи не едутX)-
Кстати, почему-то с запроами SELECT такой херни ВООБЩЕ НЕ ВОЗНИКАЕТ:!!!:

4.2K
17 июня 2005 года
Крыс
98 / / 06.05.2005
Вот пример почти из хелпа.. Может поможет...

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Delete from Country where Name = 'Argentina'");
ADOQuery1->ExecSQL();
2.1K
17 июня 2005 года
greyich
117 / / 02.02.2005
Цитата:
Originally posted by novichok
Вся фишка вот в чем: откроем MySQLCC (Control Center)и напишем там простенький SQL-запрос: INSERT INTO `Spec` (`id_spec`, `s_name`) VALUES (NULL, '') - выполнить, ГОТОВО! Создается новая строка в таблице Spec.. Т.к. поле id_spec - autoincrement - оно содержит цифру, а второе просто пустое. Теперь копирую этот запрос в ADOQuery->SQL->Text="..."; И... облом:( Толи я ЕБ..утый, толи лыжи не едутX)-
Кстати, почему-то с запроами SELECT такой херни ВООБЩЕ НЕ ВОЗНИКАЕТ:!!!:



погоди, если id_spec у тебя инкремент (скорее всего ключ таблицы), то и не трогай его. оно само ... производится :).

делай

sql_text = "insert into spec (s_name) values ('"+ edit1->Text + "')" ;

10K
17 июня 2005 года
novichok
6 / / 22.04.2005
Цитата:
Originally posted by greyich
погоди, если id_spec у тебя инкремент (скорее всего ключ таблицы), то и не трогай его. оно само ... производится :).

делай

sql_text = "insert into spec (s_name) values ('"+ edit1->Text + "')" ;



Спасибо, ребята! Буду пробовать... И еще такой вопрос: как в Builder'е сделать соединение строк... Т.е. в Delphi так:
str:string;
str:='первая строка'+
+', а это вторая';
Работает и на выходе получается цельная строчка
-> первая строка, а это вторая

Теперь пробую в Билдере:
AnsiString str;
str = "первая строка"+
+", а это вторая";
компилятор выводит ошибку...
Короче говоря, как в Builder C++ сделать конкатенацию строк, а не лепить все в одну длиной в поезд?;)

4.2K
17 июня 2005 года
Крыс
98 / / 06.05.2005
а что именно говорит компилятор?
2.1K
17 июня 2005 года
greyich
117 / / 02.02.2005
Цитата:
Originally posted by novichok
Спасибо, ребята! Буду пробовать... И еще такой вопрос: как в Builder'е сделать соединение строк... Т.е. в Delphi так:
str:string;
str:='первая строка'+
+', а это вторая';
Работает и на выходе получается цельная строчка
-> первая строка, а это вторая

Теперь пробую в Билдере:
AnsiString str;
str = "первая строка"+
+", а это вторая";
компилятор выводит ошибку...
Короче говоря, как в Builder C++ сделать конкатенацию строк, а не лепить все в одну длиной в поезд?;)



поставь один плюс
AnsiString str;
str = "первая строка" + ", а это вторая";

или на худой конец используй знак & (но это немного другое...)

1.6K
18 июня 2005 года
Grom2025
82 / / 20.03.2003
Цитата:
Originally posted by novichok
Спасибо, ребята! Буду пробовать... И еще такой вопрос: как в Builder'е сделать соединение строк... Т.е. в Delphi так:
str:string;
str:='первая строка'+
+', а это вторая';
Работает и на выходе получается цельная строчка
-> первая строка, а это вторая

Теперь пробую в Билдере:
AnsiString str;
str = "первая строка"+
+", а это вторая";
компилятор выводит ошибку...
Короче говоря, как в Builder C++ сделать конкатенацию строк, а не лепить все в одну длиной в поезд?;)



Нужно вот так:

 
Код:
String sql = "Select * From [myTable] \
              Where ([Uslovie] = 1) \
              And   ([Uslovie2] = 2)";


Попробуй!
10K
19 июня 2005 года
novichok
6 / / 22.04.2005
Спасибо!:)
66K
22 декабря 2010 года
ivankrljov
1 / / 22.12.2010
Вот мой код по добавлению
 
Код:
AnsiString s = "insert into TEST1(НОМЕР, ИМЯ, ФАМИЛИЯ) values('" + Edit2->Text + "','" + Edit3->Text + "','" + Edit4->Text + "')";
   OraQuery1->Close();
   OraQuery1->SQL->Clear();
   OraQuery1->SQL->Add( s );
   OraQuery1->ExecSQL();

   OraQuery1->SQL->Clear();
   OraQuery1->SQL->Add( "select * from TEST1" );
   OraQuery1->Open();
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог