下面要紧跟一句update方法的吧

解决方案 »

  1.   

    --解决的方法是:
    --创建一个与执行存储过程得到的结果集一样的临时表
    create table #t(....)  --表结构与存储过程返回的结果集一样--执行存储过程将结果保存到临时表中
    insert #t exec 存储过程 参数--从临时表中删除记录
    delete from #t where 条件--将临时表做为最终结果
    select * from #t--完成后删除临时表
    drop table #t
      

  2.   

    想在结果集中删除一条记录,而不是删除数据库中的记录--sorry,没看清
      

  3.   

    先定位记录找到关键字,然后用SQL语句删除就可以了。
      

  4.   

    如果我只想删除结果集中的记录,而不想删除临时表中的记录的话,是不是没必要调用ado的Update方法了吧?
      

  5.   

    --解决的方法是:
    --创建一个与执行存储过程得到的结果集一样的临时表
    create table #t(....)  --表结构与存储过程返回的结果集一样--执行存储过程将结果保存到临时表中
    insert #t exec 存储过程 参数--从临时表中删除记录
    delete from #t where 条件--将临时表做为最终结果
    select * from #t--完成后删除临时表
    drop table #t
    --------------------------------
    使用这个方法比较好
      

  6.   

    --解决的方法是:
    --创建一个与执行存储过程得到的结果集一样的临时表
    create table #t(....)  --表结构与存储过程返回的结果集一样--执行存储过程将结果保存到临时表中
    insert #t exec 存储过程 参数--从临时表中删除记录
    delete from #t where 条件--将临时表做为最终结果
    select * from #t--完成后删除临时表
    drop table #t
      

  7.   

    可以把结果集做成VIEW,然后在VIEW上做一个delete的triger。
      

  8.   

    存储过程返回的记录由于CursorLocation和Locktype不支持删除操作,
    有一个变通的方法是这样的,用Recordset.save "本地文件名"
    然后用另外一个Recordset设置CursorLocation为ClientSide LockType=批更新方式,用这个记录打开上面保存的文件 Recordset.open "本地文件名",就可以支持删除等操作了
      

  9.   

    完全可以
    这样,定义一个AdoConnection,keepconnection 为true
    在前台编写一个创建临时表 str=create table #tmp(.....)
    ado->sql->add(str)
    ado->...  -生成临时表
    ado->close
    ado->sql.clear;
    ado.sql.add('select * from #tmp')
    只要这个Adoconnection 为同一连接,就可以拉
      

  10.   

    我在vc里面用调用ado执行sql:select * from #tmp,总是提示找不到临时表的错误?
      

  11.   

    你要先创建临时表,然后才能读他啊
    create table #t(....)  先
      

  12.   

    用批处理方式打开记录集,删除以后,不要调用更新语句
    比如update,batchUpdate 之类的方法.如果调用的话就变成
    真的删除数据库中的记录了,如果不调用的话,只是在内存中进行
    不影响数据库
      

  13.   

    我在delphi下是这样实现的
    procedure tmp_table
    var
    s:string;
    Con:Tadoconnection;
    Ado:Tadoquery;
    begin
    s:='Create table #tmp(Fid Int ,Fname Varchar(30) NULL) '
    s:='Insert into #tmp Select * from table'
    con:=Tadoconnection.Create(self);
    con.Provider:='SQLOLEDB.1';
    con.LoginPrompt:=False;  
    con.KeepConnection:=true;  //一定要
    ado:=Tadoquery.Create(self);
    ado.connnection:=Con;
    ado.sql.clear;
    ado.sql.add(s);
    adoExecSQL;
    ado.Close;
    ado.SQL.Clear;
    ado.SQL.Add('Select * From  #tmp');
    ado.Open;
    end
    这样,就可以进行操作了
      

  14.   

    错了一点
    我在delphi下是这样实现的
    procedure tmp_table
    var
    s:string;
    Con:Tadoconnection;
    Ado:Tadoquery;
    begin
    s:='Create table #tmp(Fid Int ,Fname Varchar(30) NULL)  '
    s:=s+'Insert into #tmp Select * from table'  //这里写错了
    con:=Tadoconnection.Create(self);
    con.Provider:='SQLOLEDB.1';
    con.LoginPrompt:=False;  
    con.KeepConnection:=true;  //一定要
    ado:=Tadoquery.Create(self);
    ado.connnection:=Con;
    ado.sql.clear;
    ado.sql.add(s);
    adoExecSQL;
    ado.Close;
    ado.SQL.Clear;
    ado.SQL.Add('Select * From  #tmp');
    ado.Open;
    end
    这样,就可以进行操作了
      

  15.   

    临时表我已经创建了,
    调用ado执行sql:select * from #tmp,总是提示找不到#tmp对象的错误。
    楼上的方法我也试了,不行啊
      

  16.   

    我现在能够从临时表返回结果集了,在ado里面可以获得数据,也可以移动记录指针,但是还是不能删除记录。
    高手帮忙!着急啊
      

  17.   

    这样在不可以
    --创建一个与执行存储过程得到的结果集一样的临时表
    create table #t(....)  --表结构与存储过程返回的结果集一样--执行存储过程将结果保存到临时表中
    insert #t exec 存储过程 参数--从临时表中删除记录
    delete from #t where 条件--将临时表做为最终结果
    select * from #t--完成后删除临时表
    drop table #t
      

  18.   

    在delphi中可以这样实现:
    var
      asstr: string;
    begin
      with qryQueryInfo do
      begin
        close;
        Connection := FAPSConnection;
        LockType := ltBatchOptimistic;
        with sql do
        begin
          clear;
          asstr := 'select * From Tb '
          Add(asstr);
        end;
        try
          Open;
        finally 
        close;
      end;
    end;把数据取到数据集之后,你可以任意删除里面的数据,前提是删除后运行qryQueryInfo.UpdateBatch()这句。你还可以把你需要的数据先放到一个临时表,以后直接操纵这个表。
      

  19.   

    写错了,修改如下:
    在delphi中可以这样实现:
    var
      asstr: string;
    begin
      with qryQueryInfo do
      begin
        close;
        Connection := FAPSConnection;
        LockType := ltBatchOptimistic;
        with sql do
        begin
          clear;
          asstr := 'select * From Tb '
          Add(asstr);
        end;
        try
          Open;
        finally 
        close;
      end;
    end;把数据取到数据集之后,你可以任意删除里面的数据,前提是删除后不能运行qryQueryInfo.UpdateBatch()这句。你还可以把你需要的数据先放到一个临时表,以后直接操纵这个表。