Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank alphabetisch sortieren (https://www.delphipraxis.net/14451-datenbank-alphabetisch-sortieren.html)

Spurius 9. Jan 2004 16:14


Datenbank alphabetisch sortieren
 
Hallo,
wie kann ich meine Datenbank alphabetisch sortieren?
Ich habs mit:
Code:
 query1.Active := false;
 query1.SQL.Text := 'select * from adressen order by vorname desc';
 query1.Active := true;
versucht, aber das geht nicht. was brauch ich denn alles dafür auf meinem Form? reicht ein Query, oder brauch ich auch ne Datasouce?
Gruß
Spurius

r_kerber 9. Jan 2004 16:24

Re: Datenbank alphabetisch sortieren
 
Hallo Spurius,

hatte wir hier schon öfters. Trotzdem noch einmal: Ein TDataModul mit TDataBase, TQuery und TDataSourc. Und auf die Form ein TDBGrid. Schau doch auch mal in Dein Delphi-Verzeichnis, da gibt es auch ein paar Demo-Programme!

Spurius 9. Jan 2004 17:30

Re: Datenbank alphabetisch sortieren
 
Hallo,
also bei den Demos hab ich eigentlich nichts gefunden, was mir weiterhilft.
Kannst du mir vielleicht einen thread sagen, wo das besprochen wurde? Oder kurz erklären?
Und möglichst ohne alias, weil ich weiss nicht wirklich was das ist.
Gruß
Spurius

r_kerber 9. Jan 2004 18:03

Re: Datenbank alphabetisch sortieren
 
Heißer Tip: Die DP hat eine SuchfunktionHier im Forum suchenDatenbank AND sortieren

Spurius 9. Jan 2004 23:18

Re: Datenbank alphabetisch sortieren
 
Ich hab schon gesucht, aber ich weiss ja nichmal geau, wie ich SQL einsetzten kann. Was ich alles auf meinem Form etc. brauche!

Spurius 10. Jan 2004 09:09

Re: Datenbank alphabetisch sortieren
 
Ok, es geht jetzt so einigermaßen. Aber was muss ich machen, damit die Werte sortiert in der Db gespeichert werden? Das die Werte nicht nur zur Laufzeit sortiert sind?

Robert_G 10. Jan 2004 09:14

Re: Datenbank alphabetisch sortieren
 
Dafür müsstest du die Tabelle neu schreiben.
Ist aber Bullshit, denn du greifst doch eh mit SQL darauf zu
:arrow: dann kannst du immer so sortieren wie du willst

r_kerber 10. Jan 2004 09:23

Re: Datenbank alphabetisch sortieren
 
Zitat:

Zitat von Spurius
Aber was muss ich machen, damit die Werte sortiert in der Db gespeichert werden? Das die Werte nicht nur zur Laufzeit sortiert sind?

Dafür ist eine Datenbank doch da, damit sie Dir die ungeordnet abgespeicherten Daten nach Deinen Wünschen aufbereitet! Sonst könntest Du ja gleich Textdateien benutzen und diese in regelmäßigen Abständen neu sortieren lassen.
BTW: Was Du an Komponenten benötigts hatte ich Dir doch bereitsgeschrieben (und habe es einigen vorherigen Threads auch schon getan). Und Dein Codeschnipsel ist auch schon so in Ordnung. Also wo liegt jetzt noch Dein Problem?

Spurius 10. Jan 2004 09:48

Re: Datenbank alphabetisch sortieren
 
Ich will die DB mit den Rave reports ausdrucken, und dafür brauch ich sie halt sortiert.

Sharky 10. Jan 2004 09:54

Re: Datenbank alphabetisch sortieren
 
Zitat:

Zitat von Spurius
Ich will die DB mit den Rave reports ausdrucken, und dafür brauch ich sie halt sortiert.

Hai Spurius,

die Daten müssen aber nicht auf dem DB-Server sortiert vorliegen. Durch deine SQL-Abfrage bekommst Du ja immer die nach deinen Vorgaben sortierten Daten zurück. Also werden sie auch auf deinem Report sortiert gedruckt!

r_kerber 10. Jan 2004 09:55

Re: Datenbank alphabetisch sortieren
 
Dann greifst Du eben mit einer TRvQueryConnection auf eine sortierte TQuery zurück!
BTW: Hier gibt es einen Artikel zur Verwendung von Rave: Delphi-Rave. Vielleicht hilft der Dir auch etwas.

Spurius 10. Jan 2004 10:06

Re: Datenbank alphabetisch sortieren
 
Hallo,
danke für die viele Hilfe. Das mit dem Rave geht.
Aber meine Suchfunction geht bisher über ein table, weil mit sql die Groß/Kleinschreibung beachtet werden muss. Kann man das auch so machen, dass bei test -> Test gefunden wird?
Gruß
Spurius

Robert_G 10. Jan 2004 10:16

Re: Datenbank alphabetisch sortieren
 
SQL-Code:
SELECT *
FROM  IrgendWas
WHERE Upper(SuchFeld) Like '%TEST%'
{Edit]verklickt...[/Edit]

Upper() gibt einen Text in Großbuchstaben aus
"Like" ist dir bestimmt schon einmal über den Weg gelaufen
'%TEST%' => die "%" vorne & hinten bewirken, dass das Feld nur 'TEST' enthalten muss, um gefunden zu werden. (bei manchen DBs muss % mit * vertauscht werden)

Sharky 10. Jan 2004 10:16

Re: Datenbank alphabetisch sortieren
 
Zitat:

Zitat von Spurius
.... Kann man das auch so machen, dass bei test -> Test gefunden wird?...

SQL-Code:
SELECT * FROM tabelle WHERE UPPER (feldname) = 'TEST'

Hansa 10. Jan 2004 10:16

Re: Datenbank alphabetisch sortieren
 
ich mache das immer so ungefähr :

SQL-Code:
DS.SelectSQL.Text := 'SELECT * FROM TABELLE WHERE UPPER (NAME) = UPPER (''%' + Edit1.Text + '%'') ORDER BY NAME';
[EDIT]3 Postings in 1 Min. :mrgreen: So mache ich es im Original:
SQL-Code:
    DS.SelectSQL.Text := 'SELECT * FROM TABELLE WHERE UPPER (NAME) LIKE UPPER (''%' + LabeledEdit1.Text + '%'') ORDER BY NAME';
Das geht noch einen Schritt weiter und würde alle Namen suchen, in denen TEST vorkommt, egal wie geschrieben !

Spurius 10. Jan 2004 10:23

Re: Datenbank alphabetisch sortieren
 
Ok, vielen Dank.
Aber ich hab noch ne Frage :oops:
Ich mach eine Adressenverwaltung und da muss ich ja auch neue Datensätze hinzufügen können.
Geht das mit SQL(Hab Gefallen dran gefunden :-D ) oder muss ich da ein Table verwenden?

Robert_G 10. Jan 2004 10:30

Re: Datenbank alphabetisch sortieren
 
kleines SQL-Tut

r_kerber 10. Jan 2004 10:32

Re: Datenbank alphabetisch sortieren
 
Mit dem SQL-Befehl INSERT INTO. Nähere Informationen findest Du auch in der OH unter lokaler SQL.

Spurius 10. Jan 2004 10:34

Re: Datenbank alphabetisch sortieren
 
Danke :)
Weisst du zufällig, warum ich nach einer Weile rumprobieren die Meldung bekomme: "Zu wenig Arbeitsspeicher"? Ich hab 512 DDR.
Gruß
Spurius

