【发布时间】:2015-11-06 21:45:28
【问题描述】:
我是 Firedac 的新手,但不是 Delphi
我可以与 SQL Server 建立连接,并且当我连接时,没有问题。我得到连接OK。它适用于代码、向导和 FireDAC 资源管理器。
数据库名称是:
C:\PROGRAM FILES (X86)\MICROSOFT SQL SERVER\MSSQL.1\MSSQL\DATA\3410b539-431f-4dff-ad0d-a574d1b13498.MDF
我遇到了一个简单的查询。
SELECT *
FROM Account;
此查询在 FireDac 资源管理器中有效,但在我的程序中无效,我收到以下错误:
[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]在 sys.servers 中找不到服务器 'C:\PROGRAM FILES (X86)\MICROSOFT SQL SERVER\MSSQL' .验证是否指定了正确的服务器名称。如有必要,执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。'
当我尝试从 Delphi 中的 UI 执行此操作时,我也遇到了同样的错误。
为了尝试查询,我将 TFDQuery 放到表单上,连接属性自动设置为表单上的唯一连接。然后我用查询编辑器设置查询,点击执行时出现错误。
使用这样的代码:
FDConnection1.Connected := true;
FDQuery1.Close;
FDQuery1.SQL.Text := 'select * from Account;';
FDQuery1.Active := True;
当我调试程序时,我在设置查询时遇到错误。
我看到错误消息中的数据库名称不完整。但是在组件设置里面是完整的
请指教,
我尝试了一些额外的测试: 如果我从 UI 编辑器运行查询(双击 FDConnection,Tab SQL 脚本),输入查询,它可以工作:-)。
但是当我尝试在 FDQuery 组件上执行此操作时,将连接分配给先前的 FDConnection,我得到了同样的错误。好像缺少一些参数。
【问题讨论】:
-
对不起德尔福“西雅图”。它可以在带有 ADOConnetion + ADOQuery 的 UI 中正常工作。嗯,我必须考虑切换到 ADO。什么是最好的速度,设施..?你怎么看?
-
“你怎么看?” FireDAC 似乎很好,但我更喜欢 ADO 的“数量安全”(我指的是一般的 ADO 用户数量,而不仅仅是 Delphi 用户)来解决问题。 FireDAC 对于一个人的努力来说非常好,直到你遇到问题,在这种情况下,它的代码和抽象程度可能是不可理解的。不过,作者在 EMB NG 上非常活跃。
-
您如何配置 FireDAC 连接?您没有提供任何相关信息,甚至没有解释您在哪里(或如何)执行
SELECT。 在组件设置里就完成了其实没啥用。 -
为什么使用文件名作为数据库名?通常在连接到 MS SQL 时,您需要提供服务器的名称(DNS 或 ip)、用户名和密码。那么数据库名称将只是数据库的名称而不是数据库的文件名
-
这是我的 SQL Server Provider=SQLOLEDB.1;Password=pass1234;Persist Security Info=True;User ID=sa;Initial Catalog=MOWD;Data Source=Dellserver 的连接字符串 如您所见数据库名称(初始目录)是 MOWD 而不是 MOWD 数据库的文件名
标签: sql-server delphi sql-server-2008-r2 firedac delphi-10-seattle