Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > MS SQL server + ADO + ADOQuery - как организовать?


Автор: direk2006 25.1.2015, 19:31
Если делать вот такой например запрос в 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."


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)