Baza danych Paradox

0

Witam !

Jestem początkującym programistą i mam klopot z sortowaniem tabeli Paradox. Sortowanie ma odbywać się alfabetycznie w jednej kolumnie "Nazwa2". Najprościej (jak słyszałewm) jest zastosować komponent TQuery. Próboweałem na wszystkie sposoby ale bez rezultatu. Ostatnio zastosowałem instrukcje jak niżej i też nic ? Dodam tylko, że jest to lokalna baza danych a ja z SQL' em nie miałem nic do czynienia !

procedure TForm2.Button10Click(Sender: TObject);
begin

QUERY1.sql.clear;
QUERY1.sql.add('SELECT * FROM FIRMA');
Query1.sql.add ('order by nazwa2 desc');
//Query1.sql.ExecSQL;
QUERY1.Open;
Table1.Refresh;

end;

Chciałbym również aby sortowanie uwzględniało polskie litery.

Za pomoc z góry dziękuję.

Cześć !

0

SQL w Paradoxach jest bardzo okrojony i dlatego też może ci nie działać sortowanie. W ogóle nie polecam ci tego typu baz danych jak Paradox, dBase itp. Cholernie się sypią przy indexach i są bardzo delikatne i powolne.
Zainstaluj sobie IBExpert i będziesz działał na bazach Firebird za pomocą SQL.

Przeczytaj sobie ten post od góry na sam dół
http://4programmers.net/Forum/viewtopic.php?id=89621
Tam Misiekd w punktach wypisuje jak pokolei robić bazę lokalną w Firebirdzie i SQL.

0

Chodzi Ci oczywiscie o sortowanie wyniku zapytania, ktore zostanie wyswietlone np. w DBGridzie?
Kod wygladalby tak:

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('SELECT * FROM FIRMA ORDER BY Nazwa2 desc;');
query1.Open;

Query musi byc podpiete pod DataSource, a DataSource do DBGrida.

Jesli miales na mysli sortowanie danych w samej tabeli, a nie wyciaganych z niej informacji to chyba nie za bardzo ma to sens. Mozna to ewentualnie zrobic poprzez powyzsze zapytanie a nastepnie uzycie zapytania z INSERTEM. Tylko nie za bardzo wiem po co ;-P

0

Dziękuję za podpowiedź, ale to co tworzę to bardzo skromna baza danych i Paradox mi wystarczy.
Chodzi mi jedynie o posortowanie zawartości alfabetycznie.
Czy jest inny sposób zamiast ... SQL.

0

A tak bez SQL tabelkę można posortować klikając na tytuł danej kolumny:

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
  (Column.Field.DataSet as TTable).IndexFieldNames:=Column.FieldName;
end; 
0

Dzięki !
Co prawda chciałbym aby segregowanie odbywało się "automatycznie" np. przy
przy kreowaniu formularza, ale to z kliknięciem chyba mi wystarczy.

0

mozna po indeksie sortowac
albo przes sql (przy zwyklym selekcie uzywaj procedury open przy reszcie czyli inserty itd uzywaj execSql)
jak miales tam w przykladzie add('order by cos') to zrob spacje przed order bo po dodaniu tej lini do sql nie ma spacji miedzy order a poprzednim wyrazem i na pewno masz jakis sql error :)

pozdr

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