Как я могу получить результат запроса после выполнения запроса с помощью C ++ Builder XE6 и Firebird?

После подключения к базе данных Firebird с помощью C ++ builder, я не могу получить результат от простого запроса на выборку.

У меня есть некоторая путаница со многими участниками классов:

void __fastcall TForm2::btn1Click(TObject *Sender)
{  TSQLConnection   co = new TSQLConnection(this);
Base_Firebird *fb = new Base_Firebird()  ;
bool  bl = fb->Connecter(co);
String sqlstring = "select nom_action from T_ACTION where CLE_ACTION=6 ";
if (bl)
TSQLQuery *req = new TSQLQuery(NULL) ;
req->SQLConnection = co ;
req->SQL->Add(sqlstring);
req->Open() ;
}

Моя проблема здесь после открытия TSQLQuery, я не знаю, как я могу получить результат и выполнить команду.

0

Решение

Попробуйте изменить конец вашей подпрограммы на что-то вроде этого:

if (bl)
{ /// you forgot compound operator here !!!!!
TSQLQuery *req = new TSQLQuery(this) ;
req->SQLConnection = co ;
req->SQL->Text = sqlstring;
req->Open() ;

int j = 0;
while( !req->EOF() )
{
++j;
String Value = req->Fields[0]->AsString;
ShowMessageFmt( "Row %d ==> Value: %s ", ARRAYOFCONST(( j, Value )) );

// String MSG = Format( "Row %d ==> Value: %s ", ARRAYOFCONST(( j, Value )) );
// ShowMessage( MSG );

req -> Next();
};
req->Close();
ShowMessage("Data over.");
}
req -> Free();  // maybe "delete req;" would work too, dunno
}

Проверять:

0

Другие решения

Прочитайте документацию Embarcadero. Есть целые главы о том, как работать с компонентами SQL, которые вы используете, в том числе:

Как выполнить процедуры базы данных

Навигация по наборам данных

Использование dbExpress

Использование индекса компонентов dbExpress

Использование TSQLQuery

Data.SqlExpr.TSQLQuery

Например:

void __fastcall TForm2::btn1Click(TObject *Sender)
{
TSQLConnection *co = new TSQLConnection(NULL);
Base_Firebird *fb = new Base_Firebird();
if (fb->Connecter(co))
{
TSQLQuery *req = new TSQLQuery(NULL);
req->SQLConnection = co;
req->SQL->Text = "select nom_action from T_ACTION where CLE_ACTION=6";
req->Open();
while (!req->Eof)
{
// use req->Fields as needed...
req->Next();
}
delete req;
}
delete fb;
delete co;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector