Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
原先一段日志代码在SQL Server数据源环境下运行正常,但是在Access数据源环境下出错,想用数据源(Connection)的SourceType属性来实现代码通用,但是修改后出错,不知问题出在哪里?应该如何修改代码,请各位老师指教。
原代码:(在用户登录窗口的确定按钮)
'登录日志
Dim cmb As New SQLCommand
Dim dd As Date
cmb.C '外部数据源
cmb.CommandText = "Select GetDate()" '服务器时间
dd = cmb.ExecuteScalar()
cmb.CommandText = "Insert Into {日志} ([用户组],[用户名],[状态],[时间],[设备ID]) Values ('"
cmb.CommandText = cmb.CommandText & _UserGroup & "','" & _UserName & "','" & "登录" & "','" & dd & "','" & ComputerId & "')"
cmb.ExecuteNonQuery()
DataTables("日志").Load()'刷新表
将其中一条代码:cmb.CommandText = "Select GetDate()" '服务器时间
替换为:
If Connections("SCGL").SourceType = 1 Then 'Access数据源
cmb.CommandText = "Date.Now()" '系统时间
ElseIf Connections("SCGL").SourceType = 2 Then 'SQL Server数据源
cmb.CommandText = "Select GetDate()" '服务器时间
End If
登录时出错:
退出时出错:
'登录日志
Dim cmb As New SQLCommand
Dim dd As Date
If Connections("SCGL").SourceType = 2 Then 'SQL Server数据源
cmb.C '外部数据源
cmb.CommandText = "Select GetDate()" '服务器时间
dd = cmb.ExecuteScalar()
cmb.CommandText = "Insert Into {日志} ([用户组],[用户名],[状态],[时间],[设备ID]) Values ('"
cmb.CommandText = cmb.CommandText & _UserGroup & "','" & _UserName & "','" & "登录" & "','" & dd & "','" & ComputerId & "')"
cmb.ExecuteNonQuery()
DataTables("日志").Load()'刷新表
ElseIf Connections("SCGL").SourceType = 1 Then 'Access数据源
cmb.C '外部数据源
dd = Date.Now
cmb.CommandText = "Insert Into {日志} ([用户组],[用户名],[状态],[时间],[设备ID]) Values ('"
cmb.CommandText = cmb.CommandText & _UserGroup & "','" & _UserName & "','" & "登录" & "','" & dd & "','" & ComputerId & "')"
cmb.ExecuteNonQuery()
DataTables("日志").Load()'刷新表
End If
调整为上述代码后,在Access数据源环境下,登录时的出错解决,日志时间显示正常,但是退出时的出错依然存在,请各位老师指教,谢谢!!
Access和内部表的SQL语法,没有DAte.Now的用法,这只能用在代码中。
Access没有获得系统时间的SQL语法。
至于改进后的语法出错,你可以检查一下合成的SQL语句,看看有没有问题。