Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск 
:(
    Опции темы
cheburashkaRF
Дата 25.4.2013, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2011
Где: Новосибирск

Репутация: нет
Всего: нет



Доброго времени суток, помогите решить следующую проблему
Захотел сделать кнопку поиска по базе, сначала создал таблицы в sql и объеденил их,но при нажатии на кнопку поиска 
вылетают ошибка Unknown column 'familia' in 'where clause' 
а вот код обработчика
Код C++

void TForm1:smile(TADOQuery * Query, TADOTable * Table,AnsiString Comb, AnsiString Edit)
{
        Query->Close();
        Query->SQL->Clear();
        Query->SQL->Add("SELECT * FROM " + Table->TableName + " WHERE " + Comb + " LIKE " + "'%" + Edit + "%'");
        Query->ExecSQL();
        Query->Open();
}
А вот sql запрос
SELECT Фамилия,Имя,Отчество,Оформлена FROM clients,visa  WHERE clients.`id_client`=visa.`id_visa`

PM MAIL   Вверх
Данкинг
Дата 25.4.2013, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



 Query->ExecSQL(); там точно не нужен...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Riviero
Дата 26.4.2013, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 25.3.2010

Репутация: нет
Всего: 3



Цитата(cheburashkaRF @  25.4.2013,  21:25 Найти цитируемый пост)
familia


и 
Цитата(cheburashkaRF @  25.4.2013,  21:25 Найти цитируемый пост)
Фамилия


Думаешь одно и то же?
PM MAIL   Вверх
cheburashkaRF
Дата 26.4.2013, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2011
Где: Новосибирск

Репутация: нет
Всего: нет



извини ну описался ,ну ошибся,бро=)
лучше скажи что сделать чтоб заработало

Это сообщение отредактировал(а) cheburashkaRF - 26.4.2013, 10:23
PM MAIL   Вверх
Данкинг
Дата 26.4.2013, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(cheburashkaRF @  26.4.2013,  11:21 Найти цитируемый пост)
извини ну описался ,ну ошибся,бро=)

Судя по тексту ошибки:
Цитата(cheburashkaRF @  25.4.2013,  22:25 Найти цитируемый пост)
Unknown column 'familia' in 'where clause' 

Где-то в коде аналогичная описка. smile 
Цитата(cheburashkaRF @  26.4.2013,  11:21 Найти цитируемый пост)
лучше скажи что сделать чтоб заработало

Подставить в условие WHERE название существующей колонки.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
cheburashkaRF
Дата 26.4.2013, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2011
Где: Новосибирск

Репутация: нет
Всего: нет



Цитата

Подставить в условие WHERE название существующей колонки.

а если пользователь выбирает значение из combobox и вводит значение в поле edit и жмёт кнопу поиска, тогда название конкретной колонки здесь не поможет,здесь будет нужен автоматически заносимый параметр
Не могли бы вы написать,как тогда будет выглядеть запрос
PM MAIL   Вверх
Данкинг
Дата 26.4.2013, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Что есть в запросе "Comb" ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Riviero
Дата 26.4.2013, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 25.3.2010

Репутация: нет
Всего: 3



Цитата(Данкинг @  26.4.2013,  15:01 Найти цитируемый пост)
Что есть в запросе "Comb" ? 


Как я понял, Comb - это ComboBox->Text
Edit: Edit->Text

Чтобы все правильно работало - надо ComboBox заполнять названиями колонок из таблицы, а не абы как.
Как вариант - сделать так:

Код

        Query->Close();
        Query->SQL->Clear();
        Query->SQL->Add("SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS where table_name = '" + TableName+"'");
        Query->Open();
       while (!Query->Eof)
       {
             ComboBox->Items-Add(Query->FieldByName(Column_name)->AsString);
             Query->Next;
       } 

PM MAIL   Вверх
cheburashkaRF
Дата 26.4.2013, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2011
Где: Новосибирск

Репутация: нет
Всего: нет



т.е в моем случае код примет такой вид
 void TForm1::myFunc(TADOQuery * Query, TADOTable * Table,AnsiString Comb, AnsiString Edit)
{
    Query->Close();
    Query->SQL->Clear();
    Query->SQL->Add("SELECT Фамилия,Имя,Отчество,Оформлена FROM clients.`id_client`AND visa.`id_visa` where clients,visa = '" +               TableName+"'");
        Query->Open();
 }
но почему то пишет [bcc32 Error] Unit1.cpp(26): E2451 Undefined symbol 'TableName'
  Full parser context
    Unit1.cpp(23): parsing: void TForm1::myFunc(TADOQuery *,TADOTable *,AnsiString,AnsiString)
PM MAIL   Вверх
Данкинг
Дата 26.4.2013, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(cheburashkaRF @  26.4.2013,  18:44 Найти цитируемый пост)
но почему то пишет [bcc32 Error] Unit1.cpp(26): E2451 Undefined symbol 'TableName'

Во-первых, не копируй слепо примеры, а подставляй в них свои значения. Во-вторых, поизучай элементарный синтаксис SQL-запросов.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.1658 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.