4528|12

90

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

sql ce 数据库联接的问题,困扰 [复制链接]

需要做一个sql ce的程序,我的开发环境是.net 2005,pc端数据库是sql server 2000 Developer版,pda操作系统mobile 5,sql ce 2.0,数据库放在My Documents下。
在程序进行数据库pull时连接不上,提示“The database file cannot be found. Check the path to the database. [,,,File name,,]”

代码如下:
ISSCERDA * pCERDA = NULL;
BSTR bstr = NULL;
BSTR bConnectStr = NULL;
BSTR bQueryStr = NULL;
BSTR bLocalConnectStr = NULL;
BSTR bLocalTableName = NULL;
BSTR bErrorTableName = NULL;
RDA_TRACKOPTION trackOption = TRACKINGOFF;

SYSTEMTIME systemtime;//系统时间
double timeTotal;//总共消耗的时间
__int64 timeStart = 0;//开始操作时间
__int64 timeStop;//结束操作时间
WCHAR wszBuffer[512];

HRESULT hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA);
if(FAILED(hr))
        AfxMessageBox(_T("CoCreateInstance...ERROR"));

//1.设置Internet URL
bstr = SysAllocString(L"http://hh/sqlce/sscesa20.dll");
pCERDA->put_InternetURL(bstr);
SysFreeString(bstr);

//2.设置Internet userName
bstr = SysAllocString(L"");
pCERDA->put_InternetLogin(bstr);
SysFreeString(bstr);

//3.设置Internet password
bstr = SysAllocString(L"");
pCERDA->put_InternetPassword(bstr);
SysFreeString(bstr);

//4.得到跟踪类型
trackOption = TRACKINGON;

//5.设置错误表名
bErrorTableName = SysAllocString(L"errortable");

//6.设置服务器连接串
bConnectStr = SysAllocString(L"Provider=sqloledb; Data Source=hh; Initial Catalog=SupCardM; User Id=sa; Password=sa");

//7.设置本地数据库连接串
bLocalConnectStr = SysAllocString(L"Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; Data Source=\\My Documents\\cedata.sdf");
pCERDA->put_LocalConnectionString(bLocalConnectStr);
SysFreeString(bstr);

//8.设置本地表名
bLocalTableName = SysAllocString(L"pictable");

//9.设置查询的SQL语句
bQueryStr = SysAllocString(L"select * from UserCard_table");

//记录获取服务器数据前的时间
GetLocalTime(&systemtime);
SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStart);

//获取服务器数据
hr = pCERDA->Pull(bLocalTableName, bQueryStr, bConnectStr, trackOption, bErrorTableName);
SysFreeString(bLocalTableName);
SysFreeString(bQueryStr);
SysFreeString(bConnectStr);
SysFreeString(bErrorTableName);

if (SUCCEEDED(hr))
{
        //记录获取服务器数据后的时间
        GetLocalTime(&systemtime);
        SystemTimeToFileTime(&systemtime, (FILETIME*) &timeStop);
        //记录获取服务器数据的总时间
        timeTotal = ((double)(timeStop - timeStart) / 10000000);
        swprintf(wszBuffer, _T("从服务器获取数据成功\r\n\r\n总消耗 = %8.3f 秒"), timeTotal);
        AfxMessageBox(wszBuffer);
}
else
{
        //显示获取服务器数据错误
        ISSCEErrors *pISSCEErrors = NULL;
        if (SUCCEEDED(hr = pCERDA->get_ErrorRecords(&pISSCEErrors)))
        {
                ShowErrors(pISSCEErrors);
                pISSCEErrors->Release();
        }
}

//释放远程访问接口
pCERDA->Release();

那位大侠做过啊,帮帮忙啊,分不够可以再给,多谢!

最新回复

根据错误消息,应该是没有找到SDF文件,应该是路径不对  详情 回复 发表于 2008-5-15 21:43
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

楼主,你好,请问你用的是什么语言写的?
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
用的是vc,这段代码是源于水利水电出版社的《evc高级编程及其应用开发》,没找到更新东西
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
《evc高级编程及其应用开发》的有的代码还是可以用的,但不是全部,比如IP那个章节的就不能用
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
去下载SQLCE2。0这个东西,安装后,里面有一个EVC实现的例子。不过要改改才能用
出差中,不能给你发自己找下吧
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
已经装了sqlce 2.0了,在pull时出错,提示产生错误,还有提示“The database file cannot be found. Check the path to the database. [,,,File name,,]”,不知道哪里不对了。我再好好看一下例程吧,谢谢了。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

7
 
error : 28573

这个错误吗?
 
 
 

回复

228

帖子

0

TA的资源

一粒金砂(中级)

8
 
28573是什么错误?
我得到的是:
ERROR 1 of 2
DESCRIPTION: 'SQL Server CE encountered problems in opening the SQL Server CE database. [,,,Database name,,]'
NUMBER: 80004005
NATIVE_ERROR: 28559
SOCURE: Microsoft SQL Server 2000 Windows CE Edition
P0: 0
P1: 0
P2: 0
P3:
P4:
P5:

ERROR 2 of 2
DESCRIPTION: 'The database file cannot be found. Check the path to the database. [,,,File name,,]'
NUMBER: 80004005
NATIVE_ERROR: 25046
SOCURE: Microsoft SQL Server 2000 Windows CE Edition
P0: 0
P1: 0
P2: 0
P3: \My Documents\cedata1.sdf
P4:
P5:

可是我的东西都有啊,需要什么设置吗,帮忙啊,急急急!!!
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

9
 
我有一段VB代码,也要抱错~~我也郁闷 ,不过是说
LocalConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\GPS.sdf"
rda.LocalConnectionString = LocalConnectionString
中的Provider不可识别的连接标示,我也就郁闷了~~
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
SubscriberConnectionString = "Provider=Microsoft.SQLServer.OLEDB.CE.2.0;Data Source=\My Documents\SQLCECF.sdf"
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

11
 
这段代码我也在调试中,不过我的错误和楼主的不一样。
我的在模拟器上运行时总是报错说CoCreateInstance创建实例不成功。
在Device上是CLSID_RemoteDataAccess和IID_ISSCERDA不存在,但是那个头文件和lib文件我都加进工程了。
楼主知道吗?
不好意思来问你了,不过我真的很郁闷了。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

12
 
www.codeproject.com上有实例
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
根据错误消息,应该是没有找到SDF文件,应该是路径不对
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表