Hallo
habe mich entschlossen auf .net umzusteigen mit Developer Studio 2006
Habe beim abspeichern eines Datensatzes in eine Interbase DB ein für mich unerklärliches Verhalten.
Alles läuft auf einer Windows form und funktioniert einwandfrei. Anzeigen, ändern, löschen und abspeichern.
Allerdings klappt das Abspeichern nur über einen Button, während der gleiche Aufruf über ein Context-Menü nicht zum Erfolg führt.
Ich weiß nicht weiter.
Vielleicht kann jemand helfen?
Gruss Terppe
public
edtPASSWORT: System.Windows.Forms.TextBox;
lblPASSWORT: System.Windows.Forms.Label;
con : BdpConnection;
ds : DataSet;
dv : DataView;
dad : BdpDataAdapter;
drv : DataRowView;
dr : DataRow;
curMan: CurrencyManager;
constructor Create;
procedure Neu(sender: System.Object; e: System.EventArgs); override;
procedure Open(sender: System.Object; e: System.EventArgs); override;
procedure Save(sender: System.Object; e: System.EventArgs); override;
procedure Delete(sender: System.Object; e: System.EventArgs); override;
procedure BindingControls;
procedure ActivateCurrencyManager;
procedure RefreshStatusBar;
end;
procedure frmTVE_BERECHTIGUNG.Save;
var b: TVE_BERECHTIGUNG;
begin
b := TVE_BERECHTIGUNG.Create;
StatusBar.Text := 'Schreiben der Änderungen in die Datenbank !';
if ds.HasChanges then ==> bei Button true sonst immer false
begin
if MessageBox.Show('DATENSATZ SPEICHERN ?','Achtung ?',
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) =
System.Windows.Forms.DialogResult.Yes then
begin
con.Open;
try
begin
dad.Update(ds, b.tn);
StatusBar.Text := 'Schreiben in die Datenbank erfolgreich!';
end;
except
MessageBox.Show('Fehler ... Satz schon vorhanden ?');
StatusBar.Text := 'Nicht erfolgreich.';
end;
con.Close;
end;
end else StatusBar.Text := 'Nicht in die Datenbank geschrieben !.';
b.Free;
end;
**Button***
procedure frmTVE_BERECHTIGUNG.btnSave_Click(sender: System.Object; e: System.EventArgs);
begin
self.Save(sender, e);
end;
**contextmenü**
procedure frmTVE_BERECHTIGUNG.cmSpeichern_Click(sender: System.Object; e: System.EventArgs);
begin
self.Save(sender, e);
end;
habe mich entschlossen auf .net umzusteigen mit Developer Studio 2006
Habe beim abspeichern eines Datensatzes in eine Interbase DB ein für mich unerklärliches Verhalten.
Alles läuft auf einer Windows form und funktioniert einwandfrei. Anzeigen, ändern, löschen und abspeichern.
Allerdings klappt das Abspeichern nur über einen Button, während der gleiche Aufruf über ein Context-Menü nicht zum Erfolg führt.
Ich weiß nicht weiter.
Vielleicht kann jemand helfen?
Gruss Terppe
public
edtPASSWORT: System.Windows.Forms.TextBox;
lblPASSWORT: System.Windows.Forms.Label;
con : BdpConnection;
ds : DataSet;
dv : DataView;
dad : BdpDataAdapter;
drv : DataRowView;
dr : DataRow;
curMan: CurrencyManager;
constructor Create;
procedure Neu(sender: System.Object; e: System.EventArgs); override;
procedure Open(sender: System.Object; e: System.EventArgs); override;
procedure Save(sender: System.Object; e: System.EventArgs); override;
procedure Delete(sender: System.Object; e: System.EventArgs); override;
procedure BindingControls;
procedure ActivateCurrencyManager;
procedure RefreshStatusBar;
end;
procedure frmTVE_BERECHTIGUNG.Save;
var b: TVE_BERECHTIGUNG;
begin
b := TVE_BERECHTIGUNG.Create;
StatusBar.Text := 'Schreiben der Änderungen in die Datenbank !';
if ds.HasChanges then ==> bei Button true sonst immer false
begin
if MessageBox.Show('DATENSATZ SPEICHERN ?','Achtung ?',
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) =
System.Windows.Forms.DialogResult.Yes then
begin
con.Open;
try
begin
dad.Update(ds, b.tn);
StatusBar.Text := 'Schreiben in die Datenbank erfolgreich!';
end;
except
MessageBox.Show('Fehler ... Satz schon vorhanden ?');
StatusBar.Text := 'Nicht erfolgreich.';
end;
con.Close;
end;
end else StatusBar.Text := 'Nicht in die Datenbank geschrieben !.';
b.Free;
end;
**Button***
procedure frmTVE_BERECHTIGUNG.btnSave_Click(sender: System.Object; e: System.EventArgs);
begin
self.Save(sender, e);
end;
**contextmenü**
procedure frmTVE_BERECHTIGUNG.cmSpeichern_Click(sender: System.Object; e: System.EventArgs);
begin
self.Save(sender, e);
end;
Comment