pb如何下载php网站的数据库数据

feixianzhi 2013-05-07 03:39:40
情况是这样的,医院的收费系统是pb9.0+mssql2000搞的,现在医院做了一个在线预约就诊的网站,采用的是php+mssql2000,服务器是自己的,ip地址是固定的,数据库名、网址什么的都知道。现在医院不允许pb直接连接到php网站的数据库,因为有多家医院使用同一个网站,每个医院只能下载自己家的数据。请问下大侠们怎么下载php网站采集到的数据,并且在下载后将php网站的对应数据下载标志字段更新为“已下载”。感谢!
----------------------------------------------
另外,很久没来了,看到还有这么多人在坚持搞pb开发很欣慰,大家辛苦了!
...全文
206 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2013-05-09
  • 打赏
  • 举报
回复
先试试不要连接数据库,返回一个值试试 如果返回一个值是可以的,那问题就出在连接数据库上了
feixianzhi 2013-05-09
  • 打赏
  • 举报
回复
感谢楼上几位,我采用pb12做个webservice给pb9调用这个方法,webservice发布到iis,但是测试出了问题,webservice中有个函数,函数只有一个参数,参数传递的是sql语句,函数里边用ds和sql来检索数据库,测试的表中有数据,可是webservice函数没法返回结果,结果集是空的。数据库连接正常,谁能帮我分析下原因。万分感谢。
feixianzhi 2013-05-09
  • 打赏
  • 举报
回复
重新发布下,有神奇般的可以了,pb发展到第12个版本,捉摸不透的脾气依然没变啊。哎,结贴
feixianzhi 2013-05-09
  • 打赏
  • 举报
回复
测试任何函数都提示如下内容: System.Web.Services.Protocols.SoapException: 值不能为空。 参数名: path ---> System.ArgumentNullException: 值不能为空。 参数名: path 在 System.IO.Path.GetFullPathInternal(String path) 在 System.IO.Path.GetFullPath(String path) 在 Sybase.PowerBuilder.Web.PBWebAppInfo.a(NameValueCollection A_0, String A_1, String A_2) 在 Sybase.PowerBuilder.Web.PBWebAppInfo.b(NameValueCollection A_0, String A_1) 在 Sybase.PowerBuilder.Web.PBWebAppInfo.c(NameValueCollection A_0, String A_1) 在 Sybase.PowerBuilder.Web.PBWebAppInfo.b() 在 Sybase.PowerBuilder.Web.PBWebAppInfo..ctor() 在 Sybase.PowerBuilder.Web.PBWebAppInfo.get_Instance() 在 Sybase.PowerBuilder.Web.PBSession.a(String A_0) 在 Sybase.PowerBuilder.Web.PBSession.set_SLibraryList(String value) 在 c__webservice.InitSession() 在 cns_webservice.PBWS__n_webservice.InitSession() 位置 f:\我的项目\webservice\pb2cstempout\webservice\webservice.asmx.cs:行号 22 在 Sybase.PowerBuilder.Web.WebServices.PBWebService.a() 在 Sybase.PowerBuilder.Web.WebServices.PBWebService.Initialize() 在 cns_webservice.PBWS__n_webservice.uf_connect() 位置 f:\我的项目\webservice\pb2cstempout\webservice\webservice.asmx.cs:行号 70 --- 内部异常堆栈跟踪的结尾 --- 在 Sybase.PowerBuilder.Web.WebServices.PBWebService.HandleException(Exception ex) 在 cns_webservice.PBWS__n_webservice.uf_connect() 位置 f:\我的项目\webservice\pb2cstempout\webservice\webservice.asmx.cs:行号 84
feixianzhi 2013-05-09
  • 打赏
  • 举报
回复
现在我直接放一个函数在webservice, string uf_test(string as_return) return as_return 在iis上测试时,webservice提示参数为空,其实我已经为参数赋值了,版主这个是什么原因造成的?第一次搞这个,摸不到头脑。等这个问题解决了,我整理一份资料发上来大家分享下。
WorldMobile 2013-05-08
  • 打赏
  • 举报
