* Implemented TBufDataset.UpdateIndexDefs

git-svn-id: trunk@9515 -
This commit is contained in:
joost 2007-12-22 14:40:49 +00:00
parent d306e25dc8
commit c7219efd02
5 changed files with 18 additions and 7 deletions

View File

@ -108,8 +108,10 @@ type
TBufIndex = record
Name : String;
SortField : TField;
SortFieldName : String;
Fields : TField;
FieldsName : String;
CaseinsFields : String;
DescFields : String;
{$IFDEF ARRAYBUF}
FCurrentRecInd : integer;
FRecordArray : array of Pointer;
@ -158,6 +160,7 @@ type
FUpdateBlobBuffers: array of PBlobBuffer;
function GetIndexDefs : TIndexDefs;
procedure UpdateIndexDefs; override;
procedure AddRecordToIndex(var AIndex: TBufIndex; ARecBuf: pchar);
function GetCurrentBuffer: PChar;
procedure CalcRecordSize;
@ -309,7 +312,6 @@ end;
destructor TBufDataset.Destroy;
begin
FreeAndNil(FIndexDefs);
inherited destroy;
end;
@ -319,6 +321,19 @@ begin
Result := FIndexDefs;
end;
procedure TBufDataset.UpdateIndexDefs;
var i : integer;
begin
FIndexDefs.Clear;
for i := 0 to length(FIndexes) do with FIndexDefs.AddIndexDef do
begin
Name := FIndexes[i].Name;
Fields := FIndexes[i].FieldsName;
DescFields:= FIndexes[i].DescFields;
CaseInsFields:=FIndexes[i].CaseinsFields;
end;
end;
Function TBufDataset.GetCanModify: Boolean;
begin
Result:= False;

View File

@ -1031,7 +1031,6 @@ begin
'ind.rdb$index_name;');
open;
end;
IndexDefs.Clear;
while not qry.eof do with IndexDefs.AddIndexDef do
begin
Name := trim(qry.fields[0].asstring);

View File

@ -843,7 +843,6 @@ begin
sql.add('show index from ' + TableName);
open;
end;
IndexDefs.Clear;
while not qry.eof do with IndexDefs.AddIndexDef do
begin
Name := trim(qry.fieldbyname('Key_name').asstring);

View File

@ -1098,7 +1098,6 @@ begin
ODBCCheckResult(SQLBindCol(StmtHandle, 10, SQL_C_CHAR , @AscOrDesc , 1, @AscOrDescIndOrLen ), SQL_HANDLE_STMT, StmtHandle, 'Could not bind index metadata column ASC_OR_DESC.');
// clear index defs
IndexDefs.Clear;
IndexDef:=nil;
// fetch result

View File

@ -803,7 +803,6 @@ begin
'ic.relname;');
open;
end;
IndexDefs.Clear;
while not qry.eof do with IndexDefs.AddIndexDef do
begin
Name := trim(qry.fields[0].asstring);