使用 RPGLE 编写 Excel 导入程序

作者:佚名 上传时间:2023-05-26 运行软件:RPGLE 软件版本:IBM i 7.4 版权申诉

本示例展示了如何使用 RPGLE 编写一个在 IBM i (OS/400) 上运行的 Excel 导入程序,可以将 Excel 文件中的数据导入到数据库中。程序使用了 IBM i 的 ODBC/JDBC 驱动程序访问 Excel 文件,并将数据插入到数据库中。程序包括 Excel 文件上传、数据读取、数据转换、数据导入和错误处理等功能。

H Debug(Dsply)
H Option(*SrcStmt:*NoDebugIo)

D Odbc_Connect     PR            10I 0 ExtProc('SQLConnect')
D   hdbc                         *
D   pszDSN                       *
D   cbDSN                        10I 0
D   pszUID                       *
D   cbUID                        10I 0
D   pszPWD                       *
D   cbPWD                        10I 0

D Odbc_ExecDirect  PR            10I 0 ExtProc('SQLExecDirect')
D   hstmt                        *
D   szSqlStr                     *
D   cbSqlStr                     10I 0

D Odbc_Disconnect  PR            10I 0 ExtProc('SQLDisconnect')
D   hdbc                         *

D Odbc_GetDiagRec  PR            10I 0 ExtProc('SQLGetDiagRec')
D   fHandleType                  10I 0 const
D   vHandle                      *
D   RecNumber                    10I 0
D   szSqlState                   *
D   *nativeError                 *
D   szMessageText                *
D   cbMessageText                10I 0
D   cbMessageOmitted             *
D   RetLen                       *

D SqlAllocHandle   PR            10I 0 ExtProc('SQLAllocHandle')
D   HandleType                   10I 0 const
D   InputHandle                  *
D   OutHandle                    *

D SqlFreeHandle    PR            10I 0 ExtProc('SQLFreeHandle')
D   HandleType                   10I 0 const
D   Handle                       *

D SqlNumResultCols PR            10I 0 ExtProc('SQLNumResultCols')
D   hstmt                        *

D SqlRowCount      PR            10I 0 ExtProc('SQLRowCount')
D   hstmt                        *

D SqlData          PR            10I 0 ExtProc('SQLGetData')
D   hstmt                        *
D   icol                         10I 0
D   fCType                       10I 0 const
D   Buffer                       *
D   cbBuffer                     10I 0
D   pcbData                      *

D MoveFields       PR
D                 PI            10I 0
D   hstmt                        *
D   SQLState                    6A
D   MsgText                     500A
D   ColCnt                       10I 0
D   Fields                       

D HR            s               10I 0
D HE            s              512A
D HEC           s             8100A   Varying

 /Free

   // 连接 Excel 文件

   Odbc_Connect(%Addr(HR) : 'DRIVER={Microsoft Excel Driver (*.xls)};DBQ=' + %Trim(FilePath));

   // 执行 SQL 语句

   Odbc_ExecDirect(%Addr(HS) : 'SELECT * FROM ' + SheetName + '$');

   // 获取结果集列数

   ColCount = SqlNumResultCols(HS);

   // 读取数据并插入到数据库中

   Do While SqlFetch(HS) = SQL_SUCCESS;

      // 读取每个字段的值

      For i = 1 To ColCount;

         // 根据字段类型进行转换

         If (%Subst(Fields(i).Type, 1, 4) = 'CHAR') Or
            (%Subst(Fields(i).Type, 1, 3) = 'DEC') Or
            (%Subst(Fields(i).Type, 1, 3) = 'NUM');
            %Subst(Fields(i).Value, 1, %Len(Fields(i).Value)) = %Trim(%Subst(Buffer, 1, pcbData));

         Else;

            // 抛出类型不支持的错误

            ErrMsg = 'Field Type Not Supported : ' + Fields(i).Type;
            Goto ERROR;
         EndIf;
      EndFor;

      // 插入数据到数据库

      Exec Sql;

         Insert Into TableName (Field1, Field2, Field3, ...) Values
                               (:Field1, :Field2, :Field3, ...);

      End-Exec;

   EndDo;

   // 断开连接

   Odbc_Disconnect(HR);

   Return;

 /End-Free

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使用 RPGLE 编写 Excel 导入程序
本示例展示了如何使用 RPGLE 编写一个在 IBM i (OS/400) 上运行的 Excel 导入程序,可以将 Excel 文件中的数据导入到数据库中。程序使用了 IBM i 的 ODBC/JDB
IBM i 7.4
RPGLE
2023-05-26 20:17
导入Excel程序C源代码编写
导入Excel程序(C#源代码编写) 本程序可以导入Excel程序,源代码 把程序放到E盘 QQ223857666勾月
RAR
0B
2019-03-02 04:55
导入Excel程序C#代码编写
导入Excel程序(C#代码编写)本程序可以导入Excel程序把程序放到E盘QQ223857666勾月
RAR
0B
2019-07-14 04:11
导入Excel程序C#源代码编写
导入Excel程序(C#源代码编写)本程序可以导入Excel程序,源代码把程序放到E盘QQ223857666勾月
RAR
0B
2019-07-14 04:10
powerbuilder使用python程序导入excel文件
python编写的excel文件转带制表符的txt文本。在PB中调用,python程序执行结束会自动通知PB应用,收到通知即可使用importfile导入数据库。
RAR
0B
2019-09-08 15:50
EXCEL导入EXCEL导入EXCEL导入EXCEL导入
EXCEL导入
TXT
0B
2019-05-03 08:31
excel导入sql程序
vs.net2005c#写的excel数据导入sql数据表中程序
ZIP
0B
2019-05-15 06:59
使用SpringMVC导入导出excel
SpringMVC导出excel项目,国外网站下载下来有稍微修改,多次测试可用无bug。
ZIP
0B
2019-05-22 04:53
使用poi实现导入excel
导入excel并解析,将excel中的内容保存到库里,使用的是poi,比较简单,纯属个人练习呀呀呀呀
ZIP
0B
2020-06-20 04:29
RPGLE编程基础
本章主要介绍RPGLE语言的基础知识,包括规范表,操作码,编译方法等,通过本章的学习了解并初步掌握RPGLE的基本操作码并应用于简单编程,能编译程序并查看跟踪错误,能使用单步调试源码方法,并能读懂简单
DOC
0B
2019-01-01 18:26