AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sortieren von Datensätzen im DBGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Sortieren von Datensätzen im DBGrid

Ein Thema von Emilio · begonnen am 14. Dez 2003 · letzter Beitrag vom 15. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#1

Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 18:20
Hallo alle Zusammen,

a. bin neu hier;
b. bin ehemaliger ACCESS-Datenbänker;
c. bin Anfänger in DELPHI (7p);

vor mir stehen viele Kartons mit lauter Schallplatten drin; außerdem gibt es ein Regal mit unglaublich vielen CDs, ganz abgesehen von den unzähligen Videos meines Sohns ...
kurzum, ich würde gerne eine Datenbank entwickeln, um das Medienvermögen zu katalogisieren.

Für die Schallplatten habe ich dazu ein DBISAMtable mit folgenden Feldern:

PlattenID (autoIncr)
Name/Titel (string)
Interpret/Gruppe (string)
Vorname (String)
Zustand Cover (Memo)
Musikrichtung (Integer) !
Plattenart (Integer) !
etc...

Dazu eine Detailtabelle mit den Titeln je Schallplatte; und die "Nachschlage"tabellen für die Werte aus 'Musikrichtung' und 'Plattenart'.

Dargestellt werden die Daten über eine DBISAMQuery in einem DBISAMDBGrid.

Soweit so gut - bis auf das sortieren der Daten durch klick auf die Spaltentitel des DBGrids. Alles was ich bisher gelesen, gehört und ausprobiert habe führte nicht nur zu unverständlichen Fehlermeldungen (Z.B. "...expected: end of SQL-statement, found: 'name'...) sondern mich auch langsam in den Wahnsinn.
Kapiert habe ich, dass ich das Ereignis "ontitleclick" verwenden sollte, aber dann:

Entweder ich seh den Wald vor Bäumen nicht oder ich bin auf dem Holzweg



Hat mir jemand einen Tipp, wo ich einen einfachen beispielcode finde oder konkret einen Lösungsvorschlag?

Freue mich auf Antworten

Viele Grüße
Emilio
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 18:25
Zitat von Emilio:
Alles was ich bisher gelesen, gehört und ausprobiert habe führte nicht nur zu unverständlichen Fehlermeldungen (Z.B. "...expected: end of SQL-statement, found: 'name'...) sondern mich auch langsam in den Wahnsinn.
DAs kling für mich wie ein Komma/Apostroph/Anführungszeichen zuviel oder zuwenig im SQL-Statement.
Zeige mal einfach deinen SQL-Code.
Wahrscheinlich findet sich dann auch eine Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#3

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 18:26
Hallo Emilio,

zunächst erst mal herzlich willkommen in der Delphi-Praxis.
Dieses Thema haten wir hier schn desöfteren. Verwende doch mal die Suchfunktion. Hier im Forum suchensortieren dbgrid. Du findest dann unter anderem folgenden Thread: DBGrid nach alphabet sortieren?.

Nachtrag: Ich hätte wohl besser hinsehen sollen. Versuche doch mal herauszubekommen, welches SELECT-Statement an die DB geschickt wird.
*NachdemStrohhalmgreif*: Ich könnte mir das es Probleme gibt mit einem Spaltentitel Name/Titel. Ein derartiger Feldname sollte zumindest von "" umschlossen werden.
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#4

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 18:50
Hi,

das ging ja schnell - bin ja noch gar nicht richtig vorbereitet ...

der zuletzt ausprobierte code lautet:

Delphi-Quellcode:
precedure TForm1.DBISAMDBGrid1titelClick(Cloumn: TColumn);

var sort : string;

begin
sort := 'select * from schallplatten';
sort := sort + 'order by' + Column.Field.FielName; ---->

DBISAMQuery1.Close;
DBISAMQuery1. SQL.Text := sort;
DBISAMQuery1.Open;

Die passende Fehlermeldung dazu:
... DBISAM Engine Error #11010 Table ...\Schallplattenorder.DAT does not exist. ...

----> Alternativ:
sort := sort + 'order by' + 'Column.Field.FieldName';

erzeugt die Fehlermeldung:
... EDBISAM Engine error # 11949 SQL error - End of SELECT statement expected, instead found ',", Prozess wurde ...

Bin gespannt auch Eure Kommentare

Bis dahin

Emilio

[edit=Sharky]Doppelposting gelöscht und Delphi-Tags eingefügt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 19:00
Hi,

mir schwant, Du solltest Deinem SQL-string ein paar Leerzeichen gönnen.

Zwei generelle Tipps: Sollte ich recht haben, hätte der Debugger Dir das recht schnell gezeigt.

Schau dir für den zusammenbau von SQL-Strings mal die Format funktion an, damit wird das meiner Meinung nach bei komplexeren Strings einfacher zu handeln.

Ach so, das erste Statement sollte gar nicht kompilieren.
Grüsse
Woki
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 19:06
Hai Emilio,

ich baue meine SQL-Abfragen meisst so auf:

Delphi-Quellcode:
precedure TForm1.DBISAMDBGrid1titelClick(Cloumn: TColumn);
begin
  DBISAMQuery1.Close;
  DBISAMQuery1.SQL.Clear;
  DBISAMQuery1.SQL.Add ('SELECT * FROM schallplatten ORDER BY');
  DBISAMQuery1.SQL.Add (Column.Field.FielName);
  DBISAMQuery1.Open;
end;

Dann passieren mir nicht so schnell Fehler beim aufbau der SQL-Anweisung.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#7

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 19:18
Hi again,

vielen Dank an Woki und Sharkey.

Woki, was meinst Du mit mehr Leerzeichen im SQL-String gönnen? Kannst du das bitte konkretisieren?

Sharkey,
hab Deinen Tipp gleich ausprobiert.
Fehlermeldung: ...EAccessViolation ... Zugriffsverletzung bei Adresse ... ?

Muß ich irgendwo noch einen Eintrag setzen?

Emilio
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 19:27
Versuche es mal so:


Delphi-Quellcode:
precedure TForm1.DBISAMDBGrid1titelClick(Cloumn: TColumn);
var
 sort_field : String;
begin
  sort_field := Column.Field.FielName
  DBISAMQuery1.Close;
  DBISAMQuery1.SQL.Clear;
  DBISAMQuery1.SQL.Add ('SELECT * FROM schallplatten ORDER BY');
  DBISAMQuery1.SQL.Add (sort_field);
  DBISAMQuery1.Open;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 19:33
Hallo Emilio,

Zitat von Emilio:
Woki, was meinst Du mit mehr Leerzeichen im SQL-String gönnen? Kannst du das bitte konkretisieren?
der Code
Delphi-Quellcode:
sort := 'select * from schallplatten';
sort := sort + 'order by' + Column.Field.FielName;
liefert im String sort folgendes: select * from schallplattenorder byfeldname. Wie Du siehst fehlen vor und nach order by Leerzeichen. Ich denke aber, das ist nicht die Ursache für die Fehlermeldung. Ich vermute eher, dass die Tabelle schallplatten tatsächlich nicht gefunden wird. Wie teilst Du der DBISAMQuery (die ich übrigens nicht kenne) mit, in welchem Verzeichnis sich die Tabellen befinden? Gibt es so etwas wie eine DBISAMDatabase oder DBISAMConnection?
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#10

Re: Sortieren von Datensätzen im DBGrid

  Alt 14. Dez 2003, 19:39
Hi Sharky,

bin geplättet ! - s'duut.


Allerdings bei Klick auf die Spaltentitel Name/Titel oder Interpret/Gruppe kommt wieder die Fehlermeldung mit dem erwartetenden Ende des SQL-Statements - das sollte aber wohl eher an den Feldbezeichnungen liegen, die ich vergeben habe, bzw. SELECT * geht dann wohl nicht ...

Gerne hätte ich noch eien Tipp, warum die anderen Lösung nicht "funktioniert" haben.

Viele Grüße

Emilio
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:26 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