# 导入win32com模块
import win32com.client
import time
def chuli_tzxx(file_name = r'\\192.111.1.1\QSFiles\DCOM\20230921\szhk_tzxx0921.dbf'):
try:
# 创建COM对象
vfp = win32com.client.Dispatch("VisualFoxPro.Application")
# 打开VFP程序
vfp.Visible = True
# 打开VFP数据库
cmd1 = "USE "+file_name+ " SHARED"
vfp.DoCmd(cmd1)
# 读取VFP数据表中的数据
vfp.DoCmd(r"DROP TABLE #temp")
print(file_name[file_name.rindex('\\'):file_name.rindex('.')])
#print(file_name[:file_name.rindex('\\')])
cmd2 = r"SELECT distinct t.* FROM "+file_name[file_name.rindex('\\')+1:file_name.rindex('.')]+" t INTO TABLE #temp"
vfp.DoCmd(cmd2)
file_name1=file_name[:file_name.rindex('\\')]+file_name[file_name.rindex('\\'):file_name.rindex('.')] +"_new.dbf"
cmd3= r"SELECT * FROM #temp WHERE (fjsm1 not like '00004测试非%' AND zqdm<>'00116') OR (zqdm='00116' AND rq1='20221206') INTO dbf " +file_name1
print(cmd3)
rs = vfp.DoCmd(cmd3)
print(rs)
# 输出数据
#print(rs.Fields("zqdm").Value)
'''
while not rs.EOF:
print(rs.Fields("fjsm1").Value)
rs.MoveNext()
'''
# 修改VFP数据表中的数据
#vfp.DoCmd("UPDATE table SET name = 'NewName' WHERE id = 1")
# 删除VFP数据表中的数据
#vfp.DoCmd("DELETE FROM table WHERE id = 1")
# 关闭VFP数据库
finally:
vfp.DoCmd("CLOSE ALL")
time.sleep(1)
# 关闭VFP程序
vfp.Quit()
chuli_tzxx(r'\\192.111.1.1\QSFiles\DCOM\20230922\szhk_tzxx0922.dbf')
调用VFP处理dbf文件
最新推荐文章于 2024-04-25 11:32:43 发布