在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