回复
更新网站的数据,需要网站提供接口,如Url的参数,你传给它sql或者数据,网站进行更新
feixianzhi 2013-05-08
  • 打赏
  • 举报
回复
引用 1 楼 jiang396 的回复:
不知道是否要做成下载实时数据还是做成隔日(或者隔一段时间)数据下载?我的建议是php可以将数据生成xml文件,文件名规范好,pb可以通过inet控件去登录规范好的url获取。另外一种就是php生成text文件,然后pb通过ftp去获取然后倒入,不过这个比较麻烦。
求XML的具体操作方法,另外这个方法能更新网站的数据吗?
feixianzhi 2013-05-08
  • 打赏
  • 举报
回复
感谢lzp_lrp大版提供思路,记得我还是这里的小爬虫的时候就得到过大版的指点,万分感谢。时隔这么久了还能看到坛子里的老人真是很高兴。 集思广益希望大侠们踊跃指导。
WorldMobile 2013-05-08
  • 打赏
  • 举报
回复
如果用posturl行不通,可以考虑用msxml来实现,具体代码可参考以下 http://blog.csdn.net/lzp_lrp/article/details/8898366
WorldMobile 2013-05-08
  • 打赏
  • 举报
回复
目前正在做用pb 调用 http链接返回数据的需求 更新道理也是一样的
WorldMobile 2013-05-08
  • 打赏
  • 举报
回复
需要php网站做的http的接口,在pb中直接调用这个http接口即可 参考以下代码 PostURL() 功能执行HTTP Post,这样PowerBuilder应用程序就可以通过CGI、NSAPI、ISAPI接口发送请求。 语法servicereference.PostURL ( urlname, urldata, headers, data ) 参数 servicereference:Inet对象实例或引用 urlname:String类型,指定要发送请求的URL(统一资源定位器) urldata:Blob类型,指定发送给urlname参数指定的URL的参数 headers:String类型,指定HTML首部。对Netscape浏览器来说,每个HTTP首部之后需要个换行符(~n),在所有首部之后再跟一个换行符(~n) data:InternetResult实例变量,用于保存返回的HTML 返回值 Integer。函数执行成功时返回1,发生错误时返回下述值: -1一般错误 -2指定的URL无效 -4不能连接到Internet上 -6Internet请求无效 用法 该函数的data参数要求是继承了InternetResult对象的类用户对象实例,在该用户对象的定义中,需要定义覆盖函数InternetData(),用于处理Internet返回的HTML数据。由于Internet以异步方式传送数据,因此,data参数必须是某个实例变量或全局变量的引用(例如窗口级实例变量)。 示例 下面的代码调用PostURL()。其中,Iinet_base是个Inet类型的实例变量;n_ir_msgbox是继承了InternetResult对象的类用户对象,iir_msgbox是该用户对象的一个实例: Blob lblb_args String ls_headers String ls_url Long ll_length ir_msgbox = CREATE n_ir_msgbox ls_url = "http://coltrane.sybase.com/ " ls_url += "cgi-bin/pbcgi60.exe/ " ls_url += "myapp/n_cst_html/f_test? " lblb_args = blob( " ") ll_length = Len(lblb_args) ls_headers = "Content-Length: " + String(ll_length) + "~n~n " iinet_base.PostURL(ls_url, lblb_args, ls_headers, iir_msgbox)
北京大丸子 2013-05-07
  • 打赏
  • 举报
回复
引用 2 楼 TheLittlePrince 的回复:
做个webservice,让pb调用不就完了。
php怎么做webservice?没做过,给点思路。多谢。
TheLittlePrince 2013-05-07
  • 打赏
  • 举报
回复
做个webservice,让pb调用不就完了。
北京大丸子 2013-05-07
  • 打赏
  • 举报
回复
不知道是否要做成下载实时数据还是做成隔日(或者隔一段时间)数据下载?我的建议是php可以将数据生成xml文件,文件名规范好,pb可以通过inet控件去登录规范好的url获取。另外一种就是php生成text文件,然后pb通过ftp去获取然后倒入,不过这个比较麻烦。

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