Тип номера DBFField - PullRequest
       9

Тип номера DBFField

0 голосов
/ 08 января 2019

У меня есть код, который формирует файл dbf, но два поля имеют числовой тип, и одно из них имеет значение 45,05, а другое 45, но я не могу записать два разных значения в файл dbf, я получил 45 и 45 вместо 45,05 и 45!

switch (metaData.getColumnType(i + 1)) {
  case 91:
    arrfiled[recNum].setName(temp);
    arrfiled[recNum].setDataType(DBFField.FIELD_TYPE_D);
    break;
  case 93:
    arrfiled[recNum].setName(temp);
    arrfiled[recNum].setDataType(DBFField.FIELD_TYPE_D);
    break;
  case 2:
    arrfiled[recNum].setName(temp);
    arrfiled[recNum].setDataType(DBFField.FIELD_TYPE_N);
    arrfiled[recNum].setFieldLength(
        metaData.getPrecision(i + 1) == 0 ? 10 : metaData.getPrecision(i + 1));
    break;
  case 3:
    arrfiled[recNum].setName(temp);
    arrfiled[recNum].setDataType(DBFField.FIELD_TYPE_N);
    arrfiled[recNum].setFieldLength(
        metaData.getPrecision(i + 1) == 0 ? 10 : metaData.getPrecision(i + 1));
    break;
  case 8:
    arrfiled[recNum].setName(temp);
    arrfiled[recNum].setDataType(DBFField.FIELD_TYPE_N);
    arrfiled[recNum].setFieldLength(
        metaData.getPrecision(i + 1) == 0 ? 10 : metaData.getPrecision(i + 1));
    break;
  default:
    arrfiled[recNum].setName(temp);
    arrfiled[recNum].setDataType(DBFField.FIELD_TYPE_C);
    arrfiled[recNum].setFieldLength(metaData.getPrecision(i + 1) > 253
                                        ? 253
                                        : metaData.getPrecision(i + 1));
    break;
}
recNum++;
}
...