Sharky 10. Jan 2004 10:41

Re: Datenbank alphabetisch sortieren
 
Ohne Quellcode wird man das kaum sagen können.

Spurius 10. Jan 2004 11:01

Re: Datenbank alphabetisch sortieren
 
Ok.
In meine Db will ich Werte aus Editfeldern einfügen, wie geht das von der Syntax her? Wo müssen Hochkommas hin etc. ...
insert into adressen values(und da halt die edits);

r_kerber 10. Jan 2004 14:21

Re: Datenbank alphabetisch sortieren
 
Zitat:

Zitat von Spurius
"Zu wenig Arbeitsspeicher"?

Das ist ein bekanntes Problem der BDE. Einfach mal alle Verbindungen zur Datenbank schließen und neu versuchen oder gleich ohne BDE arbeiten. Dann gehen aber dBase und Paradox nicht.

Spurius 10. Jan 2004 15:38

Re: Datenbank alphabetisch sortieren
 
Ich hab halt mit der BDE angefangen, da ertrag ich das schon :-D
Aber nochmal, das insert funzt net bei mir, kann mir vielleicht jemand nen bissl code posten, wie ich edits inserten kann?
Gruß
Spurius

r_kerber 10. Jan 2004 15:45

Re: Datenbank alphabetisch sortieren
 
