当前位置: 代码迷 >> VFP >> 在VFP8.0中,使用SQL远程视图中遇到的有关问题
  详细解决方案

在VFP8.0中,使用SQL远程视图中遇到的有关问题

热度:352   发布时间:2013-02-26 00:00:00.0
在VFP8.0中,使用SQL远程视图中遇到的问题.
在VFP8.0中,建立了以局域网服务器SQL数据库表为数据源的远程视图,但在每次打开远程视图时,都要先出现“Sql Server 登录”窗口,输入登录者名、密码,按“确定”按钮,方可打开远程视图。如果要打开几个远程视图,就会出现几次“Sql Server 登录”窗口,非常麻烦。能否通过编程不出现“Sql Server 登录”窗口就能打开远程视图。敬请电脑专家帮助解决,不胜感激!

------解决方案--------------------------------------------------------
你是在DBC中建立远程视图?
------解决方案--------------------------------------------------------
你的连接代码有问题。帖一下你的连接代码。
------解决方案--------------------------------------------------------
* TCP/IP方式连接串
DRIVER=Sql Server;SERVER=计算机名或IP地址;UID=用户名;PWD=密码;DATABASE=数据库名;Network=DBMSSOCN;Address=计算机名或IP地址,1433

* 命名管道方式连接串
DRIVER=Sql Server;SERVER=计算机名或IP地址;UID=用户名;PWD=密码;DATABASE=数据库名
------解决方案--------------------------------------------------------
在主程序中加代码:
SQLSetprop(0,"DispLogin",3)

然后用你原来的代码应该就连接不上了。下面你参考我的代码。

如:我的表单的Load事件代码:这是我的例子,请参考后自行修改为你的适用代码

lcDSNLess="DRIVER=Sql Server;SERVER=计算机名或IP地址;UID=用户名;PWD=密码;DATABASE=数据库名"
*!* 或
*!* lcDSNLess="DRIVER=Sql Server;SERVER=计算机名或IP地址;UID=用户名;PWD=密码;DATABASE=数据库名;Network=DBMSSOCN;Address=计算机名或IP地址,1433"

Create Database MyData
Create Connection MyTalbeConn Connstring lcDSNLess && lcDSNLess 为连接串
Create Sql View MyTalbeView Remote Connection MyTalbeConn As Select * From dbo.表A 表A Order By 表A.编号
ThisView='MyTalbeView'

DBSetProp(ThisView,"View","SendUpdates",.T.)
DBSetProp(ThisView,"View","BatchUpdateCount",1)
DBSetProp(ThisView,"View","CompareMemo",.T.)
DBSetProp(ThisView,"View","FetchAsNeeded",.F.)
DBSetProp(ThisView,"View","FetchMemo",.T.)
DBSetProp(ThisView,"View","FetchSize",100)
DBSetProp(ThisView,"View","MaxRecords",-1)
DBSetProp(ThisView,"View","Prepared",.F.)
DBSetProp(ThisView,"View","ShareConnection",.F.)
DBSetProp(ThisView,"View","AllowSimultaneousFetch",.F.)
DBSetProp(ThisView,"View","UpdateType",1)
DBSetProp(ThisView,"View","UseMemoSize",255)
DBSetProp(ThisView,"View","Tables","dbo.表A")
DBSetProp(ThisView,"View","WhereType",3)

DBSetProp(ThisView+".编号","Field","DataType","C(10)")
DBSetProp(ThisView+".编号","Field","UpdateName","dbo.表A.编号")
DBSetProp(ThisView+".编号","Field","KeyField",.F.)
DBSetProp(ThisView+".编号","Field","Updatable",.T.)

DBSetProp(ThisView+".名称","Field","DataType","C(20)")
DBSetProp(ThisView+".名称","Field","UpdateName","dbo.表A.名称")
DBSetProp(ThisView+".名称","Field","KeyField",.F.)
DBSetProp(ThisView+".名称","Field","Updatable",.T.)

DBSetProp(ThisView+".备注","Field","DataType","C(50)")
DBSetProp(ThisView+".备注","Field","UpdateName","dbo.表A.备注")
DBSetProp(ThisView+".备注","Field","KeyField",.F.)
DBSetProp(ThisView+".备注","Field","Updatable",.T.)

DBSetProp(ThisView+".auto_id","Field","DataType","N(20)")
DBSetProp(ThisView+".auto_id","Field","UpdateName","dbo.表A.Auto_ID")
DBSetProp(ThisView+".auto_id","Field","KeyField",.T.)
DBSetProp(ThisView+".auto_id","Field","Updatable",.F.)

Use (ThisView) In 0