Hallo!
Ich hab da so ein kl Problem mit der Locate-Funktion einer
query.
Ich Speichere über eine Funktion neue Werte in seine
MySQL-
DB (INSERT INTO ...). wenn dies geschehen ist update ich die Form, so das der neue Datensatz auch in dem DBGrind enthalten ist. Nun möchte ich aber das ich auf den Datensatz springe den ich zuletzt abgespeichert habe springen. Last-Funktion auf der
Query bringt nicht wirklich viel, da der
SQL-Befehl nach bestimten Kreterien sortiert. Also habe ich mir das so gedacht:
Delphi-Quellcode:
FMain.showQuVeranstaltungStart;
//SQL-String zum Update ausführen und Query öffnen
DMDatenModul.qubenutzer.SQL.Text := '
select max(id) as id from tbl_veranstaltung';
//bestimmen des letzten Eintrages in der DB-Tabelle
DMDatenModul.qubenutzer.Open;
DMDatenModul.quveranstaltung.Locate('
id', DMDatenModul.qubenutzer.FieldByName('
id').AsVariant, []);
//auf letzten Datensatz der DB-Tabelle springen
FillEditFields;
//füllen alles Eingabefelder (EditFelder, Listboxen,...)
FMain = Hauptform des Programmes
qubenutzer, quveranstaltung =
Query's
Die Felder selbst gibt es alle. Das Programm funktioniert auch wie gewünscht. Außer halt, dass er nicht auf den Datensatz springt.
Was braucht Ihr noch an Infos? Ich bekomme auch keine Fehlermeldung oder etwas in der Art. Wenn ich bei dem Suchparameter AsInteger oder AsString nehme bleibt es bei dem gleichen Ergebnis.
s
edit: Ich habe auch schon nen Teil mit den LocaleOptions probiert. Wenn ich Sie leer lasse passiert wie gesagt nicht. Wenn ich die Eintrage die in der Hilfe stehen kennt er die bezeichner nicht. Und wenn ich mir die Bezeichner selber deklariere dan bekomme ich Fehler durch inkompatible Typen TOptions und Set ....
editII: Jetzt habe ich in die uses
DB mit angefügt. Er kennt jetzt die Option "loPartialKey". Aber das Gesamtergebis ist immer noch so, dass es nicht so ist wie ich es haben möchte.