此问题使用来自C#/。NET程序的Cisso.dll互操作库的Microsoft Indexing Services(Dialect 2)和IixssoQuery interface。微软索引服务Cisso.dll互操作库:4字节整数的上限?
有定义为vt_i8
数据类型(8个字节)在我们的索引列然而互操作库的CreateRecordSet
方法总是返回具有4个字节整数数值列一个记录,截断上述2147483648范围限制的任何。
理想情况下,我们需要拉C#long
System.Int64(8字节)而不是C#int
System.Int32(4字节)来自interop库。
以下代码示例(主要提供给缓存)使用Cisso.dll获取记录集并填充DataTable,并返回带有截断整数的数据表。
CissoQueryClass cqc = new Cisso.CissoQueryClass();
RecordSet rs = new RecordSet();
cqc.Columns = "Rank, DocTitle, VPath, Filename, Characterization,Write";
// ... setup ...
var myDs = new DataSet();
oldDbAdapter.Fill(myDs, cqc.CreateRecordSet("nonsequential"), "IXResults");
return myDs;
我们试过cqc。 DefineColumn(..)
方法,玩数据类型等,但无济于事 - 在截断整数的行为中看不到变化。
我想知道这个整数截断是CISSO互操作库的限制,还是可以从中拉出更大的整数值,而我们只是不知道该怎么做?
我敢肯定,这里附近的人肯定会碰到类似的问题。这次搜索互联网的细节很短。
我们发现基于索引中的数据解决方法:我们能够拉动我们从另一个字符串场需要,并从中解析出号码。不理想,但是一种解决方法。
你是否为Win2000客户端和早期写作?我问的原因是我注意到它被XP贬值。 – 2011-03-05 08:28:30