MySql przy dużej ilości danych

0

Witam,

Mam problem przy pobieraniu danych z MySQL. Otóż jeśli pobieram więcej niż 80 rekordów, innym użytkownikom w siecie wszystko się podwiesza. W phpmyadmin przy tym procesie (SELECT) status jest określony jako "Writing to net". Natomiast jeżeli wprowadzę w zapytaniu LIMIT 80 wszystko działa. Nie mogę jednak ograniczać do 80 rekordów. Na jakiejś hiszpańsko języcznej stronie wyczytałem że problem jest błachy(!!!) i należy użyć funkcji {"mysql_use_result"}=1; Jednak jak to zastosować w Delphi nie mam zielonego pojęcia. Może ktoś z Was wie co z tym fantem zrobić.

0

Najprościej to tak: wystarczy pomyśleć.

0

No wszystko OK. Tylko jak w takim razie powinno wyglądać zapytanie SQLQuery?

0

Aj aj aj... zrobiłeś dokładnie to samo co ja: kliknąłeś w odnośnik z ciekawości, ale wcale nie pomyślałeś... tylko, że ja nie muszę nic robić w SQL - i to jest moja przewaga :]

0

Najlepsze jest to, że zapytanie SQL do bazy nie zależ od API bazy. Są ponadplatformowe. SQL ma swój język i koniec. Nie jest istotne czy używasz PHP, C++, Delphi, MySQL czy co tam jeszcze. Zapytanie SQL to ciąg znaków. Wstawianie rekordu ma postać INSERT INTO nazwa_tabeli VALUES (...); I teraz nie jest istotne jak je przekarzesz do bazy.

0

wypadało by zacząć od podania komponentów, których używasz

0

Moje zapytanie wygląda w ten sposób:

SQLConnection1.Connected:=False;
ClientDataSet1.Active:=False;
SQLQuery1.Active:=False;

SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT * from tab_zam ORDER BY nr_umowy desc LIMIT 80');
SQLQuery1.Open;

SQLConnection1.Connected:=True;
ClientDataSet1.Active:=True;
SQLQuery1.Active:=True;</span>

Bez tego LIMIT wszystko się podwiesza. [???]

0

No nie uwierzę że nikt nie wie jak ten problem rozwiązać.

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