-
Forum: Datenbanken
by -187-,
10. Okt 2010
Hm bisher wusste ich nicht das es das gibt und wofür es mir dienlich sein könnte. Werde mir es wohl mal angucken jedoch ist meine Anwendung jetzt eigentlich fertig :D
Das Problem war das sich ein Linefeed eingeschlichen hat. Hab den jetzt replaced und es läuft.
Ich danke euch allen mal wieder :) :thumb:
-
Forum: Datenbanken
by -187-,
10. Okt 2010
Uff ne damit hab ich noch nicht gearbeitet aber ich habe jetzt nochmal was anderes getestet. Wenn ich die Werte manuell in die DB einfüge dann klappt das sortieren. Wenn ich aber die Werte aus meiner Funktion einfüge dann klappt es nicht. Also die Ursache ist nicht der SQL Part ich werd mich mal auf die Suche machen. Vielleicht sind ja wirklich irgendwelchen Steuerzeichen oder so in dem String...
-
Forum: Datenbanken
by -187-,
10. Okt 2010
Es sind unterschiedliche Abfrage !!
Klicke ich auf Spalte 1 wird FELD1 in Spalte1 sortiert dargestellt.
Klicke ich auf Spalte 2 wird FELD2 in Spalte2 sortiert dargestellt.
-
Forum: Datenbanken
by -187-,
10. Okt 2010
Meine Spalten sind so definiert:
IBTable1.FieldDefs.Add('FIELD1', ftString, 50, false);
IBTable1.FieldDefs.Add('FIELD2', ftString, 50, false);
@ SirRufo, wofür sind die Sterne (*) ? SortColumn ist ne Variable vom Typ String also an dieser Stelle dürfen keinen Sterne sein^
Habe die Sterne mal weggelassen, das ändert jedoch nichts.
-
Forum: Datenbanken
by -187-,
10. Okt 2010
Okay es klappt doch noch nicht. Hier nochmal mein aktueller Code:
IBQuery1.SQL.Text:=
'SELECT FIELD1, FIELD2 from MYTABLE ORDER BY CAST(LPAD(' + SortColumn + ',50, ''0'') AS VARCHAR(50))' + SortOrder;
SortOrder ist halt ASC oder DESC je nach dem...
SortColumn ist die angewählte Spalte...
Habe nochmal ein Bild angehängt, Die Linke Spalte ist korrekt sortiert. Die Rechte Spalte...
-
Forum: Datenbanken
by -187-,
10. Okt 2010
Hm scheinbar liegt das Problem wo anders. Habe es mal mit einem Test Programm nachgebaut und das funktioniert es wie gewünscht.
-
Forum: Datenbanken
by -187-,
10. Okt 2010
Okay jetzt ist mir aufgefallen das es doch noch nicht so ganz klappt :(
Die sortiere Reihenfolge sieht jetzt so aus:
...
21104419
21927854
24498699
27539399
1003333
-
Forum: Datenbanken
by -187-,
6. Okt 2010
Jap da hab ich wohl mal wieder gepennt. Ich danke euch allen, das Thema wäre dann endlich erledigt!!
Dankeschön :thumb:
-
Forum: Datenbanken
by -187-,
6. Okt 2010
SortColumn:=DBGrid1.Columns.Items.FieldName;
SortOrder:='ASC';
IBQuery1.SQL.Text:=
'SELECT FIELD0, FIELD1, FIELD2, FIELD3, '+
'cast(lpad(FIELD4, 50, '' '') as varchar(50)) FIELD4, '+
'FIELD5, FIELD6, FIELD7 from MYTABLE ORDER BY ' + SortColumn + ' ' + SortOrder;
IBQuery1.Open;
-
Forum: Datenbanken
by -187-,
6. Okt 2010
Ja ist ja richtig aber wenn ich dann meinem DBGrid als Datenmenge das Query zuordne dann hab ich die Left Paddings da mit drinne.
IBQuery1.SQL.Text:=Mein LPAD Sorting Code;
IBQuery1.Open;
DBGrid1.DataSource.DataSet:=IBQuery1;
-
Forum: Datenbanken
by -187-,
6. Okt 2010
Versteh ich nicht, mit dem Code füge ich doch ein LPAD ein? Ich möchte doch grade kein LPAD im Grid haben sondern nur beim Sortieren :?:
Und natürlich möcht ich nicht an der Sortierung ändern. Also nachdem ich Sortiert habe möchte ich die LPADs wieder entfernen und dann erst die Datenmenge dem Grid übergeben.
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Ah okay danke, hast du auch ne Idee zu meinem Leerzeichen im Grid Problem ?
Edit: Klappt prima mit Cast !! Danke!
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Hab das Problem jetzt gelöst indem ich mir für die betroffenen Felder ein eigenen SQL Command gebaut habe. Leider bin ich mit LPAD Lösung ein wenig unglücklich weil die Übersicht im DBGrid mit left padded Leerzeichen sehr merkwürdig aussieht. Kann ich die Leerzeichen irgendwie wieder entfernen bevor ich die Datenmenge im DBGrid einfüge?
Zb im OnDrawCell die Leerzeichen nicht "mit malen" :D
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Sobald ich 2mal LPAD im SQL Command habe krieg ich den Fehler: Implementation limit exceeded. Block size exceeds implementation restriction
Ich habe 11 Felder. Muss ich jetzt vor dem Sortieren jedesmal abfragen welches Feld geklickt wurde und für jedes Feld einen Eignen SQL Command schreiben in welchen dann das geklickte Feld mit LPAD versehen wird :/ Irgendwie eine blöse Lösung...
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Hmm zuviele Statements, was nun ?
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Also der Grund warum ich alle Felder abgefragt habe ist eigentlich nur weil ich bisher dachte das man das beim sortieren muss. Aber jetzt klingt es so als müsste ich nur das zu sortierende Feld abfragen. Würde auch Sinn machen^ :D
Btw habe nochmal nachgeschaut habe doch FB2.1 also brauch ich den declare code nicht.
Edit: Nein ich muss wirklich alle Felder abrufen ...
Edit2: Okay habs...
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Das hab ich versucht aber scheinbar mach ich irgendwas grundlegend falsch.
Den Table habe ich so erstellt:
...
IBTable1.TableName:='LIST';
IBTable1.FieldDefs.Add('LITEMS', ftString, 10, false);
...
Wenn ich mit folgenden Code den Zugriff versuche krieg ich immer den Fehler das dass Feld nicht gefunden wurde:
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Hmm so wirklich hab ich's wohl noch nicht begriffen. Also ich muss die Funktion deklarieren. Muss ich das einmal machen und dann merkt die DB sich das oder muss ich das jedesmal machen wenn ich die Funktion nutzen möchte.
Desweiteren sah meine Sort Query so aus:
IBQuery1.SQL.Text:='SELECT * FROM MYTABLE ORDER BY ' + SortColumn + ' ' + SortOrder;
Muss ich das dann so anwenden: ?...
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Okay das hab ich kapiert, super. Werds gleich ausprobieren.
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Das hört sich schon gut an aber trotzdem nochmal eine Frage:
select lpad(feld, 10, ' ') from table
Bedeutet das dass die ersten 10 Stellen mit einem Leerzeichen aufgefüllt werden ?
Danke !
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Ist FILL_LEFT eine SQL Funktion oder hast du das jetzt nur so als Bsp. genannt? Jedenfalls kennt mein DBMS diese Funktion nicht. Ja ich könnte beim Schreiben der Werte Leerzeichen dranhängen dann müsste es ja funktionieren. Ich hatte schon an führende Nullen gedacht aber das sieht mehr dann zu unübersichtlich aus. Auf Leerzeichen bin ich nicht gekommen ^^
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Sag das nicht so einfach daher :) Wäre nett wenn du ein Beispiel oder ein Tutorial dafür hättest.
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Ja hab das eben auch in einem anderen Thread hier gefunden. Klappt solange kein String vorhanden ist. Bei meinem System hab ich aber Integer und String Werte :!:
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Versteh nur Bahnhof, kannste das nochmal genauer erklären vielleicht weiss ich dann wonach ich suchen kann :)
-
Forum: Datenbanken
by -187-,
5. Okt 2010
Moin, ich hab noch ein Fehler in meiner Datenbank Anwendung entdeckt! :)
Mit folgendem Code sortiere ich meine Datenmenge:
SortColumn:=DBGrid1.Columns.Items.FieldName;
SortOrder:='ASC';
IBQuery1.SQL.Text:='SELECT * FROM MYFIELED ORDER BY ' + SortColumn + ' ' + SortOrder;
MyField ist ftString,50 und enthält entweder eine Fehler MSG oder einen Zahlenwert. Jetzt möcht ich die Zahlenwerte...