一個ADO源碼問題。。。有點不理解。。。請指教。。(100分)

H

hzjone

Unregistered / Unconfirmed
GUEST, unregistred user!
初始化記錄。。。<br>procedure TCustomADODataSet.InternalInitRecord(Buffer: PChar);<br>var<br> &nbsp;I: Integer;<br>begin<br> &nbsp;for I := 0 to Fields.Count - 1 do<br> &nbsp; &nbsp;PVariantList(Buffer+SizeOf(TRecInfo)) := Null;//給各個字段一個NULL。。<br>end; <br>PVariantList(Buffer+SizeOf(TRecInfo)) := Null;<br> PVariantList = ^TVariantList;<br> &nbsp;TVariantList = array[0..0] of OleVariant;<br>我這邊的問題是 TVariantList 定義成長度為1的OLEVARIANT數組,怎麼還可以<br>for I := 0 to Fields.Count - 1 do<br> &nbsp; &nbsp;PVariantList(Buffer+SizeOf(TRecInfo)) //這個I大於1的話不是前後有問題了嗎。。難道 TVariantList = array[0..0] of OleVariant;代表的是無限長的數組,不過經我測試應為長充為1的數組。。。。
 
TVariantList = array[0..0] of OleVariant这是定义的动态数组
 
結帳了,,自已看錯了。。。以為是<br>TVariantList : array[0..0] of OleVariant<br>哈哈。。。。。
 
顶部