Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция, помощь в создании функции 
:(
    Опции темы
cheburashkaRF
  Дата 7.12.2011, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите,как сделать одну функцию,если у меня есть 5 однотипных блоков(осуществляющих поиск) такого типа
Код

void __fastcall TForm1::Button2Click(TObject *Sender)
{qT->Close();
        qT->SQL->Clear();
        if (cbSearchType->Checked) 
        qT->SQL->Add("SELECT [имя поля1],[имя поля2] FROM [тадлица1] WHERE "+
        ComboBox1->Text +"="+"'"+Edit1->Text+"'");
        else    
        qT->SQL->Add("SELECT [имя поля1],[имя поля2] FROM [тадлица1] WHERE  " +
        ComboBox1->Text +" LIKE "+"'"+Edit1->Text+"%'");
        qT->Open();
 void __fastcall TForm1::Button2Click(TObject *Sender)
{
        qS->Close();
        qS->SQL->Clear();
        if (CheckBox1->Checked) 
        qS->SQL->Add("SELECT [имя поля3],[имя поля4] FROM [тадлица2] WHERE " +
        ComboBox2->Text +"="+"'"+Edit2->Text+"'");
        else    
        qS->SQL->Add("SELECT [имя поля3],[имя поля4] FROM [тадлица2] WHERE " +
        ComboBox2->Text +" LIKE "+"'"+Edit2->Text+"%'");
        qS->Open();
}
 

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


Yersinia pestis
****


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

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



Ну как: передавать в функцию все параметры - от имён полей до контролов. Но ради пяти блоков лично я не стал бы заморачиваться.



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


Новичок



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

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



напишите плиз как она будет выглядеть?
PM MAIL   Вверх
Данкинг
Дата 7.12.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Сейчас Билдера у меня нет, поэтому не напишу. Но суть в том, что объявляешь глобальную функцию с соответствующими строковыми (AnsiString) параметрами, и на нажатие кнопок вешаешь именно её, а не так, как сейчас.


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


Новичок



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

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



если вот так написать
Код

void __fastcall TForm1::myFunc(TmyClass qQQ, bool check,
                  AnsiString comb, AnsiString sSS)
{
        qQ1->Close();
        qQ1->SQL->Clear();
        if (check)
        qQQ->SQL->Add("SELECT бла FROM бла WHERE " +
        comb + "=" + "'" + sSS + "'");
        else    
        qQ1->SQL->Add("SELECT бла FROM бла WHERE  " +
        comb + " LIKE " + "'" + sSS + "%'");
        qQ1->ExecSQL();
        qQ1->Open();
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        myFunc(qT, cbSearchType->Checked, ComboBox1->Text, Edit1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        myFunc(qS, CheckBox1->Checked, ComboBox2->Text, Edit2->Text);
}

а ещё такой вопрос насчёт части с sql какую имено над будет таблицу указывать если их несколько

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


Yersinia pestis
****


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

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



Так а что мешает и таблицу параметром функции указывать? smile 


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


Новичок



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

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



а х/з какsmile
если можеш напиши плиз
PM MAIL   Вверх
Данкинг
Дата 7.12.2011, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Что как, не понял? Ты же функции параметры добавил, так же и название нужной таблицы передавай.


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


Новичок



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

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



Код

void __fastcall TForm1::*myFunc(TADOQuery * Table, bool check,
Char Comb, Char Edit)
{
Table->Close();
Table->SQL->Clear();
if (check)
Table->SQL->Add("SELECT * FROM " Table " WHERE " + Comb + "=" + "'" + Edit + "'");
else
Table->SQL->Add("SELECT * FROM " Table " WHERE " + Comb + " LIKE " + "'" + Edit + "%'");
Table->ExecSQL();
Table->Open();
}




как сделать
1)Сделать её частью Form1
2)Как правильно передавать параметры
PM MAIL   Вверх
Данкинг
Дата 8.12.2011, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(cheburashkaRF @  8.12.2011,  16:03 Найти цитируемый пост)
Сделать её частью Form1

Описать её в .h - файле, что ли?
Код

class TForm1 : public TForm
{
__published:    // IDE-managed Components
  ...    
    void __fastcall myFunc(TADOQuery * Table, bool check,Char Comb, Char Edit);
};





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

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

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

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

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


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

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


 




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


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

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