DBGrid i TListView a MySQL

0

Witam szanownych forumowiczów!

Pracuję nad aplikacją, która ma zarządzać dość sporą bazą danych (ponad 13 tys. rekordów). Używałem BDE i tabeli typu Paradox, jednak te rozwiązanie jest wysoce nieodporne na błędy; zdecydowałem się zatem "przestawić" na MySQL. Dane skonwertowałem bez problemu.

Używając komponentów TSQLConnection i TSQLQuery połączyłem się z lokalną bazą. Teraz jednak pojawia się dość spory (wg mnie) problem:

Jakiego komponentu użyć do prezentacji tabeli danych?
W zamyśle miał być to TListView, jednak takie rozwiązanie jest baaardzo nieefektywne (załadowanie danych do komponentu trwa ponad dwie minuty, za każdym razem. Od razu zaznaczę, że przeszukałem forum pod kątem rozwiązania tego problemu, jednak sugestie zawarte np. w topiku:
http://4programmers.net/Forum/121059 - "Wolny TListView?" nie pomogły).
Wszystko to nieco mnie dziwi; w pierwotnej wersji programu (korzystającej z BDE i Paradox'a) DBGrid w ułamku sekundy wypełniał się danymi...

Z kolei komponent DBGrid podczas próby użycia TSQLConnection > DataSource (powiązane z TSQLConnection) zgłasza błąd "Operation not allowed on a unidirectional dataset".

Będę niebywale wdzięczny za jakiekolwiek wskazówki... Pomóżcie!

Pozdrawiam,
Creep

0

Jak zauważyłeś ListView raczej się nie nadaje do wyświetlania większych ilości danych. Dużo szybszy jest StringGrid.

Ale Twój problem na pewno da się rozwiązać za pomocą standardowych komponentów bazodanowych.
Pisałem już programy bazodanowe korzystające z różnych RDBMS-ów, a z MySQL i Sybase miałem najmniej problemów.
Niestety w tej chwili nie mam zainstalowanego MySQL i piszę "z pamięci".
Musisz zainstalować MyODBC, utworzyć alias w Administratorze ODBC wskazujący na żądaną bazę MySQL i połączyć komponenty bazodanowe z tym aliasem.
Niekiedy konieczne jest utworzenie dodatkowego aliasu w BDE Administratorze wskazującego na alias ODBC i połączenie komponentów bazodanowych z aliasem BDE (a nie z aliasem ODBC). Nie pamiętam jak to było w przypadku MySQL.
Jeśli wszystko wykonasz prawidłowo, będziesz mógł korzystać z MySQL w sposób standardowy, tj. wykorzystując TTable, TQuery, DBGrid, DBEdit itd., itp.

Jak wspomniałem wcześniej - w tej chwili nie mam zainstalowanego MySQL i musisz się troszkę z tym pobawić, ale na pewno się DA !

0

jeśli używasz do połączenia komponentu dbexpress - to się nie martw, ten model tak ma ;) lepiej spróbuj pobawić się Zeos'em - jest dużo szybszy i bardziej rozbudowany :)

0

Dziękuję stokrotnie za wskazówki :)

Creep

1 użytkowników online, w tym zalogowanych: 0, gości: 1