为什么倒不进SQL?解决方案
为什么倒不进SQL?
这个程序主要是读注册表软件的信息,然后一条一条导入到SQL SERVER里面去.可是发现SQL里一点反应都没有.
以下是一些代码;明天就要交差了,高手帮忙看看啊!
Private Sub Form_Load()
Dim strRgtInfo() As String
strRgtInfo = fnc_GetSubKeys(HKEY_LOCAL_MACHINE, KEYPATH)
Text1.Text = Winsock1.LocalHostName
Dim i As Integer
Dim strSQL As String
For i = 0 To UBound(strRgtInfo) Step 1
List1.AddItem (strRgtInfo(i))
strSQL = "insert into TESTTABLE values(" & vbCr
strSQL = strSQL & "'" & Text1.Text & "'," & vbCr
strSQL = strSQL & i & "," & vbCr
strSQL = strSQL & "'" & strRgtInfo(i) & "'" & vbCr
strSQL = strSQL & ")"
Call basSqlDataAccess.fnc_ExcuteSQL(strSQL)
Next i
End Sub
Private Sub List1_Click()
End Sub
Public Function fnc_ExcuteSQL(ByVal strSQL As String) As Boolean
fnc_ExcuteSQL = False
On Error GoTo ERR_LTN
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.CommandTimeout = 5
cn.Open "Driver={SQL Server};Server=a;DataBase=TEST", "sa", ""
cn.BeginTrans
cn.Execute (strSQL)
If True Then
cn.CommitTrans
fnc_ExcuteSQL = True
Else
cn.RollbackTrans
End If
cn.Close
ERR_LTN:
Exit Function
End Function
------解决方案--------------------
代码里面肯定报错了,但是你用了On Error Goto语句,出错就直接退出函数了,把你的On Error Goto语句拿掉,然后自己调试看看。
------解决方案--------------------
Public Function fnc_ExcuteSQL(ByVal strSQL As String) As Boolean
fnc_ExcuteSQL = False
On Error GoTo ERR_LTN
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.CommandTimeout = 5
cn.Open "Driver={SQL Server};Server=a;DataBase=TEST ", "sa ", " "
cn.BeginTrans
cn.Execute (strSQL)
If True Then
cn.CommitTrans
fnc_ExcuteSQL = True
Else
cn.RollbackTrans
End If
cn.Close
ERR_LTN:
Exit Function
End Function
检查这里面的代码.
------解决方案--------------------
同意CloneCenter的意见,先看看是什么错误再说
------解决方案--------------------
先检查一下INSERT的SQL语句最后生成的格式是否正确,还要注意TESTTABLE这个表的ID主键是否有设好增量标识。
这个程序主要是读注册表软件的信息,然后一条一条导入到SQL SERVER里面去.可是发现SQL里一点反应都没有.
以下是一些代码;明天就要交差了,高手帮忙看看啊!
Private Sub Form_Load()
Dim strRgtInfo() As String
strRgtInfo = fnc_GetSubKeys(HKEY_LOCAL_MACHINE, KEYPATH)
Text1.Text = Winsock1.LocalHostName
Dim i As Integer
Dim strSQL As String
For i = 0 To UBound(strRgtInfo) Step 1
List1.AddItem (strRgtInfo(i))
strSQL = "insert into TESTTABLE values(" & vbCr
strSQL = strSQL & "'" & Text1.Text & "'," & vbCr
strSQL = strSQL & i & "," & vbCr
strSQL = strSQL & "'" & strRgtInfo(i) & "'" & vbCr
strSQL = strSQL & ")"
Call basSqlDataAccess.fnc_ExcuteSQL(strSQL)
Next i
End Sub
Private Sub List1_Click()
End Sub
Public Function fnc_ExcuteSQL(ByVal strSQL As String) As Boolean
fnc_ExcuteSQL = False
On Error GoTo ERR_LTN
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.CommandTimeout = 5
cn.Open "Driver={SQL Server};Server=a;DataBase=TEST", "sa", ""
cn.BeginTrans
cn.Execute (strSQL)
If True Then
cn.CommitTrans
fnc_ExcuteSQL = True
Else
cn.RollbackTrans
End If
cn.Close
ERR_LTN:
Exit Function
End Function
------解决方案--------------------
代码里面肯定报错了,但是你用了On Error Goto语句,出错就直接退出函数了,把你的On Error Goto语句拿掉,然后自己调试看看。
------解决方案--------------------
Public Function fnc_ExcuteSQL(ByVal strSQL As String) As Boolean
fnc_ExcuteSQL = False
On Error GoTo ERR_LTN
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.CommandTimeout = 5
cn.Open "Driver={SQL Server};Server=a;DataBase=TEST ", "sa ", " "
cn.BeginTrans
cn.Execute (strSQL)
If True Then
cn.CommitTrans
fnc_ExcuteSQL = True
Else
cn.RollbackTrans
End If
cn.Close
ERR_LTN:
Exit Function
End Function
检查这里面的代码.
------解决方案--------------------
同意CloneCenter的意见,先看看是什么错误再说
------解决方案--------------------
先检查一下INSERT的SQL语句最后生成的格式是否正确,还要注意TESTTABLE这个表的ID主键是否有设好增量标识。