首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

在记录集里使用CopyMemory到Variant变量的有关问题

2012-09-24 
在记录集里使用CopyMemory到Variant变量的问题不知道为什么SQL2005就是不能使用GetChunk到一个字节组,但是

在记录集里使用CopyMemory到Variant变量的问题
不知道为什么SQL2005就是不能使用GetChunk到一个字节组,但是可以读取到Variant变量,我用StrPtr可以取得其内存的地址,用CopyMemory读取数据完全没有问题,但是写数据就不行了。
Dim mg(7) As Long, lm As Long,itm As Variant 
CopyMemory mg(0), ByVal StrPtr(itm), 28
取任何指针的数据都可以,像这样
lm = StrPtr(itm) + lb1 * 6
CopyMemory mg(0), ByVal lm + 8, 28
但是我反过来写
CopyMemory ByVal lm + 8, mg(0), 28
也没出错。但是再次读取内容没变。
这里必须用StrPtr,如果用VarPtr或者直接写变量CopyMemory mg(0), itm, 28时,内存就出错了。
说明内存位置都是对的。能读应该能写啊。为什么写了之后,再读出来还没有变呢。

[解决办法]

Variant 型变量是复合类型,情况比较复杂。可能需要你详细了解它的数据存储结构。

建议用 Variant 获取数据后,就复制到一个用作内部缓存的 Byte 数组。后续操作不再涉及 Variant,它仅用于中转。
 

热点排行