您的位置:程序门 -> 移动平台 -> windows mobile



rda屡次失败!!!!!快疯了!!!有大侠救救我吗????????????????????????????????


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


rda屡次失败!!!!!快疯了!!!有大侠救救我吗????????????????????????????????[已结贴,结贴人:jicey]
发表于:2007-08-20 18:26:55 楼主
我最近做一个c/s模式的pocket   pc应用程序,用rda把sql   server2000上的数据库(名为pacs,内有patient和report两个表)数据拉到本地数据库(名为pocketpacs.sdf)上,iis的虚拟目录sqlce的权限是”anonymous   access”,   并且我在ie和pocket   ie里输入“http://127.0.0.1:56/sqlce/sscesa20.dll”(我在iis里发现默认站点停止了,必须把原来的80端口改掉才能重新启动,于是我把端口改成了56),都能成功显示”sql   server   ce   server   agent”.
      我的sql   server2000(sp3版)、sql   server   ce2.0(sp3版)、vs2005都装在了一台机子上,其中我的机子操作系统是xp,所以sql用的个人版.
      代码如下:
public   string   strdbfile   =   @ "my   documents\pocketpacs.sdf ";
public   string   strconnlocal   =   "data   source= "   +   @ "my   documents\pocketpacs.sdf ";
public   string   strconnremote   =   "provider=microsoft.sqlserver.oledb.ce.2.0;integrated   security=sspi;user   id   =   wws//iusr_wws;initial   catalog=pacs;data   source=pocketpacs.sdf; ";
public   string   strurl   =   "http://127.0.0.1:56/sqlce/sscesa20.dll ";


