首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

从一个数据库表里面往另一个数据库表里面导入数据有关问题

2013-11-21 
从一个数据库表里面往另一个数据库表里面导入数据问题我有一个数据库表 人员信息.dbf,另外有一个数据库表

从一个数据库表里面往另一个数据库表里面导入数据问题
我有一个数据库表 人员信息.dbf,另外有一个数据库表 报送.dbf,两个表的结构完全一样。报送.dbf数据库表里面有一个字段 bs,其中bs有1、2、3三种,其中1代表新增,2代表减少,3代表信息变更。我想实现的功能是将 报送.dbf里面的所有bs等于1的记录添加到 人员信息.dbf里,将 报送.dbf里面的所有bs等于2的记录从 人员信息.dbf里删除,将 报送.dbf里面的所有bs等于3的记录跟新 人员信息.dbf里的相应记录。记录之间通过字段“身份证号”识别。
我写的代码如下,但是没有实现我的功能,请高手指点:

_dwmc=thisform.combo1.value
 _bdy=thisform.text1.value
 _FILE = GETFILE('dbf')
 IF TRIM(_FILE) == ''
    CLOSE ALL
    RETURN 
 ENDIF 
 RE =  ;
      MESSAGEBOX('从' + TRIM(_FILE) + '引入已处理的新增库,是否进行???',292,'数据引入信息窗口')
 IF RE = 6
    sele 4
    use &_file
    COPY  TO ttemp.dbf
    use
    sele 3
    use ttemp
    _bdy1=bdy
    use
    if _bdy1=_bdy
    
     sele 3
     set filt to bs=2 or bs=3
       do while !eof()
       _xm=姓名
       _sfzh=身份证号
       sele 2
       locate all for 姓名=_xm and 身份证号=_sfzh
       if found()
       dele
       endif
       skip
       enddo
       set filt to 
       sele 4
       use
       sele 3
       use
       sele 2
       pack 
     APPEND FROM ttemp for bdy=_bdy.and.bs=1
     APPEND FROM ttemp for bdy=_bdy.and.bs=3
       RE = MESSAGEBOX('*** 数据已引入 ***',64,'信息窗口')
    dele file ttemp.dbf
    sele 1
    use 单位信息
    thisform.release

     else
    MESSAGEBOX('所选库中数据与要引入的月份不一致,请核实!',64,'信息窗口')
    sele 1
      thisform.release
    endif
    else
    return   
   ENDIF 

  

[解决办法]

引用:
我现在用的是VFP6.0,用不了语句怎么办?

*-- VFP6.0 用如下代码
Delete From 人员信息 Where 身份证号 In (Select 身份证号 From 报送 Where 报送.bs=2 Or 报送.bs=3)
Pack In 人员信息
Select 人员信息
Append From 报送 For bs=1 Or bs=3

[解决办法]
Delete From 人员信息 Where 身份证号+单位名称 In (Select 身份证号+单位名称 From 报送 Where 报送.bs=2 Or 报送.bs=3)

热点排行