希望懂VB和SQL数据库的高手指点我的问题。
我用VB开发,用SQL作为后台数据库。在窗体加载时,定义了ADODB的Connection和Recordset对象,把生成的数据添加到表RealParameter(定时器事件3),再把 RealParameter表中数据转到表HistoryParameter(定时器事件4)。在窗体下载时,删除表RealParameter中记录。在该程序中打开数据显示界面,用ADO连接表HistoryParameter,显示界面中设计了导航按钮,记录头,记录尾,上一记录,下一记录,设计了触发器,在添加数据到HistoryParameter表中时,限制记录数为50。问题就在这里,数据显示出错,SQL的BOF或EOF出错,记录已被删除。我个人估计,表HistoryParameter中记录不断被删除(因为要保持不超过50 个记录),另一方面,我又在读取整个表。不知问题如何解决?盼望有高手指点!多谢!
Private Sub Timer3_Timer() '添加实时记录到RealParameter表中,
Timer3.Enabled = False
Call born2 '调用随机生成的数据b2,调用函数BCE转换为十进制
RealParameter.AddNew
With RealParameter
RealParameter.Fields(1) = BCE(Mid(b2, 1, 4))
RealParameter.Fields(2) = BCE(Mid(b2, 5, 4))
RealParameter.Fields(3) = Time
RealParameter.Fields(4) = Date
End With
RealParameter.Update
Call display2 ’调用一个显示子程序
Timer3.Enabled = True
End Sub
Private Sub Timer4_Timer() '从实时数据库中延时转到临时历史数据库中
Dim i As Integer
If RealParameter.RecordCount > 0 Then
RealParameter.MoveFirst
Else
MsgBox "DataBase is Error!"
End If
Do While Not RealParameter.EOF
HistoryParameter.AddNew
With HistoryParameter
For i = 1 To 4
HistoryParameter.Fields(i) = RealParameter.Fields(i)
Next i
End With
HistoryParameter.Update
RealParameter.MoveNext
Loop
End Sub
触发器
CREATE TRIGGER HisP ON [dbo].[HistoryParameter]
FOR INSERT
AS
DELETE FROM HistoryParameter
where id not in
(select top 50 id from historyparameter order by id desc)