rt vc6.0开发的程序,  执行一个存储过程插入大量数据 ,
需要知道存储过程正确执行后进行下一步操作。
怎么知道谢

解决方案 »

  1.   

    1.可以在过程中加入PRINT 显示执行的步骤。
    2.可以通过事件探查器来跟踪。
      

  2.   

    那vc要怎么检测 它print出来的值呢?
      

  3.   

    --> 生成测试数据表: [a]
    IF OBJECT_ID('[a]') IS NOT NULL
    DROP TABLE [a]
    GO
    CREATE TABLE [a] ([aID] [nvarchar](10) PRIMARY KEY,[shuxing_a] [nvarchar](10))
    INSERT INTO [a]
    SELECT '01','aa' UNION ALL
    SELECT '02','bb' UNION ALL
    SELECT '03','cc'--> 生成测试数据表: [b]
    IF OBJECT_ID('[b]') IS NOT NULL
    DROP TABLE [b]
    GO
    CREATE TABLE [b] ([bID] [int] PRIMARY KEY,[shuxing_b] [nvarchar](10))
    INSERT INTO [b]
    SELECT '10','dd' UNION ALL
    SELECT '20','ee' UNION ALL
    SELECT '30','ff'--> 生成测试数据表: [a_b]
    IF OBJECT_ID('[a_b]') IS NOT NULL
    DROP TABLE [a_b]
    GO
    CREATE TABLE [a_b] ([aID] [nvarchar](10) REFERENCES a(aID),[bID] [int] REFERENCES b(bID))
    INSERT INTO [a_b]
    SELECT '01','10' UNION ALL
    SELECT '02','20' UNION ALL
    SELECT '02','30'--SELECT * FROM [a]
    --SELECT * FROM [b]
    --SELECT * FROM [a_b]-->SQL查询如下:
    IF OBJECT_ID('p_delete') IS NOT NULL
    DROP PROC p_delete
    GO
    CREATE PROC p_delete
    @shuxing_a VARCHAR(100)
    AS
    SELECT c.* INTO #a_b
    FROM a,  b, a_b c
    WHERE  b.bID = c.bID 
    AND a.aID=c.aID
    AND a.[shuxing_a]=@shuxing_a
    PRINT '第一步操作完毕'

    DELETE c
    FROM a,  b, a_b c
    WHERE  b.bID = c.bID 
    AND a.aID=c.aID
    AND a.[shuxing_a]=@shuxing_a
    PRINT '第二步操作完毕'DELETE b
    FROM a,  b, #a_b c
    WHERE  b.bID = c.bID 
    AND a.aID=c.aID
    AND a.[shuxing_a]=@shuxing_a
    PRINT '最后一步操作完毕'
    GOEXEC p_delete 'bb'SELECT * FROM [b]
    SELECT * FROM [a_b]
    /*
    (0 行受影响)
    第一步操作完毕(0 行受影响)
    第二步操作完毕(0 行受影响)
    最后一步操作完毕
    bID         shuxing_b
    ----------- ----------
    10          dd(1 行受影响)aID        bID
    ---------- -----------
    01         10(1 行受影响)*/VC不熟,你看个例子,在查询分析中执行的。
      

  4.   

    存储过程会有返回值的
    你在c++中,就可以得到这个返回值有return参数,也有output参数,都可以
      

  5.   

    学知网是个有5000G学习资料的下载网站,注册后可免费下载以下资料:
    [目录]课程大全|理学|电子信息科学类|电子|未整理|Book&article|有用的东东|c6xevm|Update of EVM Support SW Rel 1.30a|Dsp|Include
    [地址]http://www.stuknow.com/downlist/10004/255865f5d6bffadef448864393ec9a72.htm?popid=clean_liu
      

  6.   

    在每一个插入或修改执行后加
    if @@error<>0
    BEGIN
    ROLLBACK TRANSACTION
    raiserror('你能看懂的提示信息!',16,1)
    return 0;
    END
      

  7.   

    最好还是用profiler跟踪。,跟踪事件类别下的,SP:stmatcompleted事件类。在存储过程内部语句完成时显示