wuxi15 发表于 2015-8-7 11:55:20

FDQuery连接数据库,使用提示占线错误,如何用 FD 连接 MSSQL


用的是Xe8.,连接SQL数据库2008提示这个错误,2000的版本不会

wang_80919 发表于 2017-4-28 17:57:08

FireDAC 支持 MSSql 2000 的问题,例如 不支持或连接占线或hstmt
http://www.2pascal.com/forum.php?mod=viewthread&tid=2734&fromuid=4
(出处: 2Pascal-新时代的Pascal)

wang_80919 发表于 2015-8-7 11:57:27

    FDConnectionMsSql.Close;
    FDConnectionMsSql.LoginPrompt := False;
    FDConnectionMsSql.Params.Values['Server'] := ServerName;
    FDConnectionMsSql.Params.Values['User_Name'] := UserName;
    FDConnectionMsSql.Params.Values['Password'] := PWD;
    FDConnectionMsSql.Params.Values['Database'] := DatabaseName;
    FDConnectionMsSql.Params.Values['OSAuthent'] := 'No';

    //使用特定的 Driver 才能获取 ODBCDriver 的值。
    FDConnectionMsSql.Params.Values['DriverID'] := 'MSSQLMain';

    FDConnectionMsSql.Open;

    TempStr := TFDPhysODBCDriverBase(FDPhysMSSQLDriverLinkMain.DriverIntf).ODBCDriver;

    if TempStr.Contains('SQL Server Native Client') then
    begin
      FDMSSQLFechModeUseAll := False;
    end;

    if FDMSSQLFechModeUseAll then
    begin
      //ODBCDriver := 'SQL Server' 不支持 (连接到控件上的)FetchOptions.Mode := TFDFetchMode.fmOnDemand;
      FDQueryMSSQLIN.FetchOptions.Mode := TFDFetchMode.fmAll;
    end
    else
    begin
      FDQueryMSSQLIN.FetchOptions.Mode := TFDFetchMode.fmOnDemand;
    end;

wang_80919 发表于 2015-8-7 11:57:48

关键是 要 放一个 FDPhysMSSQLDriverLink
这个控件的 DriverID 设置成自定义的。
ODBCDriver 不要填值。

上面的代码,主要是解决楼主的问题。

前几行是 连接 MSSQL 的基本代码。

laimama 发表于 2019-1-31 10:58:08

前几天才上FD的车,结果今天就遇到了问题,记得在哪里看到过,果然在这,谢谢wang_80919
页: [1]
查看完整版本: FDQuery连接数据库,使用提示占线错误,如何用 FD 连接 MSSQL