Алексей |
Отправлено: 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();
}
|
В таком виде у меня работает.
|
|