VB中怎样从本地SQLSERVER2000的表中筛选记录追加到网站后台数据库SQLSERVER2000的表中????(在查询分析器中可以完成,但是我想通过VB程序来完成)现状:
假设本地数据库为LZYS,其中一个表为tb_xiaop
网站后台数据库为LZYS,其中一个表为tb_xiaop
实际上两个数据库是一模一样的,只不过是tb_xiaop表的记录条数不一样罢了
追求的结果:
从本地表中筛选符合条件的记录追加到网站后台数据库中。说明:我已经建立了链接服务器sqllnk,是这样建的,请大家看看有没有什么问题:
exec sp_addlinkedserver 'sqllnk','','SQLOLEDB','218.168.154.136'
exec sp_addlinkedsrvlogin 'sqllnk','false',null,'lzys2008','123456' 
还有就是我在查询分析器中执行这样的语句也可以实现预定的功能,但是在VB程序中就不能实现:
insert into sqllnk.lzys.lzys_f.tb_xiaop select * from lzys..tb_xiaop where zonge>500
但是在VB中用
Cnnr.Execute ("insert into sqllnk.lzys.lzys_f.tb_xiaop select * from lzys..tb_xiaop where zonge>500")这样的语句就不行,这条语句该怎么写,请各位兄弟帮帮忙??????急死我啦!!!!!!!!

解决方案 »

  1.   

    在VB中用 ado 建立对两个数据库的连接 ,然后用一个循环,就可以了,问这样的问题应该去vb 版
      

  2.   

    恩,谢谢!我也是建立的两个连接,一个是本地的cnn,另外一个是网站后台cnnr
    但是就是不知道Cnnr.Execute ("insert into sqllnk.lzys.lzys_f.tb_xiaop select * from lzys..tb_xiaop where zonge>500")这条语句该怎么写,是该用Cnnr.Execute 还是Cnn.Execute ,但是两个我都试过了都不行
      

  3.   

    先读再写不行么?有速度要求么?
    set rs = cnn.execute("select........")
    for i = 1 to rs.recordcount
        cnnr.execute("insert into .......")
    next i
      

  4.   

    楼上说的:
    set rs = cnn.execute("select........") 
    for i = 1 to rs.recordcount 
        cnnr.execute("insert into .......") 
    next i
    我用set rs = cnn.execute("select * from tb_xiaop where peizrqbj='" + str(dt1.value) + "'") 
    但是cnnr.execute("insert into .......") 这个我就不知道该怎么写了,麻烦各位给出一下具体代码,谢谢各位啦!!!
      

  5.   

    没试过,不知道这样行不行:set rs1=cnn.execute("select * from tb_xiaop where 条件")
    do while not rs1.eof
     cnnr.execute("insert into tb_xiaop values(" & rs1(0)& ","& rs1(1)& ","& rs1(2)& ",...")")
     rs1.movenext
    loop注意一下引号,对文本或许要加上单引号: '" & rs(n) & "','"&...
    实在不行,最笨的办法就是用
    a=rs1(0)
    b=rs1(1)
    c=rs1(2)
    ...
    然后:
    insert ... select a,b,c,d
      

  6.   

    谢谢,我昨天也是按照这种思路来的,最后还是没有成功,程序运行没有什么错误提示,但是还是没有把记录加进去;
    会不会是前面个记录集里很多字段有空值或NULL值,我再试试看。
      

  7.   

    Cnn.Execute ("insert into sqllnk.lzys.lzys_f.tb_xiaop select * from tb_xiaop where zonge>500")
    用cnn而不用cnnr就可以啦
    cnn是本地连接
    cnnr是远程连接问题已经解决,再次谢谢以上各位啦!!!!!!!!!!!!!!!!!!!!!