vb6 Timer控件为啥连1s精度都达不到呢?
时间:2011-08-12
来源:互联网
另外,我的时间字段存数时直接存的是vb的常数“Now”,存数方式采用的是调用存储过程。
作者: youzhj 发布时间: 2011-08-12
Private Sub TmStore_Timer() Call RCsetting Dim strsql, sDtValue As String Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command cmd.ActiveConnection = conn cmd.CommandText = "Insert_Data" cmd.CommandType = adCmdStoredProc cmd.Parameters(1) = Now cmd.Parameters(2) = Val(Ua.Text) cmd.Parameters(3) = Val(Ub.Text) cmd.Parameters(4) = Val(Uc.Text) cmd.Parameters(5) = Val(Uab.Text) cmd.Parameters(6) = Val(Ubc.Text) cmd.Parameters(7) = Val(Uca.Text) cmd.Parameters(8) = Val(Ia.Text) cmd.Parameters(9) = Val(Ib.Text) cmd.Parameters(10) = Val(Ic.Text) cmd.Parameters(11) = Val([In].Text) cmd.Parameters(12) = Val(Pa.Text) cmd.Parameters(13) = Val(Pb.Text) cmd.Parameters(14) = Val(Pc.Text) cmd.Parameters(15) = Val(Psum.Text) cmd.Parameters(16) = Val(Qa.Text) cmd.Parameters(17) = Val(Qb.Text) cmd.Parameters(18) = Val(Qc.Text) cmd.Parameters(19) = Val(Qsum.Text) cmd.Parameters(20) = Val(Sa.Text) cmd.Parameters(21) = Val(Sb.Text) cmd.Parameters(22) = Val(Sc.Text) cmd.Parameters(23) = Val(Ssum.Text) cmd.Parameters(24) = Val(PFa.Text) cmd.Parameters(25) = Val(PFb.Text) cmd.Parameters(26) = Val(PFc.Text) cmd.Parameters(27) = Val(PF.Text) cmd.Parameters(28) = Val(U_unbl.Text) cmd.Parameters(29) = Val(I_unbl.Text) cmd.Parameters(30) = Val(THD_Ua.Text) cmd.Parameters(31) = Val(THD_Ub.Text) cmd.Parameters(32) = Val(THD_Uc.Text) cmd.Parameters(33) = Val(THD_U.Text) cmd.Parameters(34) = Val(THD_Ia.Text) cmd.Parameters(35) = Val(THD_Ib.Text) cmd.Parameters(36) = Val(THD_Ic.Text) cmd.Parameters(37) = Val(THD_I.Text) cmd.Parameters(38) = strR cmd.Parameters(39) = strC Set rs = cmd.Execute End Sub
作者: youzhj 发布时间: 2011-08-12
作者: mokton 发布时间: 2011-08-12
作者: youzhj 发布时间: 2011-08-12
作者: z_wenqian 发布时间: 2011-08-12
别外可以考虑不用存储过程,直接用sql语句insert into 插入数据(建议测试一下)。
作者: chinaboyzyq 发布时间: 2011-08-12
如果想精确控制,建议用多媒体计时器来做。
作者: cuizm 发布时间: 2011-08-12
你的 RCsetting 是什么,或不会是它的执行占用了太长的时间呢?
VB code
'设置电阻电容对应字符串 Public Sub RCsetting() Dim sRa, sRb, sRc, sRab, sRbc, sRca As String Dim sCa, sCb, sCc, sCab, sCbc, sCca As String If Len(Ra.Text) > 0 Then sRa = "Ra" & "(" & Ra.Text & ")+" If Len(Rb.Text) > 0 Then sRb = "Rb" & "(" & Rb.Text & ")+" If Len(Rc.Text) > 0 Then sRc = "Rc" & "(" & Rc.Text & ")+" If Len(Rab.Text) > 0 Then sRab = "Rab" & "(" & Rab.Text & ")+" If Len(Rbc.Text) > 0 Then sRbc = "Rbc" & "(" & Rbc.Text & ")+" If Len(Rca.Text) > 0 Then sRca = "Rca" & "(" & Rca.Text & ")+" strR = sRa & sRb & sRc & sRab & sRbc & sRca If Len(strR) > 0 Then strR = Left(strR, InStrRev(strR, "+") - 1) If Len(Ca.Text) > 0 Then sCa = "Ca" & "(" & Ca.Text & ")+" If Len(Cb.Text) > 0 Then sCb = "Cb" & "(" & Cb.Text & ")+" If Len(Cc.Text) > 0 Then sCc = "Cc" & "(" & Cc.Text & ")+" If Len(Cab.Text) > 0 Then sCab = "Cab" & "(" & Cab.Text & ")+" If Len(Cbc.Text) > 0 Then sCbc = "Cbc" & "(" & Cbc.Text & ")+" If Len(Cca.Text) > 0 Then sCca = "Cca" & "(" & Cca.Text & ")+" strC = sCa & sCb & sCc & sCab & sCbc & sCca If Len(strC) > 0 Then strC = Left(strC, InStrRev(strC, "+") - 1) End Sub
作者: youzhj 发布时间: 2011-08-12
应该是你的定时器内的任务执行时间超过了1s,优化你的定时器内程序把一些变量的定义等放到外部到去,再测试下。
别外可以考虑不用存储过程,直接用sql语句insert into 插入数据(建议测试一下)。
作者: youzhj 发布时间: 2011-08-12
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28