Moin...
Zitat:
Bin für jeden Tip dankbar
Das nehme ich dann mal wörtlich...
myaustr:=Unicodestring(stringreplace(StringGrid3.Cells[1,CitNameIdx],'?','_',[rfReplaceAll]));
... niemals visuelle Controls als Datenspeicher mißbrauchen. In deinem Falle bedeutet das nur Daten in Richtung Stringrid für die Anzeige und niemals in den Zellen lesen. In der Regel hängt man an den Listeneintrag das Datenobjekt an und liest darin.
Beispiel:
Im Datenobjekt ist das Geburtsdatum ein TDateTime. Je nach Ländereinstellung könnte man das im Grid anders darstellen. Im Datenobjekt bleibt es ein TDateTime.
Wenn du mit dem Gridinhalt "rechnen" wolltest, müßtest du den String erst immer wieder zum TDateTime wandeln.
MyQuery3.SQL.text := Format('SELECT cites, auname, id from aunames where aunames.auname like ''%s'' order by cites desc; ',[myaustr]);
... LIKE ist in einer
SQL Abfrage eher ungünstig. Da kann das
DBMS keinen Index benutzen. Hier sollte man zumindes mal Überlegungen anstellen ob sich das durch ein optimiertes Datenbankdesign entfernen läßt.
MyQuery3.ParamByName('AU').AsString:=austr;
... Richtig:
SQL Anweisungen grundsätzlich mit Parametern.