- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果主数据库无法访问,我正在尝试使用本地 .sdf 文件作为临时存储手段。我有 .sdf 文件,但是当我尝试将其设置为文件时,似乎根本不知道 .sdf 是否存在。我当前拥有的当前连接字符串是:
Driver={SQL Native Client};Data Source=C::\users\username\desktop\file\MyData.sdf;Persist Security Info=False
对于它为我生成的提供者:
Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5
当我尝试使用该连接时,收到“找不到提供程序。它可能未正确安装。” .sdf 肯定在该文件夹中。我也有一个问题,它需要用户名和/或密码,而在创建数据库时我不必指定这两个用户名和/或密码。
问题:我的连接字符串有问题吗?使用ADO连接访问SQL Compact数据库是否合理?是否有一种更简单的方法来从临时存储中查询/检索数据(不过我更喜欢使用 SQL 来实现)?大多数文档似乎来自 2003/2005 年,这没有帮助。
我使用“connectionstrings.com”来帮助制作字符串。任何建议都会有帮助,谢谢
最佳答案
首先要打开 sdf 文件,您必须使用与 sdf 文件版本兼容的提供程序。由于您在评论中提到了版本 3.5,因此您必须使用此提供程序 Microsoft.SQLSERVER.CE.OLEDB.3.5
那么您必须确保安装了哪个提供程序
尝试使用此代码列出系统中安装的 OLEDB 提供程序
{$APPTYPE CONSOLE}
{$R *.res}
uses
Windows,
Registry,
Classes,
SysUtils;
procedure ListOLEDBProviders;
var
LRegistry: TRegistry;
LIndex: Integer;
SubKeys,Values: TStrings;
CurKey, CurSubKey: string;
begin
LRegistry := TRegistry.Create;
try
LRegistry.RootKey := HKEY_CLASSES_ROOT;
if LRegistry.OpenKeyReadOnly('CLSID') then
begin
SubKeys := TStringList.Create;
try
LRegistry.GetKeyNames(SubKeys);
LRegistry.CloseKey;
for LIndex := 0 to SubKeys.Count - 1 do
begin
CurKey := 'CLSID\' + SubKeys[LIndex];
if LRegistry.KeyExists(CurKey) then
begin
if LRegistry.OpenKeyReadOnly(CurKey) then
begin
Values:=TStringList.Create;
try
LRegistry.GetValueNames(Values);
LRegistry.CloseKey;
for CurSubKey in Values do
if SameText(CurSubKey, 'OLEDB_SERVICES') then
if LRegistry.OpenKeyReadOnly(CurKey+'\ProgID') then
begin
Writeln(LRegistry.ReadString(''));
LRegistry.CloseKey;
if LRegistry.OpenKeyReadOnly(CurKey+'\OLE DB Provider') then
begin
Writeln(' '+LRegistry.ReadString(''));
LRegistry.CloseKey;
end;
end;
finally
Values.Free;
end;
end;
end;
end;
finally
SubKeys.Free;
end;
LRegistry.CloseKey;
end;
finally
LRegistry.Free;
end;
end;
begin
try
ListOLEDBProviders;
except
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.
现在这是连接到 Sql Server 紧凑文件的基本示例。
{$APPTYPE CONSOLE}
{$R *.res}
uses
ActiveX,
ComObj,
AdoDb,
SysUtils;
procedure Test;
Var
AdoQuery : TADOQuery;
begin
AdoQuery:=TADOQuery.Create(nil);
try
AdoQuery.ConnectionString:='Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=C:\Datos\Northwind.sdf';
AdoQuery.SQL.Text:='Select * from Customers';
AdoQuery.Open;
While not AdoQuery.eof do
begin
Writeln(Format('%s %s',[AdoQuery.FieldByName('Customer ID').AsString,AdoQuery.FieldByName('Company Name').AsString]));
AdoQuery.Next;
end;
finally
AdoQuery.Free;
end;
end;
begin
try
CoInitialize(nil);
try
Test;
finally
CoUninitialize;
end;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.
关于delphi - 在 Delphi 中使用 ADO 连接连接到 SQL Compact 文件 (.sdf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658799/
你好。 在过去的一个月里,我一直在从各种来源收集信息,但没有找到适合我的特定问题的想法。所以这里是问题的表述: 给定一个缓冲区几何形式的网格(顶点坐标和顶点索引的 32 位数组 + 附加数组,例如顶点
如何为 .sdf 数据库编写和运行升级脚本? sqlcmd 能做到吗?我不是要升级数据库文件的版本。我正在尝试升级其中的架构和数据。 最佳答案 重写 您可以使用 SQL Compact's TSQL
我想使用 SDFViewer 创建一个 sdf 文件,然后将其复制到独立存储,因为我不想在代码中手动添加数据。那可能吗?如果是的话我该怎么做?我需要在项目中添加为项目吗? 那我应该怎么修改呢? con
我正在尝试创建一个允许用户使用 .sdf 登录的应用程序,互联网上没有太多关于这方面的内容! 真的可以用一些指针来做。 这是我目前拥有的,但我认为它是一团乱麻,因为无论我在每个文本框中键入什么,它都会
我创建了一个新的 C# 项目并按照本教程中的步骤创建了一个 LocalDataCache: http://www.codeproject.com/KB/database/AdoSyncServices
我使用 VB.NET 开发了一个程序,运行 mysql (.mdf/.sdf) 数据库文件。它在我的开发机器上绝对运行良好。现在我已经编译并生成了 .exe 文件,希望它在没有 visual stud
我可以将 SDF 文件用作多个用户可以同时访问的小型网站的数据库吗?还是 SDF 仅适用于单个用户? 最佳答案 完全没问题! .SDF 是 SQL Server Compact数据库文件。 Like
我已经为 Windows 创建了一个应用程序,我在其中使用手机的 sqlite 作为数据库来存储数据。第一次在模拟器中测试应用程序时(即重新安装应用程序),每次都会删除数据库的数据。 所以任何人都可以
只是想知道关于这方面的一些实践; 我用本地数据库(SQL CE)(dB.sdf 文件)制作了一个简单的可视化 C# 程序。 假设用户删除了 dB.sdf 文件并尝试打开 exe 程序 - 没有任何反应
我在文件 C:\Users\Pawel\Documents\DB.sdf 中有数据库。我如何连接到它? 下面的简单代码不起作用并生成异常。 代码: [WebMethod] public String
我以前用 visual-studio 打开 sdf (sqlCE) 文件?或 sql 服务器?我真的不记得了。现在我无法打开这个 sdf 文件。需要用什么程序打开? 最佳答案 尝试 LINQPad ,
我有一个现有的应用程序,它使用 SQL Compact Mobile 3.5 和 SQL Merge 复制与使用 HTTP 的完整 SQL 数据库同步。 我可以在同一设备上同时运行另一个使用相同 db
当我尝试从 Eclipse 部署 Suitecloud 开发框架项目时,错误日志中出现以下错误: !MESSAGE The remote server returned an error: https
我开始使用数据库的 Sql Compact 版本,在开发过程中,数据库需要可通过网络访问。由于我无法找到无需复制即可通过网络共享 SDF 文件的方法,因此我需要将其导入 SQL Server 2008
当我尝试从 Eclipse 部署 Suitecloud 开发框架项目时,错误日志中出现以下错误: !MESSAGE The remote server returned an error: https
我正在寻找 R 中的正则表达式来提取 .sdf 化学数据文件中给定的字段。在这种情况下,字段由 分隔,并在一行的开头跟在“>”之后。例如。在这种情况下 string="> \nfield text
我正在尝试使用 Qt 打开 SQL Compact Server 文件 .sdf。我有以下代码: QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"
我的应用程序需要备份和恢复 .sdf 文件。整个应用程序只有一个数据集,表单上的一些 bindngSource 和表适配器使用相同的数据集。 为了测试,我尝试在运行时将 .sdf 复制到备份文件夹并返
如何使用“代码”创建新的 .mdf/.sdf 数据库? 我试过这个: http://support.microsoft.com/kb/307283 它所做的只是在 ConnectionString 上
在互联网上看了很多东西后,我还没有找到这两种文件类型之间的任何解释:.mdf 和 .sdf。 .sdf 我相信是 SQL Server (.mdf) 的精简版。它们看起来仍然完全不同。 已按照 msd
我是一名优秀的程序员,十分优秀!