Witam!!
Czy da sie zapisac wynik zapytania do bazy SQL (np. SELECT * FROM blabla) do tablicy (w C++)??
Witam!!
Czy da sie zapisac wynik zapytania do bazy SQL (np. SELECT * FROM blabla) do tablicy (w C++)??
da się
pytanie tylko jak;)??
Jak zapisac do tablicy??
Jak odczytywac po jednym rekordzie??
Na przykład dla mySQL powinieneś zacząć od tego
Baza Firebird 2. Polaczenie z baza za pomoca komponentow ADO. Nie mialbym problemu zrobic tego za pomoca MySQLa i np. PHP, ale ze jest to Firebird i C++ to zwracam sie o pomoc do Was.
j = 0;
while (! query->eof)
{
for (int i = 0; i < query->Fields->Count; i++)
{
tablica[i][j] = query->Field[i];
}
j++;
}
coś takiego mniej więcej - nie mam BCB więc nie mam jak sprawdzić
Korzystając z wskazowek postu powyzej probowalem napisac kod dodawania zakladek o nazwach pobranych z bazy:
Mam cos takiego:
__fastcall TZakladki::TZakladki(TComponent* Owner)
: TForm(Owner)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT zakladka FROM ZAKLADKI");
ADOQuery1->Open();
int j = 0;
while (!ADOQuery1->Eof)
{
for (int i=1; i<ADOQuery1->FieldCount; i++){
TTabSheet *pPage = new TTabSheet(PageControl1);
pPage->PageControl = PageControl1;
pPage->Caption=ADOQuery1->Fields[i];
}
j++;
}
}
Chcialbym zeby kod robil to co napisalem powyzej, ale moim zdaniem cos zle napialem w linijce:
pPage->Caption=ADOQuery1->Fields[i];
Wyskakuje mi jakis blad o AnsiString. Wiecie moze jak temu zapobiec??
Jak zrobie tak:
pPage->Caption=ADOQuery1->Fields[i]->AsString;
to wystakuje taki bład: Pointer to structure required on left side of -> or ->*
Mooże tak spróbuj. Mooże - bo to głupio wygląda, ale tak z Helpa wynika. Kompilator to przełyka, ale czy to działa... sprawdź:
ADOQuery1->Fields->Fields[10]->AsString;
to pewnie będzie
pPage->Caption=ADOQuery1->Fields[i].AsString;
nie mam BCB ale ty masz taki magiczny guzik - F1 - trochę inicjatywy