I have no clue what you mean. But I guess you don't use "safe select" ??? If that's the case, I suggest that you reread the message that describes it.
>Thisform.strAliasLote = '_' + Sys(3)
>
>Select * From tab_ctasxpag_002 Where tab_ctasxpag_002.statustran = ' ' Into Cursor (Thisform.strAliasLote) && This is my table
>
>With Thisform.grdTab_ctasxpag_002 as Grid
> .Visible = .T.
> .RecordSource = (Thisform.strAliasLote)
> .RecordSourceType = 1
> .DeleteMark = .F.
> .ReadOnly = .T.
> .ColumnCount = Fcount((Thisform.strAliasLote))
>
> gnFieldcount = Afields(gaMyArray,(Thisform.strAliasLote)) && Create array.
>
> For n = 1 To .ColumnCount
> strCol = 'Column'+Alltrim(Str(n))
> .&strCol..ControlSource = Field(n)
> .&strCol..Header1.Caption = Alltrim(Proper(Field(n)))
> .&strCol..Width = Fsize(Field(n))+75
> If gaMyArray(n,2) = 'N' And (gaMyArray(n,4) > 0)
> .&strCol..InputMask = tcmask_numeros (variable to mask number)
> Endif
> Endfor
>
>Endwith
>
>with this code I resolved my problem, when my grid was refreshed with SQL, it produced the same problem to you.