Если делать вот такой например запрос в MS SQL Menedgment Studio, то в результате создаются две отдельные таблицы с данными:
Код | SELECT actor_id, name_actor FROM actor WHERE (actor_id = 1844)
SELECT film_id, nazva FROM film WHERE (film_id = 39)
|
А как реализовать тоже, но в с++ (у меня RAD XE3)? Потому как если делаю:
Код |
DataModule1->ADOQuery2->SQL->Clear(); DataModule1->ADOQuery2->Parameters->Clear(); DataModule1->ADOQuery2->SQL->Add ( " select actor.actor_id, actor.name_actor"); DataModule1->ADOQuery2->SQL->Add ( " FROM actor "); DataModule1->ADOQuery2->SQL->Add ( " WHERE actor.actor_id = :actor_id ");
DataModule1->ADOQuery2->SQL->Add ( " SELECT film.film_id, film.nazva"); DataModule1->ADOQuery2->SQL->Add ( " FROM film "); DataModule1->ADOQuery2->SQL->Add ( " WHERE film.film_id = :film_id ");
DataModule1->ADOQuery2->Parameters->ParamByName("actor_id")->DataType = ftInteger; DataModule1->ADOQuery2->Parameters->ParamByName("actor_id")->Direction = pdInput; DataModule1->ADOQuery2->Parameters->ParamByName("actor_id")->Value = 1844;
DataModule1->ADOQuery2->Parameters->ParamByName("film_id")->DataType = ftInteger; DataModule1->ADOQuery2->Parameters->ParamByName("film_id")->Direction = pdInput; DataModule1->ADOQuery2->Parameters->ParamByName("film_id")->Value = 39; DataModule1->ADOQuery2->Prepared = true; try { DataModule1->ADOQuery2->Open(); // ->ExecSQL() ; } catch (EADOError& e) { MessageDlg("Error while connecting", mtError, TMsgDlgButtons() << mbOK, 0); return; } Memo1->Lines->Add(DataModule1->ADOQuery2->FieldByName("name_actor")->AsString); Memo1->Lines->Add(DataModule1->ADOQuery2->FieldByName("nazva")->AsString);
|
то значение name_actor выводит нормально, а при nazva уже пишет :"ADOQuery2: Field 'nazva' not found."
|