Hi zusammen
Um mir die Session-Variable meiner
MySQL-
DB anzuzeigen und sie gegebenenfalls ändern zu können, habe ich folgende Konstrukte:
In FormCreate der Hauptform:
Delphi-Quellcode:
...
Self.EdiSessionVarName.Text := IntToStr(FDMySQLDml.MySQLCorrespondent.MaxAllowedPacket);
Self.UpDSessionVarMB.Position := Round(FDMySQLDml.MySQLCorrespondent.MaxAllowedPacket/1048576);
...
Nach Programmstart zeigen sich mir in der Werkzeugleiste 2 Edits, wie die Anhänge das zeigen. Beide sind ReadOnly, das kleinere ist mit einem TUpDown verbunden und zeigt dessen Positionswert an, der einen Megabytewert darstellt. Das Grössere zeigt diesen Wert in Bytes umgerechnet - dieser Wert wird schlussendlich auch in die Sessionvariable MaxAllowedPacket des Servers geschrieben/von da gelesen.
Ein Klick auf das UpDown verändert nun den Positionswert und damit den Wert der Edits:
Delphi-Quellcode:
procedure TCM_First.UpDSessionVarMBClick(Sender: TObject; Button: TUDBtnType);
begin
EdiSessionVarMB.Text := IntToStr(UpDSessionVarMB.Position);
EdiSessionVarName.Font.Color := clred;
EdiSessionVarName.Text := IntToStr(UpDSessionVarMB.Position * 1048576);
end;
Hier wird der Text rot dargestellt, um deutlich zu machen, dass der neue Wert noch nicht dem Server übergeben wurde.
Entsprechen die Werte den Wünschen des Users, muss dieser nun den nebenstehenden'Ändern'-Button anklicken, um den Wert in die Sessionvariable zu schreiben:
Delphi-Quellcode:
procedure TCM_First.BtnChangeClick(Sender: TObject);
begin
FDMySQLDml.MySQLCorrespondent.MaxAllowedPacket := UpDSessionVarMB.Position * 1048576;
ChooseMaxAllowedPacket;
end;
procedure TCM_First.ChooseMaxAllowedPacket;
begin
EdiSessionVarName.Font.Color := clWindowText;
EdiSessionVarName.Text := IntToStr(FDMySQLDml.MySQLCorrespondent.MaxAllowedPacket);
UpDSessionVarMB.position := Round(FDMySQLDml.MySQLCorrespondent.MaxAllowedPacket/1048576);
EdiSessionVarMB.Text := IntToStr(UpDSessionVarMB.Position);
end;
In ChooseMaxAllowedPacket soll der neue Wert ausgelesen und den beteiligten Kmponenten zugewiesen werden. Die letzte Zeile habe ich eingefügt; aber diese Anweisung wäre offenbar gar nicht nötig. Und abei dachte ich schon, ich hätte das Problem gelöst...
Im Anhang finden sich einige Jpegs, die die Werte zu verschiedenen Zeitpunkten darstellen. Ganz offenbar wird zwar die Servervariable geändert, mir aber erst nach einem Programmneustart die Änderung auch dargestellt.
Nachdem ich mir die Jpegs nach dem Hochladen per Vorschau angesehen habe, hier doch noch einige Erläuterungen:
- Bild 1 zeigt die Box gleich naach dem Programmstart
- Bild 2 zeigt die Box nach dem Betätigen des TUpDown
- Bild 3 zeigt die Box nach anklicken des Ändern-Buttons
Was, zum Kuckuck, mache ich falsch?
Gruss
Delbor