学生信息管理系统问题(二)
2013-08-07 15:06
323 查看
自从开始做学生信息管理系统以来,问题层出不穷,一个又一个,不过这也正好给了我学习的机会,在不断地探索与错误中开始成长,正是因为出错了,我才会上网查找,以寻求答案,在这个过程中,本来不熟悉的东西也慢慢地开始熟悉了,错误教会了我们怎么去成长,以及如何向更好地方面去发展。
昨天遇到了一个问题,一个很奇怪的问题,我也不知道怎么回事,请教了同学,和同学奋战了一个半的小时,终于皇天不负有心人,在快下课的时候,终于解决了。想知道问题究竟是什么吗?好吧,我来说说。
在操作数据库的时候,出现的问题是:数据库显示添加成功,但是数据信息添加不到数据库内,但是又可以读到数据库里的内容,也就是说连接到了数据库,但是无法实现对数据库的增删改等,查了半天,刚开始查到的原因是添加学籍信息的模块里mrc.addnew没有写上,但是发现即使写上了,也不可以,于是最后经过同学的不断尝试,原来就是ExecuteSQL函数在定义的时候出了问题。具体出现的问题是这样的,原来我的代码是:
而正确的代码与我的只是相差一个属性。却导致了相反的结果,问题就出在最后一句,最后一个属性值上了,正确的是:
看到了吗?两者的相似度还是很大的,只是一个不小心,就使得出现了相反的结果。进一步解释来说:
adLockOptimistic 当数据源正在更新时,系统不会锁定其他用户的动作,其他用户可以对数据进行增、删、改操作 。
adLockBatchOptimistic 当数据源正在更新时,其他用户必须将CursorLocation改为adUdeClientBatch才能对数据进行增、删、改的操作。
所以即使我已经连上了数据库,而且有把添加的信息送回去这个代码:Set mrc = ExecuteSQL(txtSQL, MsgText),可是函数如果定义错了,数据库还是不允许我对其进行增、删、改的操作,做什么事情都得认真,思考也必须严谨,如果有人和我的错误一样,请仔细核对一下模块里的内容,也许在你不注意的地方就是你出错地方。在此特地谢谢帮我查找错误的同学,奋战一个半小时,“一清”同学,谢谢了~
昨天遇到了一个问题,一个很奇怪的问题,我也不知道怎么回事,请教了同学,和同学奋战了一个半的小时,终于皇天不负有心人,在快下课的时候,终于解决了。想知道问题究竟是什么吗?好吧,我来说说。
在操作数据库的时候,出现的问题是:数据库显示添加成功,但是数据信息添加不到数据库内,但是又可以读到数据库里的内容,也就是说连接到了数据库,但是无法实现对数据库的增删改等,查了半天,刚开始查到的原因是添加学籍信息的模块里mrc.addnew没有写上,但是发现即使写上了,也不可以,于是最后经过同学的不断尝试,原来就是ExecuteSQL函数在定义的时候出了问题。具体出现的问题是这样的,原来我的代码是:
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim sTokens() As String On Error GoTo ExecuteSQL_Error sTokens = Split(SQL) Set cnn = New ADODB.Connection cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then cnn.Execute SQL MsgString = sTokens(0) & "query successful" Else Set rst = New ADODB.Recordset rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockBatchOptimistic ……
而正确的代码与我的只是相差一个属性。却导致了相反的结果,问题就出在最后一句,最后一个属性值上了,正确的是:
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic没有错,我把adLockOptimistic写成了adLockBatchOptimistic,结果就错了,也不是错了,就是没有得出自己想要的结果。
看到了吗?两者的相似度还是很大的,只是一个不小心,就使得出现了相反的结果。进一步解释来说:
adLockOptimistic 当数据源正在更新时,系统不会锁定其他用户的动作,其他用户可以对数据进行增、删、改操作 。
adLockBatchOptimistic 当数据源正在更新时,其他用户必须将CursorLocation改为adUdeClientBatch才能对数据进行增、删、改的操作。
所以即使我已经连上了数据库,而且有把添加的信息送回去这个代码:Set mrc = ExecuteSQL(txtSQL, MsgText),可是函数如果定义错了,数据库还是不允许我对其进行增、删、改的操作,做什么事情都得认真,思考也必须严谨,如果有人和我的错误一样,请仔细核对一下模块里的内容,也许在你不注意的地方就是你出错地方。在此特地谢谢帮我查找错误的同学,奋战一个半小时,“一清”同学,谢谢了~
相关文章推荐
- 学生信息管理系统问题总结(二)
- 学生信息管理系统中遇到的问题
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统问题篇
- 学生信息管理系统之ASCII问题汇总
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统--常见问题
- 学生信息管理系统总结——细节问题
- 学生信息管理系统中遇到的问题解析
- 学生信息管理系统之优化问题
- 学生信息管理系统之问题汇总
- 学生信息管理系统之日期添加方式自动转换问题
- 学生信息管理系统之ASCII问题汇总
- 学生信息管理系统之问题集锦
- 学生信息管理系统“重复设置”问题
- 【学生信息管理系统】——数据类型问题
- 学生信息管理系统问题(一)
- 学生信息管理系统问题集锦(三)
- 学生信息管理系统问题集锦(三)
- 解决学生信息管理系统之List列表中重复添加相同数据问题。