2010-11-29 24 views
0

我在Btrieve中获取GetNextExtended(36)操作 时遇到问题。这里是一个返回状态码62呼叫:Btrieve GetNextExtended Status 62

intStatus = BTRCALL(B_GETNEXTEXTENDED, _ 
         m_byteFilePosBlk, _ 
         m_byteRecordBuffer(0), _ 
         lngDataBufferLen, _ 
         ByVal strKeyBuffer, _ 
         intKeyBufferLen, _ 
         m_intKeyNum) 

做的代码搜索后,我发现很多网站,指出 代码表示DataBuffer中的一个错误,存储在m_byteRecordBuffer。 下面是存储在变量中的值:

m_byteRecordBuffer(0) 16 'These two bytes indicate the total size of' 
m_byteRecordBuffer(1) 0  'data buffer' 

m_byteRecordBuffer(2) 67 'These two bytes indicate the characters 'UC'' 
m_byteRecordBuffer(3) 85 

m_byteRecordBuffer(4) 0  'These two bytes indicate the maximum reject' 
m_byteRecordBuffer(5) 0  'count, which if set to 0 defaults to 4,095' 

m_byteRecordBuffer(6) 0  'These two bytes indicate the number of terms' 
m_byteRecordBuffer(7) 0  'which has been set to zero' 

m_byteRecordBuffer(8) 1  'These two bytes indicate the number of' 
m_byteRecordBuffer(9) 0  'records to return' 

m_byteRecordBuffer(10) 1  'These two bytes indicate the number of fields' 
m_byteRecordBuffer(11) 0  'to extract' 

m_byteRecordBuffer(12) 2  'These two bytes indicate the length of the' 
m_byteRecordBuffer(13) 0  'field to extract' 

m_byteRecordBuffer(14) 1  'These two bytes indicate the field offset' 
m_byteRecordBuffer(15) 0 

我希望我只是失去了一些东西简单。任何帮助将不胜感激。

+0

如果您没有过滤条件并且只获取一条记录,那么您不能只使用常规GETNEXT而不是GETNEXTEXTENDED ?在记录缓冲区中,尝试交换UC字符的位置。将'U'(85)置于位置2,将'C'(67)置于位置3. – Anna 2010-11-29 15:42:17

回答

1

在记录缓冲区中,尝试交换UC字符的位置。
将'U'(85)置于位置2并将'C'(67)置于位置3.