setting TField readOnly very slow on oracle 11.2
Posted: Thu 04 Dec 2014 08:42
we have the following method that is quite fast with oracle 10.2 but becomes very very slow (unusable) if it is used with oracle 11.2.
the line of code where it becomes slow is
DetailTable->Fields->Fields[ i ]->ReadOnly = disabilita;
void __fastcall TConfordi::DisabilitaCampi( bool disabilita )
{
String ls;
//DetailTable is a TSmartQuery
for ( int i = 0; i < DetailTable->FieldCount; i++ )
{
ls = DetailTable->Fields->Fields[ i ]->FieldName.UpperCase();
if ( ( ls != "F_VALID" ) &&
( ls != "DATA_ULTIMA_MODIFICA" ) &&
( ls != "ID_UTENTE" ) &&
( ls!= "DATA_RIENTRO_TINT_PREV" ) &&
( ls!= "COSTO_LAVORAZIONE" ) &&
( ls != "DATA_LAVORAZIONE" ) &&
( ls != "TINTORIA" ) &&
( ls != "DATA_RIENTRO_TINT_PREV1" ) &&
( ls != "COSTO_LAVORAZIONE1" ) &&
( ls != "DATA_LAVORAZIONE1" ) &&
( ls != "TINTORIA1" ) &&
( ls != "DATA_RIENTRO_TINT_PREV2" ) &&
( ls != "COSTO_LAVORAZIONE2" ) &&
( ls!= "DATA_LAVORAZIONE2" ) &&
( ls != "TINTORIA2" ) &&
( ls != "TIPO_LAVORAZIONE1" ) &&
( ls != "TIPO_LAVORAZIONE2" ) &&
( ls != "TIPO_LAVORAZIONE3" ) &&
( ls != "DATA_CONSEGNA" ) &&
( ls != "NO_LABDIP" ) )
DetailTable->Fields->Fields[ i ]->ReadOnly = disabilita;
}
}
the line of code where it becomes slow is
DetailTable->Fields->Fields[ i ]->ReadOnly = disabilita;
void __fastcall TConfordi::DisabilitaCampi( bool disabilita )
{
String ls;
//DetailTable is a TSmartQuery
for ( int i = 0; i < DetailTable->FieldCount; i++ )
{
ls = DetailTable->Fields->Fields[ i ]->FieldName.UpperCase();
if ( ( ls != "F_VALID" ) &&
( ls != "DATA_ULTIMA_MODIFICA" ) &&
( ls != "ID_UTENTE" ) &&
( ls!= "DATA_RIENTRO_TINT_PREV" ) &&
( ls!= "COSTO_LAVORAZIONE" ) &&
( ls != "DATA_LAVORAZIONE" ) &&
( ls != "TINTORIA" ) &&
( ls != "DATA_RIENTRO_TINT_PREV1" ) &&
( ls != "COSTO_LAVORAZIONE1" ) &&
( ls != "DATA_LAVORAZIONE1" ) &&
( ls != "TINTORIA1" ) &&
( ls != "DATA_RIENTRO_TINT_PREV2" ) &&
( ls != "COSTO_LAVORAZIONE2" ) &&
( ls!= "DATA_LAVORAZIONE2" ) &&
( ls != "TINTORIA2" ) &&
( ls != "TIPO_LAVORAZIONE1" ) &&
( ls != "TIPO_LAVORAZIONE2" ) &&
( ls != "TIPO_LAVORAZIONE3" ) &&
( ls != "DATA_CONSEGNA" ) &&
( ls != "NO_LABDIP" ) )
DetailTable->Fields->Fields[ i ]->ReadOnly = disabilita;
}
}