我在 C 盘本地使用 Delphi XE4 和 SQL server express 12。我可以通过 ADO comp 将 Delphi 链接到 Access DB。问题是当我尝试链接 SQL 服务器数据库时 - 它看不到我的服务器/数据库。我不确定我应该如何指定我的服务器名称(USER-PC\SQLEXPRESS - SQLserver 创建的名称)或我的数据库名称(C:\Program Files(x86)\Microsoft SQL Server\MSSQL11.SQLExpress\MSSQL\DATA\测试数据库.Mdf)。没有使用密码。我尝试通过 ADoTable(SQL SERVER Native Client 11.0 以及 Microsoft OLE DB Provider for SQL Server)和 TSQLConnection。(我最近一直在使用 MS Access - 与外部数据库连接脱节......)
3 回答
您需要以某种方式提供服务器信息,您可以使用 ConnectionString 来建立连接。连接字符串如下所示:
ConnString =
'Provider=SQLOLEDB.1;Persist Security Info=False;' +
'User ID=%s;Password=%s;Data Source=%s;Use Procedure for Prepare=1;' +
'Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;'+
'Tag with column collation when possible=False';
看看这个使用ADOQuery 的例子。
并查看文档:连接到数据库 - 概述
如果您右键单击 TADOConnection 组件,您将可以选择编辑连接字符串。这将打开一个对话框,带有一个标记为 Build... 的按钮
单击它会打开一个向导。选择“Microsoft OLE DB Provider for SQL Server”作为提供程序,然后单击下一步。现在为您提供了当前可见的所有 SQL Server 的列表。如果您的不在此列表中,则它不可用。SQL Server 服务是否已启动?
如果它在列表中,则按照向导构建有效的连接字符串。
实际上,您必须连接到 MSSQL Express,而不考虑位数 (32/64)。您的 SQL Server Express 启用了 TCP/IP 和/或命名管道连接,而不仅仅是共享内存?
要检查,启动 SQL Server 配置管理器(不知道它是否在 2012 年更改,但它是 2008/2008r2 上的名称)并在SQL Server 网络配置/协议下查找 <您的服务器实例>项(它将有 2其中在 64 位系统上,如果我的记忆没有让我失望 - 我的机器是 32 位的,请检查两者)。