ďťż

Ładny brzuch

Na formie "Forma2" mam dwa komponenty TQuery - SQLDataSet1 i SQLDataSet2 połączone z jednym SQLConnection.

Z innej formy, "Forma1" wywołuję ''Forma2", i przekazuję do niej nazwę bazy do wyświetlenia (dla SQLConnection).

SQLDataSet1 wyświetla w tabeli dane "główne", SQLDataSet2 dane "uzupełniające."

Myk jest w momencie, gdy zamykam "Forma2", zmieniam nazwę bazy do wyświtlenia i otwieram ponownie "Forma2".
Teraz SQLDataSet1 odczytuje już nowe dane, a SQLDataSet2 odczytuje dane z poprzedniej bazy :(
Sposób odczytu i ustawienia dla obu komponentów SQLDataSet jest jednakowy więc o co chodzi :blink:
Użytkownik PabloX edytował ten post 06 grudzień 2005, 01:02


Tak na pierwszy rzut oka trochę dziwne wydaje mi się to co robisz, ale może się mylę.
Czy nie lepiej komponenty z bazami danych wstawić do DataModule i umieścić tam 4 komponenty TQuery, każdy odwołujący się na stałe do odpowiedniej bazy?
Myślę że takie rozwiązanie byłoby najlepsze.
Użytkownik Igor edytował ten post 06 grudzień 2005, 01:30
Niestey tak musi być. Baz jest nieograniczona ilość z opcją przełączania między nimi.
Myślałem nad takim (książkowym) rozwiązaniem ale wolę 'standardowo'.
Poza tym mechanizm odczytu pozostaje taki sam
AnsiString nazwa_skr, komenda;    ComboBox3->Clear();    komenda="select NAZWA_SKR from KONTRAHENCI order by  NAZWA_SKR"; //Komenda pobrania interesujących mnie danych    SQLDataSet2->CommandText = komenda;    SQLDataSet2->Open();   // Aktywuję połączenie z bazą    /*****  Odczytywanie  ******/    while(! SQLDataSet2->Eof){        /*--- Ładuje zmienną danymi z tabeli SQL'a "KONTRHENCI"  ---*/        nazwa_skr = SQLDataSet2->FieldByName("NAZWA_SKR")->AsString;        ComboBox3->Items->Add(nazwa_skr); // Wpisuję pozycję do ComboBox'a        /*-  Koniec ładowania  -*/        SQLDataSet2->Next();    // Przechodzę do następnego rekordu w tabeli    }// end while(! SQLDataSet2->Eof)    SQLDataSet2->Close();


[code]
    komenda="select NAZWA_SKR from KONTRAHENCI order by  NAZWA_SKR"; //Komenda pobrania interesujących mnie danych
    SQLDataSet2->CommandText = komenda;

To chyba najpierw musisz wyjaśnić co to jest SQLDataSet2?
Na początku myślałem, że to jest komponent TQuery, ale TQuery chyba nie ma właściwości CommandText?
Zmienną komenda do TQuery przypisałbym tak:
Query1->SQL->Text = komenda;




To chyba najpierw musisz wyjaśnić co to jest SQLDataSet2?
Jest oto komponent typu Query (zapytanie). Połączony jest z komonentem SQLConnection.

SQLConnection otwiera dostęp do bazy w MySQL. Ustawia się w nim login, hasło do bazy i bazę do połączenia.

SQLDataSet1->CommandText = komenda; // Załadowanie polecenia SQL
SQLDataSet1->Open(); //Otwarcie zbioru zwracanego przez zapytanie do MySQLa.

SQLDataSet1->Close(); //Zamyka zbiór po zakończeniu odczytu.

I tak sobie to działa ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •