我已设置了SQLSETPROP如下值可是不起作用,WHY ?
******* SQL环境设置 *******
=SQLSETPROP(0,"DispLogin",3) && 控制不显示登录窗口
=SQLSETPROP(0,'DispWarnings',.F.) && 不显示一个错误信息
=SQLSETPROP(0,"Transactions",2) && 人工事务 2, 自动处理事务 1
=SQLSETPROP(0,"Asynchronous",.F.) && 结果同步返回
=SQLSETPROP(0,"BatchMode",.T.) && 返回全部结果集
=SQLSETPROP(0,"ConnectTimeOut",5) && 连接错误等待(以秒计算) 30
=SQLSETPROP(0,"QueryTimeOut",10) && 一般超时等待(以秒计算0~600) 15
=SQLSETPROP(0,"WaitTime",1000) && 检查SQL语句是否结束时间间隔毫秒 500
12 个解决方案
#1
到ODBC中配置一下试试
#2
这可能是ODBC不支持这选项。
#3
楼主的问题是连接时间过长,但我的下列代码当连接错误时很快就提示了(顺便提一句,当把连接等待时间设为600时同样很快提示,说明设置未生效。不知道代码在你的机子上运行会是什么效果。):
*利用spt字符串连接函数直接连接sql数据库
lcODBCDriver="SQL Server" &&驱动器
lcODBCServer="(local)" &&本地SQL服务器名
lcODBCUID="sa" &&用户名
lcODBCPWD="12" &&密码
lcODBCDatabase="master" &&数据库
*连接字符串
lcSQLString="driver=&lcODBCDriver;Server=&lcODBCServer;;
UID=&lcODBCUID;PWD=&lcODBCPWD;DATABASE=&lcODBCDatabase"
wait "正在连接sql数据库...." nowait window
sqlsetprop(0,"DispLogin",3) &&不显示ODBC对话框
sqlsetprop(0,"ConnectTimeOut",5) &&超时错误(5秒)
lcConnHandle=SQLSTRINGCONNECT(lcSQLString)
if lcConnHandle>0
messagebox("已成功连接到sql数据库!",64,"连接提示")
=SQLDISCONNECT(lcConnHandle)
ELSE
messagebox("连接sql数据库失败!",64,"连接提示")
ENDIF
*利用spt字符串连接函数直接连接sql数据库
lcODBCDriver="SQL Server" &&驱动器
lcODBCServer="(local)" &&本地SQL服务器名
lcODBCUID="sa" &&用户名
lcODBCPWD="12" &&密码
lcODBCDatabase="master" &&数据库
*连接字符串
lcSQLString="driver=&lcODBCDriver;Server=&lcODBCServer;;
UID=&lcODBCUID;PWD=&lcODBCPWD;DATABASE=&lcODBCDatabase"
wait "正在连接sql数据库...." nowait window
sqlsetprop(0,"DispLogin",3) &&不显示ODBC对话框
sqlsetprop(0,"ConnectTimeOut",5) &&超时错误(5秒)
lcConnHandle=SQLSTRINGCONNECT(lcSQLString)
if lcConnHandle>0
messagebox("已成功连接到sql数据库!",64,"连接提示")
=SQLDISCONNECT(lcConnHandle)
ELSE
messagebox("连接sql数据库失败!",64,"连接提示")
ENDIF
#4
SQLSETPROP(0,"ConnectTimeOut",5) &&5秒
ConnectTimeOut
指定在返回连接超时错误前的等待时间(以秒计)。如果指定为 0,将无限期等待并且不返回超时错误。ConnectTimeOut 可从 0 到 600,默认值是 15。可读/写。
ConnectTimeOut
指定在返回连接超时错误前的等待时间(以秒计)。如果指定为 0,将无限期等待并且不返回超时错误。ConnectTimeOut 可从 0 到 600,默认值是 15。可读/写。
#5
你已经设置了:
=SQLSETPROP(0,"ConnectTimeOut",5) && 连接错误等待(以秒计算) 30
以下两种情况时这个设置有效:
1、网络畅通,用户名不对或密码不对或数据库服务没启动,造成连接不上。
2、网络断开,即找不到数据服务器,造成连接不上。
如果网络是通的,但连接太慢(是太慢,但网络是通的)或网络超时或有丢包等等,这时连接就不止是上面这个5秒了,会长一些。
=SQLSETPROP(0,"ConnectTimeOut",5) && 连接错误等待(以秒计算) 30
以下两种情况时这个设置有效:
1、网络畅通,用户名不对或密码不对或数据库服务没启动,造成连接不上。
2、网络断开,即找不到数据服务器,造成连接不上。
如果网络是通的,但连接太慢(是太慢,但网络是通的)或网络超时或有丢包等等,这时连接就不止是上面这个5秒了,会长一些。
#6
设置ConnectTimeOut 应该可以
#7
=SQLSETPROP(0,"ConnectTimeOut",5)的位置非常重要.
一定要放在连接数据库的语句之前,否则设置无效.
一定要放在连接数据库的语句之前,否则设置无效.
#8
楼上几种方法都不行,如果是(local)会很快,其它如IP等肯定是15秒
这个设置的确不起作用
这个设置的确不起作用
#9
帮助文档中提到
ConnectTimeOut 选项只能在 Visual FoxPro 级别上设置,而不能在连接级别上使用。所有其他选项既可在连接级 别,也可在 Visual FoxPro 级别上进行设置,每个在 Visual FoxPro 级别的设置作为随后连接的默认值。
ConnectTimeOut 选项只能在 Visual FoxPro 级别上设置,而不能在连接级别上使用。所有其他选项既可在连接级 别,也可在 Visual FoxPro 级别上进行设置,每个在 Visual FoxPro 级别的设置作为随后连接的默认值。
#10
问题是,sqlsetprop(0,"ConnectTimeOut",5) &&超时错误(5秒) 这句的‘0’没有指定具体的连接句柄,我的理解它就是在Visual FoxPro 级别上,而不在连接级别上。但这样设置不起作用,非常郁闷。
#11
3ks
#12
#1
到ODBC中配置一下试试
#2
这可能是ODBC不支持这选项。
#3
楼主的问题是连接时间过长,但我的下列代码当连接错误时很快就提示了(顺便提一句,当把连接等待时间设为600时同样很快提示,说明设置未生效。不知道代码在你的机子上运行会是什么效果。):
*利用spt字符串连接函数直接连接sql数据库
lcODBCDriver="SQL Server" &&驱动器
lcODBCServer="(local)" &&本地SQL服务器名
lcODBCUID="sa" &&用户名
lcODBCPWD="12" &&密码
lcODBCDatabase="master" &&数据库
*连接字符串
lcSQLString="driver=&lcODBCDriver;Server=&lcODBCServer;;
UID=&lcODBCUID;PWD=&lcODBCPWD;DATABASE=&lcODBCDatabase"
wait "正在连接sql数据库...." nowait window
sqlsetprop(0,"DispLogin",3) &&不显示ODBC对话框
sqlsetprop(0,"ConnectTimeOut",5) &&超时错误(5秒)
lcConnHandle=SQLSTRINGCONNECT(lcSQLString)
if lcConnHandle>0
messagebox("已成功连接到sql数据库!",64,"连接提示")
=SQLDISCONNECT(lcConnHandle)
ELSE
messagebox("连接sql数据库失败!",64,"连接提示")
ENDIF
*利用spt字符串连接函数直接连接sql数据库
lcODBCDriver="SQL Server" &&驱动器
lcODBCServer="(local)" &&本地SQL服务器名
lcODBCUID="sa" &&用户名
lcODBCPWD="12" &&密码
lcODBCDatabase="master" &&数据库
*连接字符串
lcSQLString="driver=&lcODBCDriver;Server=&lcODBCServer;;
UID=&lcODBCUID;PWD=&lcODBCPWD;DATABASE=&lcODBCDatabase"
wait "正在连接sql数据库...." nowait window
sqlsetprop(0,"DispLogin",3) &&不显示ODBC对话框
sqlsetprop(0,"ConnectTimeOut",5) &&超时错误(5秒)
lcConnHandle=SQLSTRINGCONNECT(lcSQLString)
if lcConnHandle>0
messagebox("已成功连接到sql数据库!",64,"连接提示")
=SQLDISCONNECT(lcConnHandle)
ELSE
messagebox("连接sql数据库失败!",64,"连接提示")
ENDIF
#4
SQLSETPROP(0,"ConnectTimeOut",5) &&5秒
ConnectTimeOut
指定在返回连接超时错误前的等待时间(以秒计)。如果指定为 0,将无限期等待并且不返回超时错误。ConnectTimeOut 可从 0 到 600,默认值是 15。可读/写。
ConnectTimeOut
指定在返回连接超时错误前的等待时间(以秒计)。如果指定为 0,将无限期等待并且不返回超时错误。ConnectTimeOut 可从 0 到 600,默认值是 15。可读/写。
#5
你已经设置了:
=SQLSETPROP(0,"ConnectTimeOut",5) && 连接错误等待(以秒计算) 30
以下两种情况时这个设置有效:
1、网络畅通,用户名不对或密码不对或数据库服务没启动,造成连接不上。
2、网络断开,即找不到数据服务器,造成连接不上。
如果网络是通的,但连接太慢(是太慢,但网络是通的)或网络超时或有丢包等等,这时连接就不止是上面这个5秒了,会长一些。
=SQLSETPROP(0,"ConnectTimeOut",5) && 连接错误等待(以秒计算) 30
以下两种情况时这个设置有效:
1、网络畅通,用户名不对或密码不对或数据库服务没启动,造成连接不上。
2、网络断开,即找不到数据服务器,造成连接不上。
如果网络是通的,但连接太慢(是太慢,但网络是通的)或网络超时或有丢包等等,这时连接就不止是上面这个5秒了,会长一些。
#6
设置ConnectTimeOut 应该可以
#7
=SQLSETPROP(0,"ConnectTimeOut",5)的位置非常重要.
一定要放在连接数据库的语句之前,否则设置无效.
一定要放在连接数据库的语句之前,否则设置无效.
#8
楼上几种方法都不行,如果是(local)会很快,其它如IP等肯定是15秒
这个设置的确不起作用
这个设置的确不起作用
#9
帮助文档中提到
ConnectTimeOut 选项只能在 Visual FoxPro 级别上设置,而不能在连接级别上使用。所有其他选项既可在连接级 别,也可在 Visual FoxPro 级别上进行设置,每个在 Visual FoxPro 级别的设置作为随后连接的默认值。
ConnectTimeOut 选项只能在 Visual FoxPro 级别上设置,而不能在连接级别上使用。所有其他选项既可在连接级 别,也可在 Visual FoxPro 级别上进行设置,每个在 Visual FoxPro 级别的设置作为随后连接的默认值。
#10
问题是,sqlsetprop(0,"ConnectTimeOut",5) &&超时错误(5秒) 这句的‘0’没有指定具体的连接句柄,我的理解它就是在Visual FoxPro 级别上,而不在连接级别上。但这样设置不起作用,非常郁闷。
#11
3ks