Option Explicit
'在SQLServer2000 Northwind数据库中创建以下存储过.程'===============================================================
'create procedure sp_orders
' @Begdate datetime,
' @Enddate datetime
'as
'select * from orders
'where orderdate >= @begdate and orderdate <= @enddate
'
'===============================================================
Private connOrders As New ADODB.Connection
Private cmmOrder As New ADODB.Command
Private strSQL As String
Private Const strConnect = "Provider=msdasql;driver={sql server};server=d091j;uid=sa;pwd=123;database=Northwind"Private Sub cmdExcute_Click() Dim rstOrders As New ADODB.Recordset
Dim strMsg As String
DoEvents
Me.MousePointer = vbArrow
connOrders.ConnectionTimeout = 15
connOrders.Open strConnect
With cmmOrder
Set .ActiveConnection = connOrders
.CommandType = adCmdStoredProc
.CommandText = "sp_orders"
.Parameters(1).Type = adChar
.Parameters(1).Size = Len(txtBegDate.Text)
.Parameters(1).Direction = adParamInput
.Parameters(1).Value = txtBegDate.Text
.Parameters(2).Type = adChar
.Parameters(2).Size = Len(txtEndDate.Text)
.Parameters(2).Direction = adParamInput
.Parameters(2).Value = txtEndDate.Text
Set rstOrders = .Execute
End With
If rstOrders.RecordCount Then
Call FillFlexGrid(rstOrders)
Else
MsgBox "no record" End If Set rstOrders = Nothing
Set connOrders = Nothing
End SubPrivate Sub FillFlexGrid(rstOrders As ADODB.Recordset)
Dim intCol As Integer
Dim strItem As String
With flxgrid
.ScrollBars = flexScrollBarNone
.FixedCols = 0
.FixedRows = 1
.Rows = 1
.Cols = rstOrders.Fields.Count
.Row = 0
For intCol = 0 To .Cols - 1
.Col = intCol
.Text = rstOrders.Fields(intCol).Name
Next intCol
Do Until rstOrders.EOF
strItem = "*prc*"
For intCol = 0 To .Cols - 1
strItem = strItem & rstOrders.Fields(intCol).Value & vbTab
Next intCol
.AddItem strItem
rstOrders.MoveNext
Loop
.ScrollBars = flexScrollBarBoth
End With
End Sub
'在SQLServer2000 Northwind数据库中创建以下存储过.程'===============================================================
'create procedure sp_orders
' @Begdate datetime,
' @Enddate datetime
'as
'select * from orders
'where orderdate >= @begdate and orderdate <= @enddate
'
'===============================================================
Private connOrders As New ADODB.Connection
Private cmmOrder As New ADODB.Command
Private strSQL As String
Private Const strConnect = "Provider=msdasql;driver={sql server};server=d091j;uid=sa;pwd=123;database=Northwind"Private Sub cmdExcute_Click() Dim rstOrders As New ADODB.Recordset
Dim strMsg As String
DoEvents
Me.MousePointer = vbArrow
connOrders.ConnectionTimeout = 15
connOrders.Open strConnect
With cmmOrder
Set .ActiveConnection = connOrders
.CommandType = adCmdStoredProc
.CommandText = "sp_orders"
.Parameters(1).Type = adChar
.Parameters(1).Size = Len(txtBegDate.Text)
.Parameters(1).Direction = adParamInput
.Parameters(1).Value = txtBegDate.Text
.Parameters(2).Type = adChar
.Parameters(2).Size = Len(txtEndDate.Text)
.Parameters(2).Direction = adParamInput
.Parameters(2).Value = txtEndDate.Text
Set rstOrders = .Execute
End With
If rstOrders.RecordCount Then
Call FillFlexGrid(rstOrders)
Else
MsgBox "no record" End If Set rstOrders = Nothing
Set connOrders = Nothing
End SubPrivate Sub FillFlexGrid(rstOrders As ADODB.Recordset)
Dim intCol As Integer
Dim strItem As String
With flxgrid
.ScrollBars = flexScrollBarNone
.FixedCols = 0
.FixedRows = 1
.Rows = 1
.Cols = rstOrders.Fields.Count
.Row = 0
For intCol = 0 To .Cols - 1
.Col = intCol
.Text = rstOrders.Fields(intCol).Name
Next intCol
Do Until rstOrders.EOF
strItem = "*prc*"
For intCol = 0 To .Cols - 1
strItem = strItem & rstOrders.Fields(intCol).Value & vbTab
Next intCol
.AddItem strItem
rstOrders.MoveNext
Loop
.ScrollBars = flexScrollBarBoth
End With
End Sub
它并没有调用 :
Else
MsgBox "no record"请各位指点指点。
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
输入1997-01-01 至1996-09-01 是正常的。
connOrders.CursorLocation = adUseClient
如果是服务端游标,rstOrders.RecordCount 初始为 -1,并且随游标的移到而变化。
前加一句 rstOrders.MoveLast即可。