C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
RxQuery->MacroByName-КАК???
Алексей
  Отправлено: 22.05.2003, 16:14


Не зарегистрирован







Делаю так:
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
q1->Close();
switch (RadioGroup1->ItemIndex)
{
case 0:q1->MacroByName("m1")->AsString="";
case 1:q1->MacroByName("m1")->AsString="order by custNo";
case 2:q1->MacroByName("m1")->AsString="order by company";
case 3:q1->MacroByName("m1")->AsString="order by addr1";
}
for(int i=0;iSQL->Count;i++)
MessageDlg(q1->MacroByName("m1")->AsString,mtError,TMsgDlgButtons() << mbYes,0);
q1->Open();
}
q1->SQL="select * from customer %m1"
База данных DBDEMOS
информация в гриде не меняется.
Как правильно работать с макросами в запросах?

С уважением, Алексей.
strekalo@laspace.ru
Admin
Отправлено: 22.05.2003, 17:24


Владимир

Группа: Администратор
Сообщений: 1190



Во первых, в блоке switch у вас отсутствует break;

CODE

// база BCDEMOS таблица COUNTRY
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  q1->Close();
  q1->SQL->Clear();
  q1->SQL->Add("select * from country order by %m1");

  switch (RadioGroup1->ItemIndex)
   {
   case 0: q1->MacroByName("m1")->AsString="Name";        break;
   case 1: q1->MacroByName("m1")->AsString="Capital";      break;
   case 2: q1->MacroByName("m1")->AsString="Continent";  break;
   case 3: q1->MacroByName("m1")->AsString="Area";          break;
   }

  q1->Open();
}


В таком виде у меня работает.

Вернуться в Работа с базами данных в C++Builder