紧急!为何可以建立连接却打不开数据表?
从本地机向服务器添加数据、以前可以进行没有问题。但将软件升级以后、却只能建立连接打不开相应的表(这部分代码和相关设置没有变)。我想应该不是软件问题,各位大虾帮忙分析一下!
问题点数:0、回复次数:10Top
1 楼potatoli(新来的)回复于 2003-06-03 10:07:13 得分 0
详细一点啊,什么数据库(Oracle),怎么连接(ODBC?),升级什么软件,自己写的吗?Top
2 楼bravetiger617(大风)回复于 2003-06-03 10:12:30 得分 0
sql数据库,用ado。升级软件是自己写的(也就是出问题的这个)Top
3 楼bingao()回复于 2003-06-03 10:25:01 得分 0
确认连接正常?Top
4 楼potatoli(新来的)回复于 2003-06-03 10:38:37 得分 0
手工打开表,确认不是数据库的问题
如果不是数据库的问题,调试自己的程序,看看载打开表的时候数据库报告什么错误。Top
5 楼bravetiger617(大风)回复于 2003-06-03 10:53:36 得分 0
确认连接正常,因为要同时通过连接添加几个表。其他表可以打开并添加,只是这个表不可以。
手工可以打开表。Top
6 楼potatoli(新来的)回复于 2003-06-03 11:16:53 得分 0
调试的时候,把insert语句copy出来,直接到数据库运行,看看结果,可能是写错了Top
7 楼llm06(blacksheep)回复于 2003-06-03 11:32:19 得分 0
软件升级?
把升级后的代码贴出来看看Top
8 楼bravetiger617(大风)回复于 2003-06-04 17:00:14 得分 0
我的代码是用vb写的,怕vb那没人回就贴到这了。代码如下:
''''''//////////stored data into database server
////////////////连接服务器的字符串cnServer/////////Provider=MSDASQL.1;Extended Properties="DRIVER=sql ///////////////server;SERVER=YANYU-2UNO2WG9G;UID=DEF;PWD=DEF;APP=Visual Basic;WSID=YANYU-0L2UN2NDT;DATABASE=SEVER"
Function AddDaToSer()
Dim intmrk As Integer
Dim inmrk As Integer
On Error GoTo errdeal1
Dim strtemp2, strcncom As String
strtemp2 = App.Path + "\WatRaSer.mdb;"
strcncom = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" & strtemp2 & "Persist Security Info=False"
Dim dbcomback As New ADODB.Connection
dbcomback.ConnectionString = strcncom
dbcomback.CommandTimeout = 1
dbcomback.Open
inmrk = 1 '本地备份库已经打开
Set rsinmarback = New ADODB.Recordset
rsinmarback.Open "select * from InmarDaSer ", dbcomback, adOpenKeyset, adLockOptimistic
inmrk = 2 'inmardaser表打开
If rsinmarback.RecordCount > 0 Then
inmrk = 3 '本地表数据不为零
Set rsserinm = New Recordset
rsserinm.Open "select * from sd ", cnServer, adOpenKeyset, adLockOptimistic
inmrk = 4 '服务器sd表打开
rsinmarback.MoveFirst
inmrk = 5 '移到备份库头条
While Not rsinmarback.EOF
rsserinm.AddNew
inmrk = 6 '添加数据开始
rsserinm.Fields(0).Value = rsinmarback.Fields(0).Value
rsserinm.Fields(1).Value = rsinmarback.Fields(1).Value
rsserinm.Fields(2).Value = rsinmarback.Fields(2).Value
rsserinm.Fields(3).Value = rsinmarback.Fields(3).Value
rsserinm.Fields(4).Value = rsinmarback.Fields(4).Value
rsserinm.Fields(5).Value = rsinmarback.Fields(5).Value
rsserinm.Fields(6).Value = rsinmarback.Fields(6).Value
rsserinm.Fields(7).Value = rsinmarback.Fields(7).Value
rsserinm.Fields(8).Value = rsinmarback.Fields(8).Value
rsserinm.Update
rsinmarback.Delete
rsinmarback.MoveNext
Wend
rsserinm.Close
Set rsserinm = Nothing
inmrk = 7 'inmarsat添加完成
End If
errdeal1:
On Error GoTo errdeal
rsinmarback.Close
Set rsinmarback = NothingTop
9 楼bravetiger617(大风)回复于 2003-06-04 17:00:40 得分 0
''''''''''''''''''''''''''''''add manu table'''''''''''''
Set rsmanuback = New ADODB.Recordset
rsmanuback.Open "select * from ManuDaSer ", dbcomback, adOpenKeyset, adLockOptimistic
intmrk = 1 '本地manu打开
If rsmanuback.RecordCount > 0 Then
Set rsSerMau = New Recordset
rsSerMau.Open "select * from ManuData ", cnServer, adOpenKeyset, adLockOptimistic
rsmanuback.MoveFirst
intmrk = 5 'Manudaser\服务器对应表打开
While Not rsmanuback.EOF
rsSerMau.AddNew
rsSerMau.Fields(0).Value = rsmanuback.Fields(0).Value
rsSerMau.Fields(1).Value = rsmanuback.Fields(1).Value
rsSerMau.Fields(2).Value = rsmanuback.Fields(2).Value
rsSerMau.Fields(3).Value = rsmanuback.Fields(3).Value
rsSerMau.Update
rsmanuback.Delete
rsmanuback.MoveNext
Wend
rsSerMau.Close
Set rsSerMau = Nothing
End If
rsmanuback.Close
Set rsmanuback = Nothing
''''''''''''''''''''''''''judge data''''''''''''''''''''''''''''''''''''''''''
Set rsswback = New ADODB.Recordset
rsswback.Open "select * from SwDaSer ", dbcomback, adOpenKeyset, adLockOptimistic
intmrk = 6 '本地swdaser表打开
If rsswback.RecordCount > 0 Then
rsswback.MoveFirst
While Not rsswback.EOF
intmrk = 2 '本地swdaser表不为空
strfeatrue1 = rsswback.Fields(3).Value
''''''''''''''''''''''''''add table rain''''''''''''''''''''''''''''''''''''''
If strfeatrue1 = "F" Then
Set rsSerWat = New Recordset
rsSerWat.Open "select * from wat1", cnServer, adOpenKeyset, adLockOptimistic
intmrk = 7 'wat1表打开
rsSerWat.AddNew
rsSerWat.Fields(0).Value = rsswback.Fields(1).Value
rsSerWat.Fields(1).Value = rsswback.Fields(2).Value
rsSerWat.Fields(2).Value = rsswback.Fields(3).Value
rsSerWat.Fields(3).Value = rsswback.Fields(4).Value
rsSerWat.Update
rsSerWat.Close
Set rsSerWat = Nothing
End If
''''''''''''''''''''''''''''''add table water
If strfeatrue1 = "C" Then
Set rsSerRan = New Recordset
rsSerRan.Open "select * from aut1", cnServer, adOpenKeyset, adLockOptimistic
intmrk = 8 'aut1表打开
rsSerRan.AddNew
rsSerRan.Fields(0).Value = rsswback.Fields(1).Value
rsSerRan.Fields(1).Value = rsswback.Fields(2).Value
rsSerRan.Fields(2).Value = rsswback.Fields(3).Value
rsSerRan.Fields(3).Value = rsswback.Fields(4).Value
rsSerRan.Update
rsSerRan.Close
Set rsSerRan = Nothing
End If
'''''''''''''''''''''''''''''''''add table voltage
If strfeatrue1 = "5" Then
Set rsSerVlt = New Recordset
rsSerVlt.Open "select * from vlt1", cnServer, adOpenKeyset, adLockOptimistic
intmrk = 9 'vlt1表打开
rsSerVlt.AddNew
rsSerVlt.Fields(0).Value = rsswback.Fields(1).Value
rsSerVlt.Fields(1).Value = rsswback.Fields(2).Value
rsSerVlt.Fields(2).Value = rsswback.Fields(3).Value
rsSerVlt.Fields(3).Value = rsswback.Fields(4).Value
rsSerVlt.Update
rsSerVlt.Close
Set rsSerVlt = Nothing
End If
rsswback.Delete
rsswback.MoveNext
intmrk = 10 '超短波添加结束
Wend
End If
rsswback.Close
Set rsswback = Nothing
dbcomback.Close
Set dbcomback = Nothing
Form1.StatusBar1.Panels(3).Text = "正常添加服务器完成"
'Exit Function
errdeal:
Select Case intmrk
Case 0
Form1.StatusBar1.Panels(3).Text = "本地表都为空"
Case 1
Form1.StatusBar1.Panels(3).Text = "本地manu打开"
Case 2
Form1.StatusBar1.Panels(3).Text = "本地swdaser表不为空"
Case 5
Form1.StatusBar1.Panels(3).Text = "Manudaser\服务器对应表打开"
Case 6
Form1.StatusBar1.Panels(3).Text = "swdaser表打开"
Case 7
Form1.StatusBar1.Panels(3).Text = "wat1表打开"
Case 8
Form1.StatusBar1.Panels(3).Text = "aut1表打开"
Case 9
Form1.StatusBar1.Panels(3).Text = "vlt1表打开"
Case Else
Form1.StatusBar1.Panels(3).Text = "位置不清楚错误"
End Select
Select Case inmrk
Case 1
Form1.StatusBar1.Panels(1).Text = "本地备份库已经打开"
Case 2
Form1.StatusBar1.Panels(1).Text = "inmardaser表打开"
Case 3
Form1.StatusBar1.Panels(1).Text = "本地表数据不为零"
Case 4
Form1.StatusBar1.Panels(1).Text = "服务器sd表打开"
Case 5
Form1.StatusBar1.Panels(1).Text = "移到备份库头条"
Case 6
Form1.StatusBar1.Panels(1).Text = "添加inmar数据开始"
Case 7
Form1.StatusBar1.Panels(1).Text = "inmarsat添加完成"
End Select
Form1.StatusBar1.Panels(2).Text = cnServer
Open App.Path + "\addserlog.txt" For Append As #1
Print #1, CStr(Format(Now, "yyyy-mm-dd hh:mm:ss")) + Chr(13) + Chr(10)
Print #1, Form1.StatusBar1.Panels(1).Text + Chr(13) + Chr(10)
Print #1, Form1.StatusBar1.Panels(3).Text + Chr(13) + Chr(10)
Print #1, Form1.StatusBar1.Panels(2).Text + Chr(13) + Chr(10)
Close #1
End Function
Top
10 楼bravetiger617(大风)回复于 2003-06-09 15:28:19 得分 0
问题找到是[Microsoft][ODBC SQL Server Driver]超时已过期
这是什么意思???是要重新安装SQL SERVER吗??
Top




