VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

VFP连接SQL SERVER 断网后再恢复网络的程序处理问题

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Taien



註冊時間: 2005-01-11
文章: 1


第 1 樓

發表發表於: 星期四 十二月 02, 2010 8:56 pm    文章主題: VFP连接SQL SERVER 断网后再恢复网络的程序处理问题 引言回覆

VFP连接SQL SERVER后,遇到断网片刻后恢复网络,但继续执行程序会报错:
Connectivity error: [Microsoft][ODBC SQL Server Driver]通讯链接失败

请问这个问题如何处理?

链接语句如下:
(1) m_cndbsql=[provider=msdasql;driver=SQL Server;Server=]+'121.12.112.*'+[;UID=]+'sa'+[;PWD=]+'密码+[;DATABASE=]+'concord_data'

(2) m_CnDB=SQLSTRINGCONNECT(m_cndbsql)

(3) mSQLRes=SQLExec(m_CnDB,"select * from cus_mstr")

未断网前,链接成功且正常,m_CnDB=1, mSQLRes=1

断网片刻后恢复网络:

情况一:再执行一次语句(3),则无法成功返回数据,且m_CnDB=1, mSQLRes=-1。
情况二:再执行一次语句(2)和语句(3), 则正常获取数据,但m_CnDB=2, mSQLRes=1。

请教:
(一)是否在检测断网后重新处理时,可以按情况二的方式处理一次? 但m_CnDB=2 是否意味着链接1还存在被闲置了? 如果断网多次,m_CnDB值会继续增加,会不会有任何不妥?
(二)断网问题是否有更好的处理方法?

谢谢了!
回頂端
檢視會員個人資料 發送私人訊息
yoncen



註冊時間: 2005-08-29
文章: 33


第 2 樓

發表發表於: 星期一 六月 06, 2011 6:54 am    文章主題: 引言回覆

*!* 重新连接服务器
Local llNeedConnServer
llNeedConnServer = .T.
If chkConnHandle(gnHandle) = .T. Then
Local lnHandle
lnHandle = SQLExec(gnHandle, "")
If lnHandle > 0 Then
llNeedConnServer = .F.
Endif
Endif
If llNeedConnServer = .T. Then
Local loHandle
loHandle = Newobject("ConnectServer")
loHandle.chkConnecting(1, .F.)
If gnHandle > 0 Then
*-- 读取配置参数
Local lcIniFile
lcIniFile = Addbs(gcSystemPath) + "System.ini"
If File(lcIniFile) Then
Local lcMAIN
lcMAIN = GetIni(lcIniFile, "APPLICATION", "MAIN")
If Not Empty(lcMAIN) Then
*-- 检查主程序是否为最新版本,否则不允许重新连接
If Not chkMainFileNeedUpdate(lcMAIN, .F.) Then
SQLExec(gnHandle, "USE " + gcAccId) && 重新连接当前帐套
Else
SQLDisconnect(0) && 关闭所有连接
Endif
Else
lcErrMsg = "系统配置文件 SYSTEM.INI 参数错误!" + ;
Chr(13) + Chr(10) + "安装程序损坏,请重新安装系统。"
Messagebox(lcErrMsg, 0 + 16 + 0, "系统错误")
Endif
Else
lcErrMsg = "系统配置文件 SYSTEM.INI 不存在!" + ;
CHR(13) + Chr(10) + "安装程序损坏,请重新安装系统。"
Messagebox(lcErrMsg, 0 + 16 + 0, "系统错误")
Endif
Endif
Endif
This.QueryUnload()

_________________
從事企業ERP開發,學會止境,精益求精。
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作