Column complexValFkCol = null; for(Column col : otherCols) { if(col.isAutoNumber()) { pkCol = col; } else if(col.getType() == DataType.LONG) {
private static boolean hasAutoNumberColumn(Table t) { List<? extends Column> lc = t.getColumns(); for (Column cl : lc) { if (cl.isAutoNumber() || DataType.BOOLEAN.equals(cl.getType())) { return true; } } return false; }
private void saveColumnsDefaults(String[] defaults, Boolean[] required, Column cl, int j) throws IOException { PropertyMap map = cl.getProperties(); if (defaults != null && j < defaults.length && defaults[j] != null) { map.put(PropertyMap.DEFAULT_VALUE_PROP, DataType.TEXT, defaults[j]); } if (required != null && j < required.length && required[j] != null && !cl.isAutoNumber()) { map.put(PropertyMap.REQUIRED_PROP, DataType.BOOLEAN, required[j]); } map.save(); }
PreparedStatement ps = null; for (Column cl : _table.getColumns()) { if (cl.isAutoNumber()) { UcanaccessConnection conn = UcanaccessConnection.getCtxConnection(); Connection connHsqldb = conn.getHSQLDBConnection();
private boolean isPrimaryColumn(String tableName, com.healthmarketscience.jackcess.Column originalColumn) throws IOException { for (Index index : jackcessDatabase.getTable(tableName).getIndexes()) { if (index.isPrimaryKey()) { for (Index.Column indexColumn : index.getColumns()) { if (indexColumn.getName().equals(originalColumn.getName())) { return true; } } } } boolean hasPrimaryKey = false; for (Index index : jackcessDatabase.getTable(tableName).getIndexes()) { if (index.isPrimaryKey()) { hasPrimaryKey = true; } } return originalColumn.isAutoNumber() && !hasPrimaryKey; }
String cn = SQLConverter.preEscapingIdentifier(cl.getName()); String ctype = cl.getType().name(); if (cl.isAutoNumber()) { ColumnImpl cli = (ColumnImpl) cl; AutoNumberGenerator ang = cli.getAutoNumberGenerator();
private List<Column> readTableColumns(String tableName) throws IOException, SQLException { List<com.healthmarketscience.jackcess.Column> originalColumns = getColumns(tableName); List<Column> columns = new ArrayList<>(originalColumns.size()); for (com.healthmarketscience.jackcess.Column originalColumn : originalColumns) { Column column = new Column(); column.setName(originalColumn.getName()); column.setDataType(readDataType(originalColumn)); column.setLength(column.getDataType().getLength(originalColumn)); column.setPrimary(isPrimaryColumn(tableName, originalColumn)); column.setAutoIncrement(originalColumn.isAutoNumber()); column.setRequired(column.isPrimary() || (Boolean) readColumnProperty(originalColumn, "Required", false)); if (column.getDataType().hasPrecision()) column.setPrecision(precision(originalColumn, (PrecisionDataType) column.getDataType())); columns.add(column); } return columns; }
public void insertRow(Table _table, Object[] _row) throws IOException { try { _table.addRow(newRow); } catch (ConstraintViolationException e) { List<? extends Column> lc = _table.getColumns(); boolean retry = false; for (Column cl : lc) { if (cl.isAutoNumber()) { retry = true; break; } } if (!retry) { throw e; } Database db = _table.getDatabase(); File fl = db.getFile(); DBReferenceSingleton dbsin = DBReferenceSingleton.getInstance(); DBReference ref = dbsin.getReference(fl); ref.reloadDbIO(); this.dbIO = ref.getDbIO(); _table = this.dbIO.getTable(this.tableName); _table.addRow(newRow); } }
/** * Sets all attributes except name from the given Column template (including * all column properties except GUID). */ public ColumnBuilder setFromColumn(Column template) throws IOException { DataType type = template.getType(); setType(type); setLength(template.getLength()); setAutoNumber(template.isAutoNumber()); if(type.getHasScalePrecision()) { setScale(template.getScale()); setPrecision(template.getPrecision()); } setCalculated(template.isCalculated()); setCompressedUnicode(template.isCompressedUnicode()); setHyperlink(template.isHyperlink()); if(template instanceof ColumnImpl) { setTextSortOrder(((ColumnImpl)template).getTextSortOrder()); } PropertyMap colProps = template.getProperties(); for(PropertyMap.Property colProp : colProps) { // copy everything but guid if(!PropertyMap.GUID_PROP.equalsIgnoreCase(colProp.getName())) { setProperty(colProp.getName(), colProp); } } return this; }