好的!下面我补充带有示例代码的 Delphi BDE Administrator 详解,包含如何用 Delphi 代码连接并操作通过 BDE Administrator 配置的数据库别名。


Delphi BDE Administrator 数据库管理工具详解(附代码示例)


1. 简介

BDE Administrator 是管理 BDE 配置(数据库别名、驱动参数等)的工具,Delphi 通过这些配置进行数据库连接。


2. 创建数据库别名示例(图形界面步骤)

  • 打开 BDE Administrator,选择 Databases 标签。
  • 点击右键 → New。
  • 选择驱动类型,如 PARADOX
  • 填写参数:
    • PATH = D:\DB\ParadoxData
    • NET DIR = D:\DB\NetDir(多用户网络目录)
  • 保存应用。

3. Delphi 使用 BDE Alias 连接数据库示例

假设在 BDE Administrator 创建了名为 "MyParadoxDB" 的别名。

uses
  DBTables;

procedure TForm1.ConnectDatabase;
begin
  // 创建数据库组件实例
  Database1.AliasName := 'MyParadoxDB';  // 使用BDE中配置的别名
  Database1.LoginPrompt := False;         // 关闭登录弹窗
  try
    Database1.Open;                       // 打开数据库连接
    ShowMessage('数据库连接成功!');
  except
    on E: Exception do
      ShowMessage('连接失败: ' + E.Message);
  end;
end;

4. 使用 TTable 操作数据表示例

uses
  DBTables, DB;

procedure TForm1.OpenTable;
begin
  Table1.DatabaseName := 'MyParadoxDB'; // 绑定别名
  Table1.TableName := 'CUSTOMERS.DB';   // Paradox表名
  Table1.Active := True;                 // 打开表

  // 访问数据
  ShowMessage('第一条客户姓名: ' + Table1.FieldByName('NAME').AsString);
end;

5. 使用 TQuery 执行 SQL 查询示例

uses
  DBTables;

procedure TForm1.RunQuery;
begin
  Query1.DatabaseName := 'MyParadoxDB';
  Query1.SQL.Text := 'SELECT * FROM CUSTOMERS WHERE CITY = :CityName';
  Query1.ParamByName('CityName').AsString := 'New York';
  Query1.Open;

  while not Query1.Eof do
  begin
    ShowMessage(Query1.FieldByName('NAME').AsString);
    Query1.Next;
  end;
end;

6. 设置 BDE 参数(示例代码)

可以在运行时修改 BDE 配置参数,如最大缓冲区:

uses
  BDE;

procedure SetBDECacheSize(Size: Integer);
var
  Params: TStringList;
begin
  Params := TStringList.Create;
  try
    Session.GetConfigParams(Params);
    Params.Values['MAXBUFFERS'] := IntToStr(Size);
    Session.SetConfigParams(Params);
  finally
    Params.Free;
  end;
end;

7. 常见错误及代码排查建议

  • 连接失败异常捕获,使用 try…except 包裹打开操作。
  • 路径错误,确保 BDE Administrator 中 PATH 路径正确。
  • 多用户锁问题,确保网络目录(NET DIR)设置合理。

8. 小结

步骤说明代码示例关键点
配置数据库别名BDE Administrator中创建别名AliasName属性赋值
打开数据库连接Database1.Open使用try…except捕获异常
操作表数据设置 Table1.DatabaseName 和 TableName,激活表Table1.Active := True
执行查询使用 TQuery,设置 DatabaseName 和 SQL,调用 OpenQuery1.Open,遍历数据
调整BDE参数通过 Session.SetConfigParams 修改Session.GetConfigParams / SetConfigParams