阅读内容 

Delphi三十六之数据库篇

[日期:2001-01-12] 来源:yesky  作者:陈立平 [字体: ]
  1.在TDBGrid中将Enter键用作Tab键

  //设置窗体的KeyPreview为True

procedure TForm1.FormKeyPress(Sender: Tobject; var Key: Char);

 begin
  if Key = #13 then
  if not (ActiveControl is TDBGrid) then
   begin
    Key := #0;
    Perform(WM_NEXTDLGCTL, 0, 0);
  end
 
 else
  if (ActiveControl is TDBGrid) then
   with TDBGrid(ActiveControl) do
  if selectedindex $#@60; (fieldcount -1) then
   selectedindex := selectedindex +1
  else
   selectedindex := 0;

  end;

  2.删除记录前显示汉语的提示对话框

  //设置DbNavigator的ConfirmDelete属性为False
  //在数据集控件的BeforeDelete事件中编写如下代码:

if Application.MessageBox("确定要删除当前记录吗?", "删除 记录", Mb_YesNo + Mb_IconWarning) =
Id_No then
Abort; //利用哑异常退出删除事件

  3.提交记录前进行用户定义完整性检查

  //在数据集控件的BeforePost事件中编写如下类似代码

if not CheckPass then //CheckPass为自定义的完整性检查函数,用户根据需要完成

begin
Application.MessageBox(‘当前库存量不足以下发,请修改后再保存!’,
‘输入 错误’, Mb_Ok + Mb_IconError);
Abort; //利用哑异常退出提交事件
end;

  4.用Delphi压缩和修复access 数据库

uses ComObj;
//............
Procedure CompactDb(DbName, NewName: string);

 var
  dao: OLEVariant;
 begin
 dao := CreateOleObject("DAO.DBEngine.35");
 dao.CompactDatabase(DbName, NewName);
end;

procedure RepairDb(DbName: string);

 var
  dao: OLEVariant;

  begin
  dao := CreateOleObject("DAO.DBEngine.35");
  dao.RepairDatabase(DbName);

end;

  以上代码在Delphi5下测试通过。

阅读:
录入:

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
Advertisement
内容查询


Advertisement