سلام
ضمنا من با ADO دلفي 7 به SQL server 2000 وصل مي شوم.
من دستور زير را در رويداد BeforePost نوشتم كه اولا : باگ ذخيره نشدن DBCombobox درست شود كه اين عالي كار مي كند.
ثانيا: فاصله هاي خالي تايپ شده حذف كند.
حال من كه در بانك SQL حالت AlloNulls را براي فيلد شماره كارمندي فعال مي كنم اگر فاصله خالي يك يا چندتا بزنم مي گيرد و خطاي AlloNulls مخصوص SQL Server كه جلوي ذخيره يك ركورد بدون شماره كارمندي را نمي دهد!
procedure TMainForm.ADOTable1BeforePost(DataSet: TDataSet);
begin
with DynamicForm do
begin
Fixed bug do not save when open photo,...for DBCombobox
for i := 0 To ComponentCount-1 Do
begin
If Components[i] is TDBCombobox Then
If not( TDBCombobox(Components[i]).Field.IsNull ) Then
TDBCombobox(Components[i]).Field.Value := Trim(TDBCombobox(Components[i]).Text);
If Components[i] is TDBEdit Then
If not( TDBEdit(Components[i]).Field.IsNull ) Then
TDBEdit(Components[i]).Field.Text := Trim(TDBEdit(Components[i]).Text);
//If Components[i] is TDBMemo Then //!!! Because often show Access Violation error
//TDBMemo(Components[i]).Field.Text := Trim(TDBMemo(Components[i]).Text);
end;// end for
end;//end with
end;