private   void   menulogin_click_1(object   sender,   system.eventargs   e)
{
doctorsearch   =   new   doctorsearch();
if((textbox1.text== "tsmc ")&&(textbox2.text== "tsmc "))
{
doctorsearch.show();
cursor.current   =   cursors.waitcursor;
if(file.exists(strdbfile))
{
file.delete(strdbfile);
}
sqlceengine   dbengine   =   new   sqlceengine();
dbengine.localconnectionstring   =   strconnlocal;
try
{
dbengine.createdatabase();
}
catch(sqlceexception   exsql)
{
messagebox.show( "unable   to   create   database "   +   exsql.errors[0].message);
}
sqlceremotedataaccess   rdanw   =   new   sqlceremotedataaccess();
try
{
        rdanw.localconnectionstring   =   strconnlocal;
rdanw.interneturl   =   strurl;
rdanw.internetlogin   =   " ";
rdanw.internetproxypassword   =   " ";
rdanw.pull( "patient ", "select   *   from   patient ",strconnremote,rdatrackoption.trackingonwithindexes, "errordoctor ";
}
catch(sqlceexception   exsql)
{
errors.showerrors(exsql);
}
finally
{
rdanw.dispose();
}
cursor.current   =   cursors.default;
}
else
        messagebox.show( "wrong   infromation.please   check   it   again ");
}
但运行之后出现以下两个错误:
error   code:   80004005
message:   an   internal   error   occurred.[id,,,,,]
minor   err:28574
source:   microsoft   sql   server   2000   windows   ce   edition

error   code:80004005
message:[dbnetlib][connection   open(connect())]sql   server不存在或拒绝访问
minor   err:   17
source:   microsoft   oledb   provider   for   sql   server
第一个错误在网上查了半天没有什么收获,于是决定从第二个错误入手,下面是我的尝试和结果:
ping   169.254.8.169     成功
ping   wws                         成功
ping   127.0.0.1             成功
telnet   169.254.8.169   1433     不能打开到主机的连接,在端口1433:连接失败
telnet   169.254.8.169         不能打开到主机的连接,在端口23:连接失败
netstat   –a             未见1433端口被侦听
查看sql   server日志,只见:sql   server   正在监听   shared   memory,   named   pipes
                                      未见sql   server在监听tcp或1433端口
    于是断定是因为sql   server不能侦听1433端口,检查sql   server的服务器网络实用工具和客户端网络实用工具,发现都已经启用了命名管道和tcp/ip协议,并且tcp/ip的属性中都使用的默认端口1433,我的防火墙关了呀,并且sql也是sp3的补丁呀,并且我试了把服务器网络实用工具和客户端网络实用工具的tcp/ip协议的默认端口改成2433或56也不行,sql   server依然不能侦听2433或56端口.
      考虑到我的sql2000是个人版,安装时默认实例是灰色的,于是我只能起了个实例名sql2000,结果sql   server服务管理器的 "服务器 "下拉菜单里有三个:wws、wws\sql2000、wws\sqlexpress,但不论启动哪个,sql   server都不能侦听1433,用netstat   –a   也看不到1433被侦听,快疯了,求各位大侠救救我!!!提些建议也好!
小生在此先谢过了

发表于:2007-08-21 17:25:061楼 得分:0
如果条件许可采用现存的平台,   你就没这么苦劳了,而且以后换了oracle,你就要跳楼了.

www.active-web.net
发表于:2007-08-22 08:41:012楼 得分:0
代码好像没有问题啊。难道是你电脑的权限问题
发表于:2007-08-22 08:43:213楼 得分:10
好像是你的连接有问题
  "provider=sqloledb;   "
                                                                      +   "data   source=192.168.1.150;   "  
                                                                      +   "initial   catalog=northwind;   "
                                                                      +   "user   id=sa;   "
                                                                      +   "password=sa;   "  
                                                                      +   "integrated   security=sspi; ";

参考看看:http://community.csdn.net/expert/topic/5703/5703916.xml?temp=.6019709
发表于:2007-08-22 18:02:144楼 得分:0
我感觉很可能是sql   server没有监听tcp(1433端口),但又不知道怎么让它监听呢?
发表于:2007-08-22 18:06:595楼 得分:0
ghd2004:
      我把provider改成sqloledb,data   source也改了,甚至password也加上了,试了很多组合,但问题依然如故呀
发表于:2007-08-23 15:06:106楼 得分:20
如果pda上面iis可以访问。你把integrated   security=true   设置为true看看。
还不行。你就发我有邮箱我试试看。ghdvb@126.com
发表于:2007-08-24 10:29:037楼 得分:0
非常感谢ghd2004大哥的热心帮助,我把integrated   security设置为true后,错误变成了一个:
error   code:   800040e21
message:   an   internal   error   occurred.[id,,,,,]
minor   err:28574
source:   microsoft   sql   server   2000   windows   ce   edition


发表于:2007-08-26 11:02:148楼 得分:0
给你发邮件了。你仔细调式一下。
发表于:2007-08-27 20:37:489楼 得分:0
自己顶一下吧,唉
发表于:2007-08-31 09:00:1610楼 得分:0
现在错误变成了一个,有谁碰到过吗?能帮一下小弟吗?
发表于:2007-09-01 16:51:2611楼 得分:0
为什么没人呀,呜呜,哪个好心人能帮帮俺???????????
发表于:2007-09-04 10:56:4912楼 得分:0
唉,没人啊,只能自己顶一下了,初入江湖即遭冷落,还望各位大侠出手相救呀......................
发表于:2007-09-04 22:19:0313楼 得分:0
帮顶
发表于:2007-09-12 16:08:0214楼 得分:10
不用   ce   直接连接数据库就不会有这么多麻烦了
另外   1433   端口是不能用的   通不过无线网络
发表于:2007-09-29 19:22:1115楼 得分:0
谢谢,终于解决了,我把integrated       security又改成了sspi,然后把我的数据库添加了相应用户wws//iusr_wws,并把相应表的权限开放给他就可以了,唉,这个问题困扰了我很长时间的,今天终于结贴了


快速检索

最新资讯
热门点击