从大容量字段中取出数据时发生错误, 求解!!!!!!!

crystalinpara 2003-01-07 03:00:12
Dim rs adodb.recordset
dim Fsize As long, BufCount, BufRemainder, jj As Integer
set rs=getquery(dbname,dbrecname)
Const ChunkSize = 3000
Dim strTmp As String
With ce '下面把数据装入CE, CE是自定义的变量
'-----------------以下,从大容量字段中取出数据.------------------
Fsize = rs("content").FieldSize'content是类型为DbMemo的字段
BufCount = Fsize \ ChunkSize
BufRemainder = Fsize - ChunkSize * BufCount
Do While BufCount > 0
strTmp = rs("content").GetChunk(ChunkSize)
.Content = .Content & strTmp
BufCount=BufCount-1
Loop
strTmp = rs("content").GetChunk(BufRemainder)
.Content = .Content & strTmp
'---------------------------------------------------------------

运行时,错误有:
1.在Fsize = rs("content").FieldSize处提示"类型不匹配"
2.在strTmp = rs(2).GetChunk(ChunkSize)处提示"参数不可选"

请高手指教.
...全文
11 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkmoon 2003-01-10
我给你回短消息了,不知道你看见没有。
出现乱码的邮件你有没有看过邮件头是什么内码的?是不是GB码?
回复
darkmoon 2003-01-09
哦,richtextbox我没用过,不过它的.text属性应该是不带字符格式的,你存放的应该不是一般的字符串吧。好象有个别的.textrtf什么的你试试。
还有你怎么把数据写进数据库的?不能用CONTENT=RS!CONTENT这种方式取得数据,必须用).GetChunk方法,通常的存取图片都是这种方式。
如果你是从文件写入的,最好的方法是还原成文件,再用loadfile应该没问题。
你先试一下,有问题再告诉我
回复
crystalinpara 2003-01-09
显示用两步:
1.CONTENT=RS!CONTENT
2.TXTCONTNT.TEXT=CONTENT(TXTCONTENT为RICHTEXTBOX)

数据存放在MDB文件里,很小的数据库.
回复
darkmoon 2003-01-09
你显示在哪里呢?存放的是不是文件?
回复
crystalinpara 2003-01-09
如果你还能看到,就往下看吧(废话!)

一个MEMO字段, 平均存放的数据大小为20K左右. 我用 CONTENT=RS!CONTENT就可以正确显示其中80%的内容, 用这个方法后成功率又提高了一点,但还有一些仍然显示不出来,但用ACCESS打开看,数据又在里面.

分析了一下,发现显示不出来的多半是因为有很多的空格符或其他不可见字符.比如:

你好, CRYSTAL!









JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ







就只能显示"你好,CRYSTAL"

我怀疑这是ACCESS或者VB的BUG.
回复
crystalinpara 2003-01-09
content是邮件的内容(从POP3服务器取得的,附件信息已经拿出来了).从属于一个自定义变量:EMAIL.显示邮件内容的步骤是:
一.存入数据库
服务器->EMAIL->数据库
二,从数据库取出,显示在TXTCONTENT中
数据库->EMAIL->MSFLAXGRID的MATRIXTEXT(I,J)->EMAIL->CONTENT->TXTCONTENT.TEXT

大多数邮件的内容都可以正确显示出来,有一些就不行.
你说的这个办法很难做到.因为很多邮件是用QP或者BASE64编码的,解码的时候是一行一行进行的.用LOADFILE方法不太现实.
解码后有时会出现些乱码,而出现乱码的正是不能被正确显示出来的.

其实我猜原因就在这些乱码里面.我试着从ACCESS里直接将内容COPY(这时还是可以看到的),然后粘贴到TXTCONTENT中,但是内容就看不到了.所以应该是这个控件的问题.

你的方法我用到从数据库存取图片上去了,效果还可以,再一次感谢.
回复
darkmoon 2003-01-07
哦?还有什么问题?我很少上MSN
回复
crystalinpara 2003-01-07
其实问题只解决了一半,能加你MSN吗
回复
darkmoon 2003-01-07
还是免了吧,记着欠我一杯 :)
回复
darkmoon 2003-01-07
随意都行,只要不是灌水,呵呵~~~
回复
crystalinpara 2003-01-07
兄弟你真神了!

喝什么?
回复
darkmoon 2003-01-07
在线等着喝一杯 :)
回复
darkmoon 2003-01-07
1.Fsize = rs("content").ActualSize
2.ReDim strTmp(1 To Fsize) As Byte
strTmp = rs(2).GetChunk(ChunkSize)

回复
crystalinpara 2003-01-07
在线等候啊,解决了请你喝一杯.
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告