因为数据库存储的数据要求加密,用VC作了个DLL,在数据写入数据库和读出来时进行加密解密。
但这样就碰到了问题,进行sql查询时,子字符串单独加密的结果和在整个字符串中的加密结果是完全不一样的,因此只能将全部记录读出后,对加密字段进行解密,然后才可以进行查询。加密解密的函数不是VB的系统函数,放在sql语句里不接受。
上午问了别人知道一个办法,先把记录集clone一个,对clone后的记录集加密字段进行解密,然后再设置filter,可是又出现问题,记录集关闭时总把解密的字段写回数据库。奇怪!对clone的记录集进行操作也会更新数据库吗?
 
如果把记录集的locktype属性设置为只读,clone后的记录集也是只读的,就没办法对相应字段进行解密操作了。像这种问题难道只能将记录读到大数组里然后一条一条进行搜索查询吗?请高手帮忙

解决方案 »

  1.   

    希望小橙子能详细解释一下如何用ADO建立内存记录集,谢谢。
      

  2.   

    如果记录集是保持连接的,Clone生成的记录集是原来复本。可以这样做,把Clone后的记录集连接断开,再对这个复本进行操作就不会更新到数据库,如:Dim rstTemp   As RecordsetSet rstTemp=rstSrc.Clone
    Set rstTemp.ActiveConnection = Nothing...
      

  3.   

    to fj182(阿花) :
    试验了你的方法,出来了错误说“对象打开时,不允许操作。”??