CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

一个表操作比较麻烦点的问题(在线等待)

楼主zjh527()2005-07-02 07:24:46 在 Delphi / 数据库相关 提问

现有2个数据库  
  数据库DB1中的WRK;  
      cid       cname       cdeptID  
    0001       张三         0000001  
    0003       李四         0000004  
      ......  
   
  BM表:  
        cid           cname  
    0000001       材料科  
    .......  
   
  数据库DB2中的    
  DEPT表  
        id         cid           canme  
        1       0000001       材料科  
        2       0000002       财务科  
        3       0000004       行政科  
        .....  
   
  表employee  
    id       cid       cname     departmentID  
    1         0001     张三               1  
    2         0003     李四               3  
   
  我已经将DB1中的BM导入到了DB2中的DEPT,表employee数据怎么导?在程序中用ADO组件怎么控制?  
  在数据库中我知道怎么实现  
   
  insert   into   employee(cid,cname,departmentID)  
  select   a.cid,a.cname,b.id   from   DB1.WRK   a  
  join  
  DB2.DEPT   b  
  on  
  a.cdeptID=b.cnumber  
  问题点数:50、回复次数:4Top

1 楼78hgdong(赤脚)回复于 2005-07-02 08:58:18 得分 20

用存储过程控件ADOSTOREPROC控件,把  
  ...  
  insert   into   employee(cid,cname,departmentID)  
  select   a.cid,a.cname,b.id   from   DB1.WRK   a  
  join  
  DB2.DEPT   b  
  on  
  a.cdeptID=b.cnumber  
  ...  
  写在存储过程里..后调用.  
  Top

2 楼yimibaer(别人笑我看不穿,我笑别人太疯癫)回复于 2005-07-02 09:06:32 得分 15

insert   into   employee(cid,cname,departmentID)  
  select   a.cid,a.cname,b.id=(select   d.Id   from   DB1.dbo.WRK   c,Db2.dbo.Dept   d   where     )    
  b.id=(select   d.Id   from   DB1.dbo.WRK   c,Db2.dbo.Dept   d   where   c.cdeptID=d.cid     )    
  from   DB1.dbo.WRK   a,Db2.dbo.Dept   b  
  Top

3 楼yimibaer(别人笑我看不穿,我笑别人太疯癫)回复于 2005-07-02 09:10:36 得分 15

添加TADOquery   控件  
  with   Adoquery1   do  
      begin  
          close;  
          sql.clear;  
          sql.add('insert   into   employee(cid,cname,departmentID)');  
          sql.add('select   a.cid,a.cname,b.id=(select   d.Id   from   DB1.dbo.WRK   c,Db2.dbo.Dept   d');    
          sql.add('where     )   ');  
          sql.add('b.id=(select   d.Id   from   DB1.dbo.WRK   c,Db2.dbo.Dept   d   wherec.cdeptID=d.cid)');  
          sql.add('from   DB1.dbo.WRK   a,Db2.dbo.Dept   b');  
          execsql;  
      end;  
   
  Top

4 楼zjh527()回复于 2005-07-02 13:04:27 得分 0

我忘说了DB1用的是MSDE,DB2用的是SQLServer这样操作能行吗?Top

相关问题

  • 多表操作问题,在线等待!
  • delphi5.0字符号操作好麻烦?
  • 如何创建和操作一个链表~!----在线等待!----急~!
  • 关于表格的操作!急!!!在线等待...
  • 跪求一个C#操作EXCEL表的问题,在线等待!!
  • 在线等待:想在anywhere 一表中添加非空字段,只能删除重建吗?太麻烦了!
  • 麻烦大家告诉我,我怎么不能在网页中插入表格啊!(在线等待)
  • 麻烦的问题,急!在线等待......
  • 麻烦了,水晶报表
  • 怎样去掉开机操作系统列表中某个操作系统?急!在线等待

关键词

  • 数据库
  • db
  • 控件
  • sql
  • wrk
  • cid
  • cname
  • cdeptid
  • dept
  • dbo

得分解答快速导航

  • 帖主:zjh527
  • 78hgdong
  • yimibaer
  • yimibaer

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo