DBGrid Spalte sortieren, Spaltenname mit Leerzeichen
-
es funktioniert so:
ADOQuery1->Sort = "["+Column->FieldName+"]";
und im SQL:
SELECT ColName AS [Column Name] ... SELECT ColName AS 'Column Name' ...
-
Sehr merkwürdig. Trage ich den Namen in eckicgen Klammern direkt dort ein, funktioniert es nicht. Verwende ich deine Schreibweise mit dem Column->FielName, klappts. Weiß nicht warum, aber danke.
-
Ok, da hatte sich noch ein Leerzeichen eingeschlichen. Darum nimmt er meine Handeingabe nicht *ggrrr*
-
Hi Heimelchen,
Tipp von mir: Tu Dir selbst bitte einen Gefallen und lass Leerzeichen und alle Sonderzeichen in Feldnamen weg. Dafür gibts den Unterstrich (ebenso natürlich alle resevierten Worte von SQL).
Wenn Du nur die Buchstaben a-z, den Unterstich und ab der zweiten Stelle die Ziffern 0-9 verwendest umgehst Du einen großen Teil möglicher Stolpersteine.
Die Spaltenüberschriften kannst Du ja trotzdem unabhängig davon anders benennen.Gruß Mümmel
-
Ich verwende Leerzeichen nur, wenn der Anwender was sieht. Hier beispielsweise bei SELECT ColName AS "Column Name". Und ich der Berechnung von "Column Name" wurden versehentlich zwei Leerzeichen in der Mitte eingefügt. Und zum Sortieren muss man leider den Alias verwenden...
-
Auch das ist unnötig, schließlich gibt es bei den Datenfeldern die Eigenschaft DisplayName, respektive DisplayLabel.
-
Joe_M hat recht, das ist viel eleganter!
Im Feldereditor der ADOQuery kannst du die Felder für die Spalten im Grid angeben und dort über DisplayLabel den Anzeigenamen ändern. Hier kannst du auch angeben, welche Spalten gezeigt und welche nicht gezeigt werden
Edit: Ach übrigends immer Size auf die richtige Größe stellen, sonst sieht man nix (manchmal wird da einfach bei Neuerstellung eines Feldes Size auf 0 gesetzt)!
-
Mal abgesehen davon, dass sich die Feldauswahl erst zur Laufzeit entscheidet und damit der Feldeditor flach fällt, ja...
-
den Displayname der einzelnen Spalten kann man auch zu Laufzeit setzen, genau wie die Breite der Spalte
-
er meint die Feldauswahl, denke ich.
aber auch hier kannst du die ausgewählten Felder bei Visible auf true setzen und alle anderen auf false. ich habe das gleiche auch in einem meiner projekte gemacht
-
Um das mal abzuschließen: ja, man kann ja so ziehmlich alles zur Laufzeit tun, das habe ich ja auch gar nicht geleugnet.
Was ich vielmehr meinte ist, dass es für mich vom Aufwand her einfacher ist, einfach die Feldnamen schon in den Query zu schreiben. Dann hab ich alles in einem Abwasch und muss nicht im zweiten Schritt nochmal ran. Mal abgesehen davon, dass in der Abfrage mehrere Spalten den gleichen Namen haben und ich ohnehin die Spalten umbenennen muss, um sie eindeutig zu kennzeichnen.
-
Das sind 15 Minuten Tipparbeit. Wie lange hast Du doch gleich nach dem Fehler gesucht?