From 2877cbcdbeaf694a3f9381c581883c28e29a685f Mon Sep 17 00:00:00 2001 From: DungSaga Date: Fri, 29 Apr 2022 09:54:38 +0700 Subject: [PATCH] get column name from GridResult (instead of Grid.Header) --- source/main.pas | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/source/main.pas b/source/main.pas index 2bb70d1c..5e0eca64 100644 --- a/source/main.pas +++ b/source/main.pas @@ -7852,9 +7852,7 @@ begin actFollowForeignKey.Enabled := False; if (InDataGrid) then begin - //get column name from header - FocusedColumnName := Grid.Header.Columns[Grid.FocusedColumn].Text; - + FocusedColumnName := Results.ColumnOrgNames[Grid.FocusedColumn]; //find foreign key for current column for ForeignKey in ActiveDBObj.TableForeignKeys do begin i := ForeignKey.Columns.IndexOf(FocusedColumnName); @@ -11296,13 +11294,11 @@ begin Results := GridResult(Grid); RowNum := Grid.GetNodeData(Grid.FocusedNode); Results.RecNo := RowNum^; - FocusedValue := Results.Col(Grid.FocusedColumn); - //get column name from header - FocusedColumnName := Grid.Header.Columns[Grid.FocusedColumn].Text; + FocusedColumnName := Results.ColumnOrgNames[Grid.FocusedColumn]; //find foreign key for current column for ForeignKey in ActiveDBObj.TableForeignKeys do begin - i := ForeignKey.Columns.IndexOf(Grid.Header.Columns[Grid.FocusedColumn].Text); + i := ForeignKey.Columns.IndexOf(FocusedColumnName); if i > -1 then begin ForeignColumnName := ForeignKey.ForeignColumns[i]; ReferenceTable := ForeignKey.ReferenceTable; @@ -11324,7 +11320,8 @@ begin end; Node := GetNextNode(ListTables, Node); end; - Datatype := ActiveDBObj.TableColumns[Grid.FocusedColumn].DataType; + Datatype := Results.DataType(Grid.FocusedColumn); + FocusedValue := Results.Col(Grid.FocusedColumn); // filter to show only rows linked by the foreign key SynMemoFilter.UndoList.AddGroupBreak; SynMemoFilter.Text := Results.Connection.QuoteIdent(ForeignColumnName, False) + '=' + Results.Connection.EscapeString(FocusedValue, Datatype);