Bei Insert darfst Du nich TQuery.Open verwenden sonder TQuery.ExecSQL!
Zitat:

Zitat von Spurius
Ich hab halt mit der BDE angefangen, da ertrag ich das schon

Irgenwann ist aber keine BDE mehr Delphi bei! Die Weiterentwicklung ist schon seit Jahren eingestellt.

Spurius 10. Jan 2004 15:47

Re: Datenbank alphabetisch sortieren
 
Mein COde sieht so aus:
Delphi-Quellcode:
 query1.Active := false;
 query1.SQL.Text := 'insert into adressen values (und da sollen dbedits rein)';
 query1.ExecSQL;
 query1.Active := true;
übrigens: ich kann, wenn ich das programm ausführe, gar nicht in die edits schreiben :?:

Sharky 10. Jan 2004 15:51

Re: Datenbank alphabetisch sortieren
 
Wenn Du mit DBEdits arbeites geht das so nicht.

Erzeuge mit Query1.Insert einen neuen Datensatz und speichere ihn mit Query1.Post ab.

r_kerber 10. Jan 2004 15:53

Re: Datenbank alphabetisch sortieren
 
Nimm "normale" TEdit's und nach Möglichkeit eine separate TQuery für die Insert/Update/Delete-Befehle:
Delphi-Quellcode:
query2.SQL.Text := 'INSERT INTO adressen VALUES (' + QuotedStr (Edit1.Text) + ... + ')';
query2.ExecSQL;

Spurius 10. Jan 2004 15:56

Re: Datenbank alphabetisch sortieren
 
Mit query1.close vor query1.insert:
Operation bei geschlossener Datenmenge nicht ausführbar
Wenn gar nichts vor query1.insert steht:
Eine Datenmenge, die nur zum Lesen ist, kann nicht geändert werden
In was für einen Kontext muss ich dass denn einbinden?

r_kerber 10. Jan 2004 15:59

Re: Datenbank alphabetisch sortieren
 
Zitat:

Zitat von Sharky
Erzeuge mit Query1.Insert einen neuen Datensatz und speichere ihn mit Query1.Post ab.

Dann aber nicht vergessen:
Delphi-Quellcode:
Query1.RequestedLive := true;
Ich würde jedoch davon abreaten, da dies nur bei der BDE funktioniert. Bei ADO und dbExpress gibt es diese Eigenschaft schon nicht mehr!

Sharky 10. Jan 2004 16:00

Re: Datenbank alphabetisch sortieren
 
Hmmm....

da diese Frage (INSERT) nichts mehr mit der ursprünglichen (sortieren) zu tun hat währe es nett einen neuen Thread dafür zu öffnen. ;-)

Spurius 10. Jan 2004 17:18

Re: Datenbank alphabetisch sortieren
 
Ok, mach ich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz