AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid/ADODataSet sortieren. WIE?
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid/ADODataSet sortieren. WIE?

Ein Thema von Dark Angel · begonnen am 19. Jul 2008 · letzter Beitrag vom 24. Jul 2008
Antwort Antwort
Seite 1 von 3  1 23      
Dark Angel
(Gast)

n/a Beiträge
 
#1

DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 11:15
Datenbank: Access • Version: 2003 • Zugriff über: ADOX
Hallo,
ich habe schon in mehreren Threads gelesen dass es nur möglich ist ein DBGrid zu sortieren indem man die ADODataSet sortiert. Nun darin liegt mein Probelem ich will nur eine bestimmte Spalte sortieren, also kein Button, und sie soll von klein nach groß sortiert werden (zB. 1, 5, 20, 100, 200,...). Die Spalte heist: "Temperatur in °C" und wenn ich in "ADODataSet1-->COmmandText-->"select * from Messdaten ORDER BY Temperatur in °C"" dann ist es mir gar nicht möglich die Dataset zu aktivieren, da dann dieser Fehler angezeigt wird:
"In-Operation ohne Klammern: () in Abfrageausdruck 'Temperatur in °C'"

Wenn ich aber eine andere Spalte eintrage (zB. "Ort") dann kalppt es mit dieser Spalte hervorragend.

Allerdings wird diese Spalte 'Ort' dann nicht sortiert, es ändert sich gar nichts.

Hinweis: Spalte 'Temperatur in °C' ist als "WideString" deklariert, aber es befinden sich natürlich nur Zahlen darin. Das ganze wird über ein Editfeld eingegeben. Es können Zahlen von -20 bis +50 vorkommen und ich will dass diese richtig sortiert werden von klein nach groß.

Ich hoffe Ihr könnt mir helfen. DANKE
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 11:19
Die Spalte heißt 'Temperatur in °C'? Etwas unglücklich gewählter Bezeichner in meinen Augen. Du könntest es mal so versuchen:Query.SQL.Text := Format('SELECT * FROM Messdaten ORDER BY %s',[QuotedStr('Temperatur in °C')]);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 11:20
Probiers mal so:
select * from Messdaten ORDER BY [Temperatur in °C] wenn mich nicht alles täuscht dürfte das die Syntax unter Access sein. Der Grund ist, weil du einen recht unkonventiellen Spaltennamen gewählt hast, stellt aber pribzipiell kein Problem dar.
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#4

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 11:59
wow das ging aber schnell und es funzt , sehr schön.

Jetzt hab ich allerdings ein weiteres Problem. die zahl muss ja in float sein damit das sortiren funktioniert und ich hab die Eingangs variable bereits in realforamt und bei DataSet hab ich auch unter datatyp ftfloat eingetragen. er zeigt mir allerdings immer noch beim start des programms die fehlermelgung "..unterschiedliche typen für feld 'temperatur in °C'.."

was hab ich übersehen??
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 12:03
Was für ein Type hat denn dein Temperaturfeld in der DB. Vielleicht solltest du da mal sowas wie Decimal oder Float wählen. Sag mir bitte nicht, dass du es in einem Varchar Feld stehen hast.

Kannst du nicht die Struktur ändern, muss du im Select casten:
select spalte1, spalte2..., cast([Temperatur in °C] as float) as [Temperatur in °C] from Messdaten ORDER BY cast([Temperatur in °C] as float) Das schlägt aber fehl, wenn die Umwandlung nicht funktioniert, und ist ausserdem wesentlich langsamer... Also besser die DB Strukur anpassen. (Vorsicht auf Datenverlust)
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#6

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 13:43
noch ist es in einem varchar, weil ich ja nicht weiß wie ich es ändern soll. Geht das denn nachträglich überhaupt??
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#7

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 13:53
ICH HABE ES GESCHAFFT.

LÖSUNG: ICH HAB EINFACH NOCHEINMAL ALLES EINGEBUNDEN UND ZUVOR WIE ZUVOR BEREITS GESAGT BEI DATATYP AUF 'ftFloat' UMGESELLT.


Vielen herzlichen Dank an alle
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 14:00
Zitat von Dark Angel:
LÖSUNG: ICH HAB EINFACH NOCHEINMAL ALLES EINGEBUNDEN UND ZUVOR WIE ZUVOR BEREITS GESAGT BEI DATATYP AUF 'ftFloat' UMGESELLT.
Das ist dennoch keine saubere Lösung. Die Daten sollen bereits in der DB sauber vorhanden sein, und nicht erst beim Client am Schluss versucht werden, konvertiert zu werden.
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#9

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 14:09
nene ich wandle das editfeld direkt beim schreiben in die variable mit strtofloat um und dann wird das in die DB geschrieben.

Aber jetzt hab ich gemerkt dass die Vorzeichen der Zahl nicht vorne sondern hinter der Zahl stehen das sieht echt blöd aus kann ich das irgendwie ändern??
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: DBGrid/ADODataSet sortieren. WIE?

  Alt 19. Jul 2008, 15:33
Zitat von Dark Angel:
Aber jetzt hab ich gemerkt dass die Vorzeichen der Zahl nicht vorne sondern hinter der Zahl stehen das sieht echt blöd aus kann ich das irgendwie ändern??
WO steht das? Dem Float ist es nämlich egal, wie er/sie dargestellt wird, eine Zahl ist eine Zahl. Normalerweise kann man das in der 'DisplayFormat'-Eigenschaft des persistenten Datenfeldes einstellen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 20:41 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