主题:求助VFP访问网站数据库
海军
[专家分:5350] 发布于 2010-04-09 21:21:00
现有一ASP网站,内有数据库,库中有会员身份证号。
想用VFP写一软件,当使用者输入身份证号后,软件自动去网站数据库搜索,如果是会员,则软件继续运行,如果不是,软件给出提示。
请大侠给出编程思路和关键技术。谢谢!
回复列表 (共11个回复)
沙发
北京惬意 [专家分:1330] 发布于 2010-04-10 08:41:00
海军老弟:一向可好?
问题提的很好,一并关注。
板凳
moz [专家分:37620] 发布于 2010-04-10 09:12:00
ASP需要用户名密码么?
如果不需要,可以直接利用网址获取数据进行分析。
3 楼
海军 [专家分:5350] 发布于 2010-04-10 20:15:00
很长时间没来啦,很想念大家。前段时间较忙,没时间弄程序,现在有些时间了,又可以和各位大侠交流啦。
ASP代码可以自己编写。用不用密码均可。但我不知道ASP所返回的值,如何到VFP里。
4 楼
琅拿度 [专家分:2820] 发布于 2010-04-10 20:23:00
http://bbs.pfan.cn/member.asp?userid=38580
可否用这个办法呢?存在就是会员。但我不知道怎么弄。
5 楼
海军 [专家分:5350] 发布于 2010-04-10 20:35:00
谢谢琅拿度,但是怎样知道存在与否呢?
会员不管是否存在ASP都会返回一个网页的,只是内容不同而已。
6 楼
琅拿度 [专家分:2820] 发布于 2010-04-10 20:56:00
好象之前看过一些能分析网页内容的帖子。我只是觉得可能可以实现。
技术水平我不太行......呵呵
7 楼
lbscyb [专家分:4780] 发布于 2010-04-10 23:18:00
可以在asp中写一个保存xml文件的代码,VFP去访问XML文件。
vfp做asp不是其长项
8 楼
moz [专家分:37620] 发布于 2010-04-11 03:41:00
c1s="http://bbs.pfan.cn/member.asp?userid=" &&固定的网址部份
MESSAGEBOX(GetStr(getweb(c1s+"38580"))) &&加上查询参数
MESSAGEBOX(GetStr(getweb(c1s+"72606")))
FUNCTION GetWeb(webs as String) as String &&获取网页内容
http = CreateObject("Msxml2.XMLHTTP")
=http.Open("GET", webs, .F.)
=http.setRequestHeader("Content-Type", "text/html")
http.send
If http.readyState = 4 Then
vIn=http.responsebody &&获取编码
strReturn = ""
For i = 1 To Len(vIn) &&编码转换GB2312-UTF8
ThisCharCode = Asc(substr(vIn,i,1))
If ThisCharCode < 128 Then
strReturn = strReturn + Chr(ThisCharCode)
Else
NextCharCode = Asc(substr(vIn,i+1,1))
strReturn = strReturn + Chr(ThisCharCode * 256 + NextCharCode)
i = i + 1
EndIf
Next
return strReturn
EndIf
ENDFUNC
FUNCTION GetStr(str1 as String) as String &&关键字搜索过滤
s2s='<td width="159" height="30" align="center" bgcolor="#F0F0F0"><strong>姓名</strong></td>'+CHR(13)+CHR(10)+' <td width="595" height="30"> <font size="3"><b>'
s3s='<td width="159" height="30" align="center" bgcolor="#F0F0F0"><strong>性别</strong></td>'+CHR(13)+CHR(10)+' <td width="595" height="30"> <font size="3"><b>'
k1=AT(s2s,str1)
IF k1>0 THEN
str1=SUBSTR(str1,k1+LEN(s2s))
k2=AT("</b>",str1)
s1s1="姓名:"+LEFT(str1,k2-1)
ENDIF
k1=AT(s3s,str1)
IF k1>0 THEN
str1=SUBSTR(str1,k1+LEN(s3s))
k2=AT("</b>",str1)
s1s1=s1s1+CHR(13)+CHR(10)+"性别:"+LEFT(str1,k2-1)
ENDIF
RETURN s1s1
ENDFUNC
9 楼
moz [专家分:37620] 发布于 2010-04-11 03:43:00
http://bbs.pfan.cn/member.asp?name=海军
10 楼
zxs4785 [专家分:410] 发布于 2010-04-11 08:47:00
这个问题的解决方法是很有学问的。
我的做法是,用asp写一个数据处理中间层,然后VFP程序使用xmlhttp将SQL语句发送到asp中间层去执行,asp中间层执行完SQL语句后,将结果字符串返回VFP程序,VFP程序再将结果字符串转成Cursor临时表。
这样就达到了,VFP直接操作远程网站上数据库的功能了。
关于这个问题的入门帖子可在梅子论坛上找到,可是成熟可用的代码,别人就秘而不宣了。
http://www.meizvfp.com/bbs/dispbbs.asp?boardID=90&ID=84576&page=1
http://www.meizvfp.com/bbs/dispbbs.asp?boardID=90&ID=86041&page=1
我来回复