mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 17:59:09 +02:00
* Implemented TBufDataset.UpdateIndexDefs
git-svn-id: trunk@9515 -
This commit is contained in:
parent
d306e25dc8
commit
c7219efd02
@ -108,8 +108,10 @@ type
|
|||||||
|
|
||||||
TBufIndex = record
|
TBufIndex = record
|
||||||
Name : String;
|
Name : String;
|
||||||
SortField : TField;
|
Fields : TField;
|
||||||
SortFieldName : String;
|
FieldsName : String;
|
||||||
|
CaseinsFields : String;
|
||||||
|
DescFields : String;
|
||||||
{$IFDEF ARRAYBUF}
|
{$IFDEF ARRAYBUF}
|
||||||
FCurrentRecInd : integer;
|
FCurrentRecInd : integer;
|
||||||
FRecordArray : array of Pointer;
|
FRecordArray : array of Pointer;
|
||||||
@ -158,6 +160,7 @@ type
|
|||||||
FUpdateBlobBuffers: array of PBlobBuffer;
|
FUpdateBlobBuffers: array of PBlobBuffer;
|
||||||
|
|
||||||
function GetIndexDefs : TIndexDefs;
|
function GetIndexDefs : TIndexDefs;
|
||||||
|
procedure UpdateIndexDefs; override;
|
||||||
procedure AddRecordToIndex(var AIndex: TBufIndex; ARecBuf: pchar);
|
procedure AddRecordToIndex(var AIndex: TBufIndex; ARecBuf: pchar);
|
||||||
function GetCurrentBuffer: PChar;
|
function GetCurrentBuffer: PChar;
|
||||||
procedure CalcRecordSize;
|
procedure CalcRecordSize;
|
||||||
@ -309,7 +312,6 @@ end;
|
|||||||
destructor TBufDataset.Destroy;
|
destructor TBufDataset.Destroy;
|
||||||
begin
|
begin
|
||||||
FreeAndNil(FIndexDefs);
|
FreeAndNil(FIndexDefs);
|
||||||
|
|
||||||
inherited destroy;
|
inherited destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -319,6 +321,19 @@ begin
|
|||||||
Result := FIndexDefs;
|
Result := FIndexDefs;
|
||||||
end;
|
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;
|
Function TBufDataset.GetCanModify: Boolean;
|
||||||
begin
|
begin
|
||||||
Result:= False;
|
Result:= False;
|
||||||
|
@ -1031,7 +1031,6 @@ begin
|
|||||||
'ind.rdb$index_name;');
|
'ind.rdb$index_name;');
|
||||||
open;
|
open;
|
||||||
end;
|
end;
|
||||||
IndexDefs.Clear;
|
|
||||||
while not qry.eof do with IndexDefs.AddIndexDef do
|
while not qry.eof do with IndexDefs.AddIndexDef do
|
||||||
begin
|
begin
|
||||||
Name := trim(qry.fields[0].asstring);
|
Name := trim(qry.fields[0].asstring);
|
||||||
|
@ -843,7 +843,6 @@ begin
|
|||||||
sql.add('show index from ' + TableName);
|
sql.add('show index from ' + TableName);
|
||||||
open;
|
open;
|
||||||
end;
|
end;
|
||||||
IndexDefs.Clear;
|
|
||||||
while not qry.eof do with IndexDefs.AddIndexDef do
|
while not qry.eof do with IndexDefs.AddIndexDef do
|
||||||
begin
|
begin
|
||||||
Name := trim(qry.fieldbyname('Key_name').asstring);
|
Name := trim(qry.fieldbyname('Key_name').asstring);
|
||||||
|
@ -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.');
|
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
|
// clear index defs
|
||||||
IndexDefs.Clear;
|
|
||||||
IndexDef:=nil;
|
IndexDef:=nil;
|
||||||
|
|
||||||
// fetch result
|
// fetch result
|
||||||
|
@ -803,7 +803,6 @@ begin
|
|||||||
'ic.relname;');
|
'ic.relname;');
|
||||||
open;
|
open;
|
||||||
end;
|
end;
|
||||||
IndexDefs.Clear;
|
|
||||||
while not qry.eof do with IndexDefs.AddIndexDef do
|
while not qry.eof do with IndexDefs.AddIndexDef do
|
||||||
begin
|
begin
|
||||||
Name := trim(qry.fields[0].asstring);
|
Name := trim(qry.fields[0].asstring);
|
||||||
|
Loading…
Reference in New Issue
Block a user