请VB高手给看看这段代码!

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:28:01
Public Function GetServerDate() As Date
On Error GoTo errhandle
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Dim para1 As ADODB.Parameter
Set cnn = New ADODB.Connection
Set para1 = New ADODB.Parameter
Set cmd = New ADODB.Command
cnn.ConnectionString = ConnectString
cnn.Open
cmd.CommandText = "my_get_severtime"
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
Set para1 = cmd.CreateParameter("mydate", adDate, adParamOutput)
cmd.Parameters.Append para1
cmd.Execute
GetServerDate = cmd.Parameters("mydate")
Set cnn = Nothing
Set cmd = Nothing
Set para1 = Nothing
Exit Function

据说这是一段VB可以获得服务器时间的代码,可我实在是看不懂,而且它的运行结果也不对,有哪位高手懂VB的帮我看一下,给我解释解释呀?最好是能把它调通,谢谢大家了!

应该知道ADO吧

ADODB.Connection
ADODB.Command
ADODB.Parameter
(就差ADODB.RecordSet了)

都是ADO编程的基础操作对象
分别代表:
与数据库的连接
数据查询命令
参数(通过数据查询命令返回的一个数据,而不是象单纯的SQL语句返回RecordSet——表格)

说到SQL语句,有人一定很奇怪为什么这段代码里没有SQL语句,很简单,SQL Serve数据库(反正不是Access就是了)的参数写在数据库里面,每个参数代表一个SQL语句和它相应的返回值。
比如"my_get_severtime"就是写在SQL Serve里面的一段SQL语句的名字

cmd.CommandType = adCmdStoredProc
'这句话必要,告诉ADO抽象层这是一个参数,非SQL命令,表格名称等,加快运行速度

Set para1 = cmd.CreateParameter("mydate", adDate, adParamOutput)
'创建参数,换句话说,创建my_get_severtime的一个实例,程序员可以通过mydate得到my_get_severtime的结果

cmd.Parameters.Append para1
'添加参数
cmd.Execute
'执行命令,执行my_get_severtime代表的SQL语句,返回my_get_severtime的值到mydate

GetServerDate = cmd.Parameters("mydate")
'获得值

Set cnn = Nothing
Set cmd = Nothing
Set para1 = Nothing
'释放占用内存