Beste Lösung für Problem...
-
ich würde beim anlegen des users intern ne nummer pro user vergeben und die beim programmstart nach dem login speichern. als variable, array wasweisich ....
-
@ Klaus: ja das PW will ich auch aus Datenbank holen...nur muss ich beim aufruf der PWÄndern Form wissen weelcher USer angemeldet ist...also doch zwischenspeichern, zB den Name! oder?
-
Hallo
ja, du must eben den Primary Key der Tabelle zwischenspeichern. Meistens ist das ein AutoInc-Feld, oder eben der UserName, wenn er eineindeutig ist.
Dann kannst du per Select ... Where den Datensatz wiederfinden.bis bald
akari
-
ist da die lösung mit dem primary key wirkl die beste? Od reicht es im prinzip nich eigentlich auch den name in einem MemoryStream zu speichern,,,und dann beim öffnen der PW Form zu laden und abzufragen?
-
Hallo
wie bereits geschrieben : Wenn du sicherstellst, das jeder User, also jeder Eintrag in der Accounttabelle einen anderen Loginnamen besitzt, kannst du dir auch den Loginnamen zwischenspeichern (wozu eigentlich ein MemoryStream? Ein AnsiString reicht doch) und dann direkt weiterverwenden.
bis bald
akari
-
Ahhhhhh

Das hab ich natürlich garnicht beachtet...hm....mmuss ich mir nomma durchn kopf gehen lassen!

-
mich würde das mal mit dem Key interessieren, kann mir das mal jemand zeigen?
@5er1al/akaria oder sonst wer?Also wie kann ich mein Selectergebniss (solang nur eins), als Key speichern?
-
Hallo
Was gibt es da groß zu zeigen?
Nehmen wir mal an, ein User benutzt Account X mit Loginname und Passwort, die du per Select überprüftSelect ID,Name,Password From Account Where Name = '<WertN>' And Password = '<WertP>'dann bekommst du entweder genau einen Datensatz oder keinen -> Fehlermeldung wegen falscher Eingabe.
Dann speicherst du entweder ID oder Name (jedenfalls einen eindeutigen Wert) zwischen.
Mußt du später auf denn Account zugreifen, denn der User benutzt hat, reicht dann einer der beiden AbfragenSelect ID,Name From Account Where Name = '<WertN>' Select ID,Name From Account Where ID = '<WertID>'um diesen Account zu finden.
bis bald
akari
-
aber wie mach ich das mit SetKey und GotoKey??
-
Hallo
das brauchst du gar nicht. du arbeitest direkt mit TQuery.
Bei der ersten Abfrage liest du den Inhalt den ID-Feldes aus :int ValueID; ... ValueID = TQuery->FieldByName("ID")->AsInteger; // Wenn ID-Feld ein // AutoInc-Feld istValueID sollte z.B. eine Member-Variable deines Hauptforms sein, damit du später darauf zugreifen kannst.
Um den Datensatz wiederzufinden, erstellt du dann diese AbfrageAnsiString QueryString = "Select ID,Name From Account Where ID = '" + IntToStr(ValueID) + "'";mit dem du dann eine TQuery öffnen kannst.
bis bald
akari
-
Kannst mir das trotzdem mal erklären...weil ich soviel tumprobiert habe, habs aber einfach nicht geschafft mit dem Key, da interessiert mich das!
Vielleicht kannst noch zu deinem jetztigen Beispiel mal eine erklärung geben?
Wäre lieb, danke!