2011-09-02 3 views
0

Je crée une application dans CppBB6 qui lit/écrit des données à partir/dans une base de données. A partir d'une table intitulée Etudiants, je veux extraire le nom d'un étudiant en utilisant le numéro d'index donné (les champs Nom et Index sont dans la table Étudiant) et ensuite je veux mettre ce nom dans une variable String ou AnsiString.C++ Borland Builder 6 Requête SQL

J'utilise cette requête pour sélectionner le nom:

AnsiString query; 
Query1->Close(); 
Query1->UnPrepare(); 
Query1->SQL->Clear(); 
query="SELECT Name FROM Students where Index='" + Edit1->Text + "'"; 
Query1->SQL->Add(query); 
Query1->Prepare(); 
Query1->Open(); 

et tout cela vérifie bien, mais comment puis-je mettre ce nom dans une variable? :/

Répondre

2

Je suppose que quelque chose comme

Edit1->Text = Query1->FieldByName("Name")->AsString; 

ou si vous avez vraiment un seul champ et/ou SAVOIRS index du champ (s), puis

Edit1->Text = Query1->Fields[0]->AsString; 

Et comme Ken Blanc suggère dans les commentaires - il faut vraiment utiliser des requêtes paramétrées pour des raisons de sécurité et de performance, quelque chose comme

Query1->SQL->Add("SELECT Name FROM Students where Index = :idx"); 
Query1->Prepare(); 
Query1->ParamByName("idx")->AsString = Edit1->Text; 
+0

+1. Vous devriez probablement ajouter une mention d'utilisation de requêtes paramétrées au lieu de concaténation de chaînes, juste comme un ajout. :) –

+0

thnx, résolu mon problème :) – sikac

Questions connexes