找文章 / 找答案
精选问答 更多内容

[填报与传统报表] 填报参数提交脚本

yhdata_guqbuSJt青铜四 显示全部楼层 发表于 2024-6-6 17:27:11 |阅读模式 打印 上一主题 下一主题
1
未解决

var conn = null;
try {
conn = createConnection(SQL, "test/sql 数据库 / 学生表 ");
  /*
通过 SQL 查询创建数据库连接,其中 SQL 表示查询类型, "test/sql 数据库 / 学生表 " 表示查询的路径,也可以通过数据源创建数据库连接,也 conn = createConnection(CONNECTION, "test/ 数据源 /SQLSERVER_ 数据源 ")
*/
var fgrid = getData(" 填报参数 1"); // " 填报参数 1" 表示填报参数组件的名称
var rowsOld = fgrid.rows(ORIGINAL); // 无变化的数据行
var rowsAdded = fgrid.rows(ADDED); // 增加的数据行
var rowsChanged = fgrid.rows(MODIFIED); // 更改数据行
var rowsDeleted = fgrid.rows(DELETED); // 删除数据行
if(rowsAdded != null){
var pstmt = conn.prepareStatement("insert into stu (stuName, stuAge, stuSex) values (?,?,?)");
/*
将数据插入数据库中,其中 stu 是要插入数据库的表名,stuName, stuAge, stuSex 是表 stu 中的列,分别与后面的问号相对应
*/
for(var i = 0; i < rowsAdded.length; i++){
pstmt.setString (1, rowsAdded.stuName);
pstmt.setInt (2, rowsAdded.stuAge);
pstmt.setString (3, rowsAdded.stuSex);
pstmt.executeUpdate();
  }
}
/*
遍历所有行并更新数据库 , stuName, stuAge, stuSex 是填报参数中的列名分别与 values 中的问号相对应, string, int 分别表示对应列的数据类型
*/
if(rowsDeleted != null) {
var pstmt = conn.prepareStatement("delete from stu where stuId=?");
// 删除某一行, stu 是数据库中表的名字, stuId 是表的主键
   for(var i = 0; i < rowsDeleted.length; i++){
pstmt.setInt(1, rowsDeleted.stuId);
pstmt.executeUpdate();
   }
}
/*
遍历所有行并更新数据库 , stuId 是表格 stu 的主键,与 where 条件中的问号对应, int 表示 stuId 的数据类型
*/
if(rowsChanged != null){
var pstmt = conn.prepareStatement("update stu set stuName=?, stuAge=?, stuSex=? where stuId=?");
/*
更新数据库中数据,其中 stu 是要更新数据库的表名, stuName, stuAge, stuSex 是表 stu 中的列, stuId 是表的主键
*/
   for(var i = 0; i < rowsChanged.length; i++) {
pstmt.setString(1, rowsChanged.stuName);
pstmt.setInt(2, rowsChanged.stuAge);
pstmt.setString(3, rowsChanged.stuSex);
pstmt.setInt(4, rowsChanged.stuId);
pstmt.executeUpdate();
  }
}
}
/*
遍历所有行并更新数据库 , stuName, stuAge, stuSex 是填报参数中的列名分别与上面语句中的问号相对应, string, int 分别表示对应列的数据类型
*/
catch(e){
try {
   if(conn != null) {
      conn.rollback();
    }
}
catch(e1) {
}
debug("Update DataBase Error: " + e);
}
finally {
  if(conn != null) {
     try {
             conn.commit();
             fgrid.updateFlag();
             conn.close();
     }
     catch(e2) {
     }
  }
}

上面是官方提供的脚本模板  我这边连接的postgreSql数据库   数据库里面的【时间】字段类型是【无时区的timestamp】类型    那我脚本里为预编译赋值的时候应该写什么类型呢?我之前用的pstmt.setString (1, rowsAdded.datetime);   setString   提交后报错  提示数据库中用的是无时区的timestamp 不是 string类型

回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部