对VC/ADO的一些疑问
1.Connection对象和Command对象都有Execute方法,它们在使用上有区别吗?
2.Execute方法返回一个结果集,那么对于不返回结果的SQL语句(比如update table set key=value),Execute返回什么呢?一个空的结果集?那我如何知道这条SQL语句是否执行成功了呢?在查询分析器里会看到"(所影响的行数为 xxx 行)"或者"UPDATE 失败。语句已终止。"这些提示,那么我在程序中该怎么得到这些信息呢?
3.VARIANT和_variant_t类型使用哪个比较好?据说VARIANT会慢一些,因为它是一个很大的union,对它分配空间要多消耗一些时间.可是,_variant_t不就是对VARIANT的封装类吗,内部操作还不是一样的?不过用_variant_t的话进行类型转换的确容易一点
问题点数:0、回复次数:5Top
1 楼SXSXY(发呆ing...)回复于 2004-05-03 21:28:44 得分 0
up!
怎么没人回答?是不是分给的太少了?
高手们请指教啊!分不够可以再加Top
2 楼lxrlxr20021(艾文)回复于 2004-05-04 22:43:52 得分 0
1.Connection 的只能一些简单SQL命令,不能执行复杂的存储过程(如需要在程序中传递参数给服务器上的存储过程),Command却可以,且Command对象的不同针对性参数,对执行的效率有很大的影响
2.
那些出错信息在服务器的master数据库的某个表(表名我记不得了,你自己找)上记录有,你可以用select那个表得到Top
3 楼lxrlxr20021(艾文)回复于 2004-05-04 22:47:28 得分 0
判断是否执行成功用
try
{
database operator
}
catch(_com_error e)
{
}Top
4 楼byybyybyy(henry)回复于 2004-05-04 23:50:06 得分 0
Connection和Command对象的Execute方法是一样的,当你用Connection的Execute方法的时候,其实已经隐式创建了一个Command对象,不过如果要执行的东西比较烦琐,复杂,就的显式的创建Command对象了
Top
5 楼SXSXY(发呆ing...)回复于 2004-05-05 11:26:14 得分 0
TO: lxrlxr20021(艾文)
你说的是表sysmessages吗?这个表好像很大的,如果一出错就去这个表里查询,那岂不是很影响程序的执行效率?我只是想知道像update table set name='xxx' where id='1' 这种不返回结果集的语句是否达到目的了.如果是执行出错,当然catch(_com_error &e)就可以了.如果是不存在id='1'的记录,上面那个语句也不会出错,但却是无意义的. 请问能够判断这种情况吗?
Top




