注册 登录
编程论坛 VFP论坛

VFP中遇到dbf包含备注型字段,导入导出时如何一次性操作,好像默认不处理备注型字段

shschy 发布于 2023-07-07 12:49, 736 次点击
请问VFP中遇到dbf包含备注型字段,导入导出时如何一次性操作,好像默认不处理备注型字段。
我现在的处理方法是
1)导入前先建立临时表,将备注型字段改为字符型字段,长度长点,append from *.csv
    然后再从临时表中导入到含备注型字段的表中
2)导出时利用left()函数将备注型字段转换为字符型字段

请问还有其它简单处理方法吗?
4 回复
#2
吹水佬2023-07-07 13:10
备注型改为字符型,有可能数据丢失
#3
shschy2023-07-07 15:08
谢谢提醒,如果没有一句代码可以执行完成的,就先用中转文件来操作。
#4
igaoyuan2023-07-08 17:25
我是这样操作的,设两个命令按钮,分别为“导入”“导出”
导入
程序代码:
filename=PUTFILE('导出文件名称',alias()+'_','dbf')

 IF !EMPTY(ALLTRIM(FILTER()))
   COPY TO (filename) FOR .t.

 ELSE
   COPY TO (filename) record RECNO()

 ENDIF  


导出
程序代码:
   root=LOCFILE('','dbf','数据库文件')
   root='"'+root+'"'
   IF FILE(&root) .and. atc(alias(),&root)>0        &&判断文件名是否相同
      APPEND FROM &root
      _SCREEN.ACTIVEFORM.refresh
    ELSE
        =MESSAGEBOX([导入文件名与数据库名称不符],0+48,[导入错误!])
   ENDIF
#5
shizi02023-07-12 10:48
导入比较简单:
将xls转换成为CSV,直接Append From (CSVFile) type CSV

导出:
1、M字段先用int字段临时占位
字段列表=连接遍历的字段名,若遇到M型,将其替换成【0 as 临时字段,】
Select (字段列表) From 原表 Into Cursor Grd2xls_tmp
字段列表=strtran(字段列表,‘0 as ','')
copy to (xls文件) Fields (字段列表) Type Xl5
2、Excel.application修改备注字段内容
遍历原表字段(列号),若遇到M型,scan,逐条记录写入备注字段内容:oSheet.Cells(行号,列号).VALUE=备注字段内容

1