61 |
|
TFB30ArrayMetaData = class(TFBArrayMetaData,IArrayMetaData) |
62 |
|
private |
63 |
|
FCodePage: TSystemCodePage; |
64 |
+ |
FCharSetWidth: integer; |
65 |
|
protected |
66 |
|
procedure LoadMetaData(aAttachment: IAttachment; aTransaction: ITransaction; |
67 |
|
relationName, columnName: AnsiString); override; |
68 |
|
public |
69 |
|
function GetCharSetID: cardinal; override; |
70 |
|
function GetCodePage: TSystemCodePage; override; |
71 |
+ |
function GetCharSetWidth: integer; override; |
72 |
|
end; |
73 |
|
|
74 |
|
{ TFB30Array } |
157 |
|
FCharSetID := (aAttachment as TFB30Attachment).CharSetID; |
158 |
|
FCodePage := CP_NONE; |
159 |
|
FAttachment.CharSetID2CodePage(FCharSetID,FCodePage); |
160 |
+ |
FCharSetWidth := 1; |
161 |
+ |
FAttachment.CharSetWidth(FCharSetID,FCharSetWidth); |
162 |
|
if (FArrayDesc.array_desc_dtype in [blr_text,blr_cstring, blr_varying]) and |
163 |
|
(FCharSetID = 0) then {This really shouldn't be necessary - but it is :(} |
164 |
|
with aAttachment as TFBAttachment do |
187 |
|
Result := FCodePage; |
188 |
|
end; |
189 |
|
|
190 |
+ |
function TFB30ArrayMetaData.GetCharSetWidth: integer; |
191 |
+ |
begin |
192 |
+ |
Result := FCharSetWidth; |
193 |
+ |
end; |
194 |
+ |
|
195 |
|
{ TFB30Array } |
196 |
|
|
197 |
|
procedure TFB30Array.AllocateBuffer; |