![]() |
|
|
![]()
|
|
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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(); } Очень нужна помощь!! |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Может, ComboBox1->Items->Text всё же?
Свойство "Tag" вроде как являет собой числовой целый тип, а не булевый. Добавлено через 2 минуты и 47 секунд И зачем вообще "ComboBox1->Items..." в запросе в кавычки брать?? facepalm.jpg Это сообщение отредактировал(а) Данкинг - 12.11.2011, 19:27 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
а если не Tag, то как тогда мне сделать что после того как в 5ой форме в комбобоксах все параметры выбраны и нажата кнопка найти, то 5форма закрывается, далее выполняется запрос?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
В-первых, что мешает сравнить TAG с 1, если уж так нужно? Во-вторых, не зря же придуманы глобальные переменные. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
спасибо)
а можно вообще написать так if (Form5->Button1) { Query1->Active=true; и далее тот же запрос с исправлением ComboBox1->Items->Text если так сделать, то выдает ошибку 'Query1: No SQL statement available' а если оставить как есть с Tag то выводится вся таблица , а не записи отвечающие выбранным параметрам |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
нажата ли в 5ой форме кнопка Button1 )
Добавлено через 1 минуту и 6 секунд это первая программа на си билдер - я его только изучаю, поэтому не особо хорошо разбираюсь |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Заведи глобальную булевую переменную, при нажатии Button1 делай ей true, и соответственно проверяй значение в TForm6::BitBtn1Click. И сразу с БД начинаешь? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
да с БД ))
спасибо, буду пробовать а не подскажете еще - в БД типа Paradox как можно загрузить изображение? и можно ли его потом оттуда как то "вытаскивать"? |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Не знаю, я Парадокса никогда не видел даже. Но, вероятно, через BLOB-поля, как обычно. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
подскажите пожалуйста - как объявить глобальную переменную строкового типа?? она объявляется в .cpp или в .h ??
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
В .h объявляется -
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.11.2011 Репутация: нет Всего: нет |
спасибо)
я так и пишу, и все равно когда запускаю программу - ошибка - неопределенный символ(( а писать это надо в .h в главной форме или в каждой ?? |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Ну, в секции "public" файла .h должно быть достаточно.
Добавлено через 2 минуты и 38 секунд Вообще я точно сейчас не помню - давно на Билдере не писал. Но думаю так, что если объявить переменную в главной форме, то можно к ней обращаться, вначале указывая название формы, а затем - саму переменную. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NadyaH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 - строкового типа, с - целого |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |