修复sql执行器未能正确返回错误信息的问题

表数据页面oracle支持直接修改数据
This commit is contained in:
diant
2023-06-19 16:59:51 +08:00
parent 03848fd2d0
commit 4f4b976b5b
8 changed files with 21 additions and 12 deletions

View File

@@ -149,7 +149,10 @@ public class DbSqlExecutorController {
executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,getAllCountSql, paramMap); executeParam = SqlParseUtil.getSingleExecuteParam(executeParam,getAllCountSql, paramMap);
executeCountResult = columnSqlExecutor.execute(executeParam); executeCountResult = columnSqlExecutor.execute(executeParam);
List<List<Object>> data = executeCountResult.getData(); List<List<Object>> data = executeCountResult.getData();
long count = Long.parseLong(data.get(0).get(0)+""); long count = 0;
if(data!=null){
count = Long.parseLong(data.get(0).get(0)+"");
}
//总数据量大于1000进行分页 //总数据量大于1000进行分页
if(count>1000){ if(count>1000){
String pageSql = dbBaseService.getQueryPageSqlBySql(originalSql,pageSize,pageNum); String pageSql = dbBaseService.getQueryPageSqlBySql(originalSql,pageSize,pageNum);

View File

@@ -48,7 +48,7 @@ public class DmServiceImpl extends DbBaseService {
queryColumns = Arrays.stream(queryColumns.split(",")).map(word -> "\"" + word + "\"").collect(Collectors.joining(",")); queryColumns = Arrays.stream(queryColumns.split(",")).map(word -> "\"" + word + "\"").collect(Collectors.joining(","));
} }
StringBuilder sqlSb = new StringBuilder(); StringBuilder sqlSb = new StringBuilder();
sqlSb.append(String.format("select ROWID as zyplayDbRowId,%s from %s.%s", queryColumns, dataViewParam.getDbName(), dataViewParam.getTableName())); sqlSb.append(String.format("select ROWID as ZYPLAYDBROWID,%s from %s.%s", queryColumns, dataViewParam.getDbName(), dataViewParam.getTableName()));
if (StringUtils.isNotBlank(dataViewParam.getCondition())) { if (StringUtils.isNotBlank(dataViewParam.getCondition())) {
sqlSb.append(String.format(" where %s", dataViewParam.getCondition())); sqlSb.append(String.format(" where %s", dataViewParam.getCondition()));
} }

View File

@@ -67,7 +67,7 @@ public class OracleServiceImpl extends DbBaseService {
StringBuilder sqlSbFinal = new StringBuilder(); StringBuilder sqlSbFinal = new StringBuilder();
Integer pageSize = dataViewParam.getPageSize() * dataViewParam.getPageNum(); Integer pageSize = dataViewParam.getPageSize() * dataViewParam.getPageNum();
Integer pageNum = dataViewParam.getPageSize() * (dataViewParam.getPageNum() - 1) + 1; Integer pageNum = dataViewParam.getPageSize() * (dataViewParam.getPageNum() - 1) + 1;
sqlSbFinal.append(String.format("select %s from ( select %s from %s",queryColumns, queryColumns + ",rownum rn", "(" + sqlSb + ") where rownum<=" + pageSize + " ) t2 where t2.rn >=" + pageNum)); sqlSbFinal.append(String.format("select %s ,ZYPLAYDBROWID from ( select %s ,rowidtochar(rowid) as ZYPLAYDBROWID from %s",queryColumns, queryColumns + ",rownum rn", "(" + sqlSb + ") where rownum<=" + pageSize + " ) t2 where t2.rn >=" + pageNum));
return sqlSbFinal.toString(); return sqlSbFinal.toString();
} }

View File

@@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon-db.png"><title>数据库文档管理</title><link href="css/chunk-vendors.be60d3b3.css" rel="preload" as="style"><link href="css/index.9cce5501.css" rel="preload" as="style"><link href="js/chunk-vendors.7871ff07.js" rel="preload" as="script"><link href="js/index.4d0dba47.js" rel="preload" as="script"><link href="css/chunk-vendors.be60d3b3.css" rel="stylesheet"><link href="css/index.9cce5501.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.7871ff07.js"></script><script src="js/index.4d0dba47.js"></script></body></html> <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon-db.png"><title>数据库文档管理</title><link href="css/chunk-vendors.be60d3b3.css" rel="preload" as="style"><link href="css/index.535cd330.css" rel="preload" as="style"><link href="js/chunk-vendors.7871ff07.js" rel="preload" as="script"><link href="js/index.bdeb7df4.js" rel="preload" as="script"><link href="css/chunk-vendors.be60d3b3.css" rel="stylesheet"><link href="css/index.535cd330.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but zyplayer-db-ui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.7871ff07.js"></script><script src="js/index.bdeb7df4.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -467,7 +467,7 @@ export default {
width = (width < 50) ? 50 : width; width = (width < 50) ? 50 : width;
width = (width > 200) ? 200 : width; width = (width > 200) ? 200 : width;
let column = this.columnMap[key] || {}; let column = this.columnMap[key] || {};
if(key==='zyplayDbRowId'){ if(key==='ZYPLAYDBROWID'){
continue; continue;
} }
executeResultCols.push({prop: key, width: width + 50, desc: (column.description || key)}); executeResultCols.push({prop: key, width: width + 50, desc: (column.description || key)});
@@ -508,19 +508,25 @@ export default {
//单元格编辑状态下被关闭时 //单元格编辑状态下被关闭时
editClosed(row){ editClosed(row){
//判断是否发生改变 //判断是否发生改变
if(this.$refs.plxTable[0].isUpdateByRow(row.row)&&row.row.zyplayDbRowId){ if(this.$refs.plxTable[0].isUpdateByRow(row.row)&&row.row.ZYPLAYDBROWID){
this.$refs.plxTable[0].reloadRow(row, null, null) this.$refs.plxTable[0].reloadRow(row.row, null, null)
let col = row.column.title; let col = row.column.title;
let sql = "update \""+this.pageParam.dbName+"\".\""+this.pageParam.tableName+"\" set \""+col+"\" = \""+row.row[col] +"\" where ROWID = "+row.row.zyplayDbRowId; let sql = "update \""+this.pageParam.dbName+"\".\""+this.pageParam.tableName+"\" set \""+col+"\" = \'"+row.row[col] +"\' where ROWID = \'"+row.row.ZYPLAYDBROWID+"\'";
datasourceApi.queryExecuteSql({ datasourceApi.queryExecuteSql({
sourceId: this.pageParam.sourceId, sourceId: this.pageParam.sourceId,
dbName: this.pageParam.dbName, dbName: this.pageParam.dbName,
executeId: this.nowExecutorId, executeId: this.nowExecutorId,
sql: sql, sql: sql,
}).then(response => { }).then(response => {
if(response.data[0].errCode!==0){ if(response.errCode!==200){
this.$message.error(response.data[0].errMsg) this.$message.error(response.errMsg);
return;
} }
if(response.data[0].errCode!==0){
this.$message.error(response.data[0].errMsg);
return;
}
this.$message.success("修改成功");
}) })
} }
}, },