祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 5542|回复: 0

[其它] 数据从文本文件写入数据库表的捷径

[复制链接]

[其它] 数据从文本文件写入数据库表的捷径

[复制链接]
newease

主题

0

回帖

1万

积分

论坛元老

积分
19020
贡献
在线时间
小时
2009-8-12 09:37:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
许多情况下,文本文件中的数据排列顺序与数据库表中列的顺序
一致,并且其数据类型与数据库表中对应列也一致,要做的就是将该文
件中的内容存入对应数据库表中。例如在点对点通信的情况下,一方
把数据库表中的数据以文本文件格式存储并传送给另一方,另一方要
做的工作就是将收到的数据存入相应的数据库表中。PowerBuilder有
多种方式与文本文件打交道,比如使用ODBC的文本文件驱动器、采用D
DE(动态数据交换)方式、采用OLE方式或使用Cu rsor将文本文件逐行
逐列读取并写入数据库表等。但还有一种更快捷的方法:使用ImportF
ile()函数将文本文件内容直接倒入数据库表中。该函数用法为:
    datawindowname.ImportFile(filename{,startrow{,endrow &
    {,startcolumn{,endcolumn{,dwstartcolumn}}}}})
    ImportFile()函数要求数据窗列的数据类型和列的排列顺序必须
与文本文件中的数据相匹配。
    在存储文本文件时要注意接收数据库对表的格式要求,比如在Syb
ase中,表格的列与列间是采用Tab键区分的,所以如果要用ImportFile
()函数将文件内容写入Sybase表中,就要将相应文本文件的列与列间
加入Tab键——这在文件形成时即可加入。
    下面的代码将文件infor.txt写入数据窗dw-infor,并将与dw-inf
or对应的数据库表更新:
    int impt
    if (FileLength("c:\data\infor.txt") > 0) then
      impt = dw-infor.ImportFile("c:\data\infor.txt")
      if impt > 0 then
      dw-infor.settrans(sqlca);
    update(dw-infor);
    commit;
    if sqlca.sqlcode = -1 then
       messagebox("SQL ERROR",sqlca.sqlerrtext)
    end if
      else
        messagebox("注意","文件infor.txt写入失败!")
      end if
    end if
    此外,ImportFile()函数还支持从文本文件的指定开始行列到结
束行列读取并写入数据;并且支持.dbf(dBase)文件的读写,这给原有
台式数据库数据文件向新的分布式数据库表的转换带来了极大的方便
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-12-23 05:33 , Processed in 0.034406 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表