Beste Lösung für Problem...



  • @ 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üft

    Select 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 Abfragen

    Select 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 ist
    

    ValueID sollte z.B. eine Member-Variable deines Hauptforms sein, damit du später darauf zugreifen kannst.
    Um den Datensatz wiederzufinden, erstellt du dann diese Abfrage

    AnsiString 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!


Anmelden zum Antworten