Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка несоответствие типов в выражении, программа с БД  
:(
    Опции темы
NadyaH
Дата 12.11.2011, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем добрый вечер! Помогите, пожалуйста! 
программа с базой данных.  в одной из форм (Form6) по нажатии на кнопку BitBtn, открывается новая форма (Form5)- в которой пользователь выбирает из комбобокса нужные параметры, далее в этой форме когда выбраны необходимые параметры - нажимается кнопка и в 6ой форме выполняется sql-запрос. когда запускаю программу - выдает ошибку несоответствие типов в выражении. Подскажите пожалуйста - может ошибка в запросе ? 

void __fastcall TForm6::BitBtn1Click(TObject *Sender)
{
     Form5->Tag=0;
     Form5->ShowModal();
     if (Form5->Tag)
     {

        Form6->Query1->SQL->Add("SELECT Rajon, Tip_zhilya, Kolvo_komnat, Kvadr_metry, Tsena, Tel");
        Form6->Query1->SQL->Add("FROM ':NSamara:NedSamara1.db'");
        Form6->Query1->SQL->Add("WHERE (Rajon='ComboBox1->Items') AND (Tip_zhilya='ComboBox2->Items') AND (Kolvo_komnat='ComboBox3->Items')");
        Form6->Query1->SQL->Add("ORDER BY Tsena");

     Query1->Open();
     DataSource1->DataSet=Query1;
     }
}


а здесь часть из модуля 5ой формы 

void __fastcall TForm5::Button1Click(TObject *Sender)
{
    Tag=1;
    Close();
}


Очень нужна помощь!!
PM MAIL   Вверх
Данкинг
Дата 12.11.2011, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Может,  ComboBox1->Items->Text всё же?
Цитата(NadyaH @  12.11.2011,  18:54 Найти цитируемый пост)
  if (Form5->Tag)

Свойство "Tag" вроде как являет собой числовой целый тип, а не булевый.

Добавлено через 2 минуты и 47 секунд
И зачем вообще "ComboBox1->Items..." в запросе в кавычки брать?? facepalm.jpg

Это сообщение отредактировал(а) Данкинг - 12.11.2011, 19:27


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


Новичок



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

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



а если не Tag, то как тогда мне сделать что после того как в 5ой форме в комбобоксах все параметры выбраны и нажата кнопка найти, то 5форма закрывается, далее выполняется запрос?  

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


Yersinia pestis
****


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

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



Цитата(NadyaH @  12.11.2011,  20:53 Найти цитируемый пост)
а если не Tag

В-первых, что мешает сравнить TAG с 1, если уж так нужно? Во-вторых, не зря же придуманы глобальные переменные.


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


Новичок



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

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



спасибо)
а можно вообще написать так 

 if (Form5->Button1)
     {
        Query1->Active=true;

и далее тот же запрос с исправлением ComboBox1->Items->Text

если так сделать, то  выдает ошибку 'Query1: No SQL statement available' 

а если оставить как есть с Tag то выводится вся таблица , а не записи отвечающие выбранным параметрам 
 smile  
PM MAIL   Вверх
Данкинг
Дата 12.11.2011, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(NadyaH @  12.11.2011,  21:27 Найти цитируемый пост)
if (Form5->Button1)

Что в этом условии должно проверяться?


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


Новичок



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

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



нажата ли в 5ой форме кнопка Button1 )

Добавлено через 1 минуту и 6 секунд
это первая программа на си билдер - я его только изучаю, поэтому не особо хорошо разбираюсь 
PM MAIL   Вверх
Данкинг
Дата 12.11.2011, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(NadyaH @  12.11.2011,  21:35 Найти цитируемый пост)
нажата ли в 5ой форме кнопка Button1 )

Заведи глобальную булевую переменную, при нажатии Button1 делай ей true, и соответственно проверяй значение в TForm6::BitBtn1Click.
Цитата(NadyaH @  12.11.2011,  21:35 Найти цитируемый пост)
это первая программа на си билдер

И сразу с БД начинаешь? smile 


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


Новичок



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

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



да с БД ))
спасибо, буду пробовать

а не подскажете еще - в БД типа Paradox как можно загрузить изображение? и можно ли его потом оттуда как то "вытаскивать"? 
PM MAIL   Вверх
Данкинг
Дата 12.11.2011, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(NadyaH @  12.11.2011,  21:59 Найти цитируемый пост)
а не подскажете еще - в БД типа Paradox как можно загрузить изображение? 

Не знаю, я Парадокса никогда не видел даже. Но, вероятно, через BLOB-поля, как обычно.


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


Новичок



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

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



подскажите пожалуйста - как объявить глобальную переменную строкового типа?? она объявляется в .cpp или в .h ?? 
PM MAIL   Вверх
Данкинг
Дата 16.11.2011, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



В .h объявляется - 
Код

AnsiString perem;



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


Новичок



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

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



спасибо)
я так и пишу, и все равно когда запускаю программу - ошибка - неопределенный символ((
а писать это надо в .h в главной форме или в каждой ?? 
PM MAIL   Вверх
Данкинг
Дата 17.11.2011, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Ну, в секции "public" файла .h должно быть достаточно.

Добавлено через 2 минуты и 38 секунд
Вообще я точно сейчас не помню - давно на Билдере не писал. Но думаю так, что если объявить переменную в главной форме, то можно к ней обращаться, вначале указывая название формы, а затем - саму переменную.



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


Новичок



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

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



Данкинг,  если вас не затруднит, можете сказать что не так?? я записываю SQL запрос, запрос параметризирую 

select * from 'NS1.db' where Rajon=:r  AND Tip_zhilya=:t AND Kolvo_komn=:kk order by Tsena

это пишу в свойстве SQL компонента query
далее в самом коде пишу следущее : 

void __fastcall TForm6::BitBtn1Click(TObject *Sender)
{
   f = 0;
    Form5->ShowModal();
     if (f)
     {
 
   Query1->ParamByName("r")->AsString=a;
   Query1->ParamByName("t")->AsString=b;
   Query1->ParamByName("kk")->AsString=Form5->ComboBox3->Items->Text();    (!!! здесь вроде какая то ошибка потому что значение из комбобокса целого типа а здесь вроде как сторокового)

     Query1->Open();
}}


в форме 5 


void __fastcall TForm5::Button1Click(TObject *Sender)
{
     f==1;
    Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm5::ComboBox1Change(TObject *Sender)
{
   a=ComboBox1->Items->Text();
   ComboBox2->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm5::ComboBox2Change(TObject *Sender)
{
   b=ComboBox2->Items->Text();
   ComboBox3->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm5::ComboBox3Change(TObject *Sender)
{
 //  c=StrToFloat(ComboBox3->Items->Text);
   Button1->SetFocus();
}


переменные a,b,c глобальные. а,b - строкового типа, с - целого


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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