>lnHandle = sqlconnect() && connect as the schema onwer [user] >if lnHandle < 1 > return >endif >lnRetVal = sqlexec(lnHandle, 'select table_name, column_name, data_type, data_length, '; > + 'data_precision, data_scale from cols order by 1, 2','crsFields') >if lnRetVal < 1 > MessageBox("View Correction failed!", MB_ICONSTOP, "ERROR!") > return >endif >select crsFields >locate >scan > lcTable = 'v_' + trim(crsFields.Table_Name) > lcField = trim(crsFields.Column_Name) > if !indbc(lcTable + '.' + lcField, 'Field') > loop > endif > if isnull(crsFields.Data_Length) or crsFields.Data_Length = 0 > loop > endif > do case > case inlist(crsFields.Data_Type, 'CHAR', 'VARCHAR2') > lnLength = alltrim(str(crsFields.Data_Length)) > DBSetProp(lcTable + '.' + lcField, 'Field', 'DataType', 'C(&lnLength)') > case crsFields.Data_Type = 'DATE' > DBSetProp(lcTable + '.' + lcField, 'Field', 'DataType', 'D') > case crsFields.Data_Type = 'NUMBER' > lnLength = alltrim(str(nvl(crsFields.Data_Precision, 8))) > lnScale = alltrim(str(nvl(crsFields.Data_Scale, 0))) > if inlist(val(lnLength), 8, 10) and val(lnScale) = 0 && lcField = "KEYID" > DBSetProp(lcTable + '.' + lcField, 'Field', 'DataType', 'I') > else > if val(lnScale) = 0 > DBSetProp(lcTable + '.' + lcField, 'Field', 'DataType', 'N(&lnLength)') > else > DBSetProp(lcTable + '.' + lcField, 'Field', 'DataType', 'N(&lnLength, &lnScale)') > endif > endif > case crsFields.Data_Type = 'LONG' > DBSetProp(lcTable + '.' + lcField, 'Field', 'DataType', 'M') > endcase >endscan