AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensätze im DBGrid sortieren

Datensätze im DBGrid sortieren

Ein Thema von Privateer3000 · begonnen am 19. Sep 2008 · letzter Beitrag vom 23. Sep 2008
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Datensätze im DBGrid sortieren

  Alt 19. Sep 2008, 08:19
Datenbank: mdb • Zugriff über: ado
Hallo, mit folgender procedure will ich die Datensätze
in einem DBGrid sortieren:
Delphi-Quellcode:
procedure TForm4.bagridTitleClick(Column: TColumn);
begin
with artikel do begin
  Close; SQL.Clear;
  SQL.Text:='SELECT * FROM basisart ORDER BY :LI1 ASC';
  Prepared:=True;
  Parameters.FindParam('LI1').Value:=Column.FieldName;
  Open;
end;
end;
nach einem Click passiert auch was, allerdings ist nicht
ersichtlich was er sortiert hat. Jedenfalls nicht das
auf das ich geklickt habe.
Nach einem 2. klick passiert garnichts mehr...
Ist irgendwas falsch am Code, oder muss an der Kompo
noch eine Eigenschaft eingestellt werden?

Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#2

Re: Datensätze im DBGrid sortieren

  Alt 19. Sep 2008, 09:04
Parameter dürfen nur Werte ersetzen, keine Spaltennamen. Baue es so um:
Delphi-Quellcode:
procedure TForm4.bagridTitleClick(Column: TColumn);
begin
with artikel do begin
  Close;
// SQL.Clear; //unnötig, da eh der Text neu gesetzt wird!!!
  SQL.Text:='SELECT * FROM basisart ORDER BY ['+Column.FieldName+'] ASC';
  Open;
end;
end;
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Datensätze im DBGrid sortieren

  Alt 19. Sep 2008, 09:16
Perfekt! Danke !!!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#4

Re: Datensätze im DBGrid sortieren

  Alt 19. Sep 2008, 12:16
mir ist da noch was eingefallen
Falls der Benutzer trotz Umsortierung auf demselben Datensatz bleiben will/soll, dann solltest Du zuvor den PK einlesen und nach der Abfrage wieder darauf ein Locate machen.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Datensätze im DBGrid sortieren

  Alt 19. Sep 2008, 12:51
Schon mal TADOTable und die Eigenschaft 'IndexFieldNames' probiert?

oder eine TADOQuery, einen TProvider und ein TClientDataset, das kann auch sortieren.

Vorteil: Man belastet das DBMS nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Datensätze im DBGrid sortieren

  Alt 22. Sep 2008, 07:23
Zitat von joachimd:
mir ist da noch was eingefallen
Falls der Benutzer trotz Umsortierung auf demselben Datensatz bleiben will/soll, dann solltest Du zuvor den PK einlesen und nach der Abfrage wieder darauf ein Locate machen.
Danke für den Tipp,
ich nehme an du meinst den private key?!
Wie muss man dies machen, in den Speicher einlesen,
also in eine variable packen?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#7

Re: Datensätze im DBGrid sortieren

  Alt 22. Sep 2008, 09:13
eigentlich den PRIMARY KEY.
Je nach Datentyp in etwa so:
Delphi-Quellcode:
var
  id: integer;
begin
  //...
  id:=query.fieldbyname('id').asinteger;
  query.DisableControls;
  query.close;
  query.sql.text:= ...
  query.open;
  query.locate('id',id,[]);
  query.EnableControls;
  //...
end;
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Datensätze im DBGrid sortieren

  Alt 23. Sep 2008, 07:00
Alles klar, vielen Dank!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz