欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 02:26:58 责任编辑: Author_N1

 

从一个数据库表里面往另一个数据库表里面导入数据问题
我有一个数据库表 人员信息.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)
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:26:58
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9897/
本文WWW.DOC100.NET DOC100.NET版权所有。