使用 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