[Editor] Add support updating data from Query Result view
This commit is contained in:
@@ -31,6 +31,24 @@ class DataRecord(
|
||||
statement
|
||||
}
|
||||
|
||||
Operation.UPDATE -> {
|
||||
val fieldsNumber = fields.size
|
||||
val pk = schema.columns.filtered { it.primary }
|
||||
val filterClause = pk.joinToString(" AND ") { "`${it.name}` = ?" }
|
||||
val parametersClause = fields.map { (column, _) -> "`$column` = ?" }.joinToString(", ")
|
||||
val sql = "UPDATE `${schema.name}` SET $parametersClause WHERE $filterClause"
|
||||
val statement = connection.prepareStatement(sql)
|
||||
fields.values.forEachIndexed { index, field -> statement.setObject(index + 1, field.value) }
|
||||
pk.forEachIndexed { index, column ->
|
||||
statement.setObject(
|
||||
index + 1 + fieldsNumber,
|
||||
fields[column.name]!!.value
|
||||
)
|
||||
}
|
||||
|
||||
statement
|
||||
}
|
||||
|
||||
Operation.DELETE -> {
|
||||
val pk = schema.columns.filtered { it.primary }
|
||||
val filterClause = pk.joinToString(" AND ") { "`${it.name}` = ?" }
|
||||
|
||||
Reference in New Issue
Block a user