Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBEdit mit MYSQL Password('') Funktion (https://www.delphipraxis.net/194127-dbedit-mit-mysql-password-funktion.html)

leonreiser 19. Okt 2017 16:39

Datenbank: MYSQL • Version: 5.6.35 • Zugriff über: Firedac

DBEdit mit MYSQL Password('') Funktion
 
Hallo Leute,

Ich habe zwei Probleme mit der DBEdit Komponente:

Erste Frage:

Und zwar möchte ich das Value von einem DBEdit als Passwort-Hash abspeichern (Update Statement).
Vorher habe ich den Sql String zusammengestöpselt und einfach
Delphi-Quellcode:
'SET(passw=PASSWORD(' + quotedStr(EditPW.text) + '))'
gemacht. Jetzt wollte ich mal auf DBEdits umrüsten, da ich das sauberer finde.
Jedoch weiss ich jetzt nicht wie ich da die PASSWORD() Funktion reinbekomme.
Ich habe schon versucht
Delphi-Quellcode:
EditDialog.dsEdit.DataSet.FieldByName('passw').Value := 'PASSWORD(' + QuotedStr(EditDialog.EditPw.Text) + ')';
vor dem Dataset.Post einzufügen, jedoch nimmt er das als String und nicht als Funktion.
Soll heissen es steht dann z.B.: PASSWORD('testpassword') in der Datenbank.
Wie könnte ich das Realisieren?

Zweite Frage:
Ich habe eine TDBComboBox, in der verschiedene Items sind.
Wenn ich jetzt z.B.: Deutschland auswähle, soll eine bestimmte Zahl in der Datenbank gespeichert werden.
Also z.B.: Deutschland=1, England=2,Brazilien=3....
Das habe ich jetzt mit folgendem Workaround realisiert:

Die TDBComboBox mit Zahlen gefüllt und dann:
Delphi-Quellcode:
procedure TEditDialog.cbCountryDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  if cbCountry.Items[index]='1' then
       cbCountry.Canvas.TextRect(Rect, Rect.Left, Rect.Top, 'Deutschland');

  if cbCountry.Items[index]='2' then
       cbCountry.Canvas.TextRect(Rect, Rect.Left, Rect.Top, 'England');
end;

Jedoch empfinde ich das als unsauber. Ich habe online dazu auch etwas mit name value paaren gelesen,
jedoch habe ich das nicht hinbekommen.

Ich hoffe das es jetzt nicht so schlimm ist, das ich 2 Fragen in einem Thread behandle, falls doch, einfach sagen und ich mache noch einen neuen Thread für die ComboBox auf. Ich dachte nur dass die Fragen ähnlich genug sind.

MFG Leon


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.

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