Einzelnen Beitrag anzeigen

leonreiser

Registriert seit: 16. Jul 2015
30 Beiträge
 
Delphi XE8 Professional
 
#1

DBEdit mit MYSQL Password('') Funktion

  Alt 19. Okt 2017, 16:39
Datenbank: MYSQL • Version: 5.6.35 • Zugriff über: Firedac
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
'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
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]='1then
       cbCountry.Canvas.TextRect(Rect, Rect.Left, Rect.Top, 'Deutschland');

  if cbCountry.Items[index]='2then
       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
  Mit Zitat antworten Zitat