╩αΩ ∩≡εΓσ≡ ≥ⁿ Ωε≡≡σΩ≥φε±≥ⁿ Σε±≥≤∩α Ω ßατσ Σαφφ√⌡?

╤δσΣ≤■∙α  ⌠≤φΩ÷Φ  ∩≡εΓσ≡ σ≥ Σε±≥≤∩ Ω ßατσ Σαφφ√⌡ Φ Γ√Σασ≥ Γετ∞εµφ√σ ∩≡Φ≈Φφ√, σ±δΦ Σε±≥≤∩ φσ ≤Σασ≥±  ε±≤∙σ±≥ΓΦ≥ⁿ. ╘≤φΩ÷Φ  ΓετΓ≡α∙ασ≥ τφα≈σφΦσ True Γ ±δ≤≈ασ ≤±∩σ°φεΘ ε∩σ≡α÷ΦΦ Φ False Γ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ.

function TBDEDirect.CheckDatabase: Boolean;
var
  DS: TDataSource;
begin
  Result := False;
  DS := GetDataSource;
  if DS = nil then
    begin
      MessageDlg('═σ ≤±≥αφεΓδσφα ±Γ τⁿ ± ²δσ∞σφ≥ε∞-Φ±≥ε≈φΦΩε∞ Σαφφ√⌡.'+
        '╧≡εΓσ≡ⁿ≥σ ≤±≥αφεΓΩ≤ ±ΓεΘ±≥Γα DataSource.',
        mtError, [mbOK], 0);
      Exit;
    end;
  if DS.DataSet = nil then
    begin
      MessageDlg('─ε±≥≤∩ Ω ßατσ Σαφφ√⌡ φσΓετ∞εµσφ.', mtError,
        [mbOK], 0);
      Exit;
    end;
  if TDBDataSet(DS.DataSet).Database = nil then
    begin
      MessageDlg('─ε±≥≤∩ Ω ßατσ Σαφφ√⌡ φσΓετ∞εµσφ.', mtError,
        [mbOK], 0);
      Exit;
    end;
  if TDBDataSet(DS.DataSet).Database.Handle = nil then
    begin
      MessageDlg('─σ±Ω≡Φ∩≥ε≡ (Handle) ┴─ φσΣε±≥≤∩σφ.', mtError,
        [mbOK], 0);
      Exit;
    end;
  if DS.DataSet.Handle = nil then
    begin
      MessageDlg('─σ±Ω≡Φ∩≥ε≡ Ω≤≡±ε≡α (Cursor-Handle) φσΣε±≥≤∩σφ.', mtError,
        [mbOK], 0);
      Exit;
    end;
  Result := True;
end;




╤εΓσ≥√ φα≈Φφα■∙Φ∞