'好久没用vb6了,一用就出错,大家帮我看看
'我的意图是创造一个命令对象然后返回它,以下代码编译错Private Function CreateComm(ByVal sqlText As String, _
ByRef param() As ADODB.Parameter, _
ByVal sqlCmdType As ADODB.CommandTypeEnum) As Command
'此函数创造一个command对象
Dim conn As ADODB.Connection
Dim comm As New ADODB.Command
conn = New Connection
conn.ConnectionString = GetConn()
comm.CommandText = sqlText
comm.CommandType = sqlCmdType
comm.ActiveConnection = conn
Dim paratemp As Variant
If Not IsEmpty(param) Then
For Each paratemp In param
comm.Parameters.Append (paratemp)
Next
End If
On Error GoTo err:
conn.Open
'错误出现在下边一行,提示属性的错误使用
CreateComm = comm
Return
err:
'可以增加错误处理代码,如写入日志
End Function
'我的意图是创造一个命令对象然后返回它,以下代码编译错Private Function CreateComm(ByVal sqlText As String, _
ByRef param() As ADODB.Parameter, _
ByVal sqlCmdType As ADODB.CommandTypeEnum) As Command
'此函数创造一个command对象
Dim conn As ADODB.Connection
Dim comm As New ADODB.Command
conn = New Connection
conn.ConnectionString = GetConn()
comm.CommandText = sqlText
comm.CommandType = sqlCmdType
comm.ActiveConnection = conn
Dim paratemp As Variant
If Not IsEmpty(param) Then
For Each paratemp In param
comm.Parameters.Append (paratemp)
Next
End If
On Error GoTo err:
conn.Open
'错误出现在下边一行,提示属性的错误使用
CreateComm = comm
Return
err:
'可以增加错误处理代码,如写入日志
End Function
解决方案 »
- 最近发现很多wc贴
- 请问怎样用SQL语句建个ACCESS数据库和ACCESS表?
- 急!怎么判断记录集rs中已经存在某学号(student表)?
- 我在2000下使用Process32First获取进程的时候,为什么返回的总是0?
- toolbar里的按纽菜单的使用
- 大家现在都还用Winsock编程吗,Winsock过时了吗,比它更优秀的最新代替方法是什么?
- 大家来想想办法,如何判断机器与Internet是连接状态?
- datagrid 求解! 急!急!急!多谢!
- 小弟在此各位兄弟:有关ADODC这个东西的麻烦事!
- 旗子的放置
- 有办法解决的问题(word)
- 请问用vb写的程序存在不存在内存泄漏的问题?
你可以直接使用,返回一个byref的(MyCommand参数)试试
Private Function CreateComm(ByVal sqlText As String, _
ByRef param() As ADODB.Parameter, _
ByVal sqlCmdType As ADODB.CommandTypeEnum, _
ByRef mycommand as ADODB.Command)
'此函数创造一个command对象
Dim conn As ADODB.Connection
conn = New Connection
conn.ConnectionString = GetConn()
mycommand.CommandText = sqlText
mycommand.CommandType = sqlCmdType
mycommand.ActiveConnection = conn
Dim paratemp As Variant
If Not IsEmpty(param) Then
For Each paratemp In param
mycommand.Parameters.Append (paratemp)
Next
End If
On Error GoTo err:
conn.Open
exit function
err:
msgbox err.Description, "提示信息"
End Function
因为vb.net里可以用return obj,我想当然了。
例如: 两个Listbox
不能ListBox1=ListBox2
在VB6中也是一样
Dim command1 As ADODB.Command
Dim command2 As ADODB.Command
command1 = command2 <-这样是错误的。
关键是对象有很多其他的方法属性,两个对象是不可能直接相等的,在VC中可以使用指针。但是VB6里面是没有的。
如
private function createcomm(byval sqltext as string, _
byref param() as sqlparameter,...) _
as sqlcommand
dim ....
dim mycommand as sqlcommand=new sqlcommand(sqltext,myconnection)
....
return mycommand
end function
private function ex()
dim x as sqlcommand
x=createcommand(...)
end function
可以运行啊