200分求救!怎样在PB中实出,将EXCEL数据表,导入到SQL SERVER 数据库中?

vvyjp 2002-08-19 03:01:59
本人在做的人事管理系统中,因分公司所报数据为EXCEL 表,其中包括保险,工资等等项目,PB的数据管道只能在数据库之间导入导出,能不能在SQL SERVER中通过存储过程,生成一个编绎过的文件,通过EXCETUE SP_******,将EXCEL表,保存到SQLSERVER 数据库中;或通过本地包,用SQL SERVER 数据转换服务生成本地包*.DTS 文件,然后用DTSRUN /S SERVER /U USER /P PASSWORD /N *.DTS 导入到SQL SERVER 数据库中。
...全文
366 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyhyan 2002-08-22
  • 打赏
  • 举报
回复
GZ
vvyjp 2002-08-22
  • 打赏
  • 举报
回复
sqlca.dbms="odbc"
sqlca.autocommit=false
sqlca.database="xlss"
应用程序OPEN


sqlca.logid="dba"
sqlca.logpass="sql"
sqlca.servername="127.0.0.1"
sqlca.dbparm="connectstring='dsn=xlss;uid=dba;pwd=sql"
connect using sqlca;
if sqlca.sqlcode<>0 then
messagebox("源数据库连接错误",sqlca.sqlerrtext)
return
end if
open(w_test)



itr_source =create transaction
itr_source.dbms="odbc"
itr_source.database="xlss"
itr_source.autocommit=false
itr_source.logid="dba"
itr_source.logpass="sql"
itr_source.servername="127.0.0.1"
itr_source.dbparm="connectstring='dsn=xlss"
connect using itr_source;
if itr_source.sqlcode<>0 then
messagebox("源数据库连接错误",itr_source.sqlerrtext)
return
end if
itr_dest = create transaction
itr_dest.dbms="mss microsoft sqlserver 6.x"
itr_dest.database="vvgroup2"
itr_dest.logid="sa"
itr_dest.logpass="happysky"
itr_dest.servername="192.168.0.1"
itr_dest.dbparm="connectstring='dsn=vvgroup2"
connect using itr_dest;
if itr_dest.sqlcode<>0 then
messagebox("目的数据库连接错误",itr_dest.sqlerrtext)
return
end if
Eric2000 2002-08-22
  • 打赏
  • 举报
回复
1.通过ODBC连接;
2.去掉密码;
3.上面的"excel"是数据源的名称。
Eric2000 2002-08-22
  • 打赏
  • 举报
回复
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=Excel;UID=;PWD='"
vvyjp 2002-08-22
  • 打赏
  • 举报
回复
在线等待回帖
vvyjp 2002-08-22
  • 打赏
  • 举报
回复
出错信息为密码错误
因为EXCEL 表本身无密码
是不是要用到
水煮蛙 2002-08-22
  • 打赏
  • 举报
回复
关注……
vvyjp 2002-08-22
  • 打赏
  • 举报
回复
把EXCEL 表当成一个数据库时 , 总是出错 下面是上面问题的所用方法的连接EXCEL数据源源程序:
sqlca.dbms="mss microsoft excel (*.xls) 4.x"
sqlca.database="xlss"
sqlca.logid="dba"
sqlca.logpass="sql"
sqlca.servername="127.0.0.1"
sqlca.dbparm="connectstring='dsn=xlss"
connect using sqlca;
if sqlca.sqlcode<>0 then
messagebox("源数据库连接错误",sqlca.sqlerrtext)
return
end if
open(w_test)
ouyi2002 2002-08-20
  • 打赏
  • 举报
回复
如果IMPORTFILE()不行,你可以用DDE技术,DDE提供了一套可以读写EXCEL数据的函数,详见PB的帮助文件.
WorldMobile 2002-08-20
  • 打赏
  • 举报
回复
用COM或者DDE都是可以做的,也不是太麻烦,但必须计算机中要装excel程序,并且在导入时要打开这些文件,不太好

建议你是用odbc吧,把excel当成一个数据库,配置一下数据源,在pb中建两个事务,一个连sqlserver, 一个连excel,即可,操作方便
ouyi2002 2002-08-20
  • 打赏
  • 举报
回复
忘记了,还有SetRotme()可以读取EXCEL的值.
ouyi2002 2002-08-20
  • 打赏
  • 举报
回复
IMPORTFILE()不行的,它不能直接读入EXCEL的数据.我都试过了.用DDE比较好一点。它是以EXCEL中的单元格作单位的,用DDE可以向任意单元格写入写出数据。

相关的函数有:

(1)首先用RUN()加文件名参数打开EXCEL并加载要修改的文件
(2)然后用DDE指令中的OpenCheenl()与EXCEL作DDE链接
(3)用DDE指令中的SetRotme()向EXCEL写值
(4)用DDE指令中的EXC****()控制EXCEL保存与关闭
(5)用DDE指令中的CloseCheenl()断开与EXCEL的链接

对于这几个函数的说明,详见PB的帮助文件。

  一定可以成功的,我做过这样的程度好多了,如有不明白之处,请继续发贴。
balloonman2002 2002-08-19
  • 打赏
  • 举报
回复
详见PB帮助:IMPORTFILE(),:)
balloonman2002 2002-08-19
  • 打赏
  • 举报
回复
1、DW的IMPORTFILE()导进来EXCEL文件;
2、将数据UPDATE到数据库当中;
3、结束,:)
TianChong 2002-08-19
  • 打赏
  • 举报
回复
在PB里通过importfile()将EXCEL的数据IMPORT到DW中,直接DW_1.UPDATE()

string null_str

SetNull(null_str)

dw_1.ImportFile(null_str)//这时会打开一个对话框让你选择文件.
//如果不要选择文件,要自动完成,则:dw_1.ImportFile("path\filename")
这种方法好像只对文本文件有效,如果是这样的话,你可以先将EXCEL文件SAVE AS *.TXT文件.或者用DDE让PB动态获取EXCEL的数据...
取得数据后,dw_1.update()

//OK.
wiler 2002-08-19
  • 打赏
  • 举报
回复
PB的数据窗口不是可以导入EXCEL格式的数据吗
xingxing 2002-08-19
  • 打赏
  • 举报
回复
用odbc

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