You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下使用Lazarus编译器通过ZEOS组件连接SQL Server的问题

修正ZEOS连接SQL Server的函数配置

嘿,我注意到你当前的代码是给Access数据库(.mdb)写的连接逻辑,完全没法适配SQL Server。下面帮你调整成正确的ZEOS连接SQL Server的实现:

方案1:使用ZEOS原生SQL Server协议(推荐)

这种方式不需要依赖ADO,用ZEOS自带的SQL Server驱动更稳定,配置也更简洁:

procedure ConnecttoDatabase(Servername, Databasename: String; aConnection: TZConnection); overload;
begin
  aConnection.Connected := False;
  try
    // 配置SQL Server核心连接参数
    aConnection.Protocol := 'mssqlnative'; // 适配SQL Server 2008及以上版本,旧版本可用'mssql'
    aConnection.HostName := Servername;    // SQL Server实例名,例如 'DESKTOP-XXXX\SQLEXPRESS'
    aConnection.Database := Databasename;  // 直接填写目标数据库名称,比如 'MyBusinessDB'
    
    // 身份验证配置二选一:
    // 1. Windows集成身份验证(推荐,无需密码)
    aConnection.Authentication := auWindows;
    // 2. SQL Server账号密码验证
    // aConnection.User := 'your_login_name';
    // aConnection.Password := 'your_login_pwd';
    
    aConnection.Connected := True;
  except
    on E: Exception do
      raise Exception.Create('SQL Server连接失败:' + E.Message);
  end;
end;

方案2:使用ADO协议连接

如果你坚持用ADO驱动,需要修改连接字符串为SQL Server对应的OLEDB格式:

procedure ConnecttoDatabase(Servername, Databasename: String; aConnection: TZConnection); overload;
var
  DatabaseStr: String;
begin
  aConnection.Connected := False;
  try
    aConnection.Protocol := 'ado';
    // 构建SQL Server的OLEDB连接字符串
    // Windows集成身份验证版本
    DatabaseStr := Format('Provider=SQLOLEDB;Data Source=%s;Initial Catalog=%s;Integrated Security=SSPI', 
                         [Servername, Databasename]);
    // 如果用SQL Server账号密码,替换成下面的字符串:
    // DatabaseStr := Format('Provider=SQLOLEDB;Data Source=%s;Initial Catalog=%s;User ID=%s;Password=%s', 
    //                      [Servername, Databasename, 'your_user', 'your_pwd']);
    aConnection.Database := DatabaseStr;
    
    aConnection.Connected := True;
  except
    on E: Exception do
      raise Exception.Create('SQL Server连接失败:' + E.Message);
  end;
end;

关键注意事项

  • 确认你的ZEOS组件版本支持目标SQL Server版本(比如SQL Server 2019需要ZEOS 7.3及以上版本)
  • 如果用原生协议,客户端必须安装SQL Server Native Client或者ODBC Driver for SQL Server
  • 检查SQL Server实例是否允许远程连接,防火墙是否开放了默认端口1433
  • 测试前先用SSMS(SQL Server管理工具)验证服务器名、数据库名和权限是否有效

内容的提问来源于stack exchange,提问作者user9044066

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:31:06