Ĺ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
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 ;)