<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    konhon

    忘掉過去,展望未來。找回自我,超越自我。
    逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因為某個理由而傷心難過, 但我卻能找個理由讓自己快樂.

    Google

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks

    This stored procedure can be used to insert the result set of the
    particular select statement into Excel file (c:\ImportToExcel.xls,
    by default).
    You can pass the server name, user name, user password, the select
    statement to execute, and the file name to store the results set,
    as in the example below:

    EXEC ExportToExcel @server = '.',
                       @uname = 'sa',
                       @QueryText = 'SELECT au_fname FROM pubs..authors',
                       @filename = 'c:\ImportToExcel.xls'

    /*
    Version: SQL Server 7.0/2000
    Created by: Alexander Chigrik
    - all about MS SQL
    (SQL Server Articles, FAQ, Scripts, Tips and Test Exams).

    This stored procedure can be used to insert the result set of the
    particular select statement into Excel file (c:\ImportToExcel.xls,
    by default).
    You can pass the server name, user name, user password, the select
    statement to execute, and the file name to store the results set,
    as in the example below:

    EXEC ExportToExcel @server = '.',
                       @uname = 'sa',
                       @QueryText = 'SELECT au_fname FROM pubs..authors',
                       @filename = 'c:\ImportToExcel.xls'
    */

    IF OBJECT_ID('ExportToExcel') IS NOT NULL DROP PROC ExportToExcel
    GO

    CREATE PROCEDURE ExportToExcel (
      @server sysname = null,
      @uname sysname = null,
      @pwd sysname = null,
      @QueryText varchar(200) = null,
      @filename varchar(200) = 'c:\ImportToExcel.xls'
    )
    AS
    DECLARE @SQLServer int,
            @QueryResults int,
            @CurrentResultSet int,
            @object int,
            @WorkBooks int,
            @WorkBook int,
            @Range int,
            @hr int,
            @Columns int,
            @Rows int,
            @indColumn int,
            @indRow int,
            @off_Column int,
            @off_Row int,
            @code_str varchar(100),
            @result_str varchar(255)

    IF @QueryText IS NULL 
      BEGIN
        PRINT 'Set the query string'
        RETURN
      END

    -- Sets the server to the local server
    IF @server IS NULL SELECT @server = @@servername

    -- Sets the username to the current user name
    IF @uname IS NULL SELECT @uname = SYSTEM_USER

    SET NOCOUNT ON

    EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @SQLServer OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error create SQLDMO.SQLServer'
        RETURN
    END

    --  Connect to the SQL Server
    IF @pwd IS NULL
      BEGIN
        EXEC @hr = sp_OAMethod @SQLServer, 'Connect', null, @server, @uname
        IF @hr <> 0
           BEGIN
             PRINT 'error Connect'
             RETURN
           END
      END
    ELSE
      BEGIN
        EXEC @hr = sp_OAMethod @SQLServer, 'Connect', null, @server, @uname, @pwd
        IF @hr <> 0
          BEGIN
            PRINT 'error Connect'
            RETURN
          END
      END

    SELECT @result_str = 'ExecuteWithResults("' + @QueryText + '")'
    EXEC @hr = sp_OAMethod @SQLServer, @result_str, @QueryResults OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error with method ExecuteWithResults'
        RETURN
    END

    EXEC @hr = sp_OAMethod @QueryResults, 'CurrentResultSet', @CurrentResultSet OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error get CurrentResultSet'
        RETURN
    END

    EXEC @hr = sp_OAMethod @QueryResults, 'Columns', @Columns OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error get Columns'
        RETURN
    END

    EXEC @hr = sp_OAMethod @QueryResults, 'Rows', @Rows OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error get Rows'
        RETURN
    END

    EXEC @hr = sp_OACreate 'Excel.Application', @object OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error create Excel.Application'
        RETURN
    END

    EXEC @hr = sp_OAGetProperty @object, 'WorkBooks', @WorkBooks OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error create WorkBooks'
        RETURN
    END

    EXEC @hr = sp_OAGetProperty @WorkBooks, 'Add', @WorkBook OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error with method Add'
        RETURN
    END

    EXEC @hr = sp_OAGetProperty @object, 'Range("A1")', @Range OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error create Range'
        RETURN
    END

    SELECT @indRow = 1
    SELECT @off_Row = 0
    SELECT @off_Column = 1

    WHILE (@indRow <= @Rows)
    BEGIN
    SELECT @indColumn = 1

    WHILE (@indColumn <= @Columns)
    BEGIN

    EXEC @hr = sp_OAMethod @QueryResults, 'GetColumnString', @result_str OUT, @indRow, @indColumn
    IF @hr <> 0
    BEGIN
        PRINT 'error get GetColumnString'
        RETURN
    END

    EXEC @hr = sp_OASetProperty @Range, 'value', @result_str
    IF @hr <> 0
    BEGIN
        PRINT 'error set value'
        RETURN
    END

    EXEC @hr = sp_OAGetProperty @Range, 'Offset', @Range OUT, @off_Row, @off_Column
    IF @hr <> 0
    BEGIN
        PRINT 'error get Offset'
        RETURN
    END

    SELECT @indColumn = @indColumn + 1

    END

    SELECT @indRow = @indRow + 1
    SELECT @code_str = 'Range("A' + LTRIM(str(@indRow)) + '")'
    EXEC @hr = sp_OAGetProperty @object, @code_str, @Range OUT
    IF @hr <> 0
    BEGIN
        PRINT 'error create Range'
        RETURN
    END

    END

    SELECT @result_str = 'exec master..xp_cmdshell ''del ' + @filename + ''', no_output'
    EXEC(@result_str)
    SELECT @result_str = 'SaveAs("' + @filename + '")'
    EXEC @hr = sp_OAMethod @WorkBook, @result_str
    IF @hr <> 0
    BEGIN
        PRINT 'error with method SaveAs'
        RETURN
    END

    EXEC @hr = sp_OAMethod @WorkBook, 'Close'
    IF @hr <> 0
    BEGIN
        PRINT 'error with method Close'
        RETURN
    END

    EXEC @hr = sp_OADestroy @object
    IF @hr <> 0
    BEGIN
        PRINT 'error destroy Excel.Application'
        RETURN
    END

    EXEC @hr = sp_OADestroy @SQLServer
    IF @hr <> 0
    BEGIN
        PRINT 'error destroy SQLDMO.SQLServer'
        RETURN
    END
    GO

    posted on 2005-10-17 02:43 konhon 優華 閱讀(429) 評論(0)  編輯  收藏 所屬分類: MS SQL Server
    主站蜘蛛池模板: 久视频精品免费观看99| 国产午夜无码精品免费看| 欧美好看的免费电影在线观看| 亚洲国产a∨无码中文777| 久草免费福利在线| 亚洲色成人中文字幕网站| 国产精品免费久久久久电影网| 亚洲国产电影av在线网址| 久久久久国色AV免费观看| 亚洲日韩精品一区二区三区无码 | 亚洲成人在线免费观看| 久久精品国产精品亚洲毛片| 99视频免费观看| 亚洲国产成人久久三区| 日韩精品无码人妻免费视频| 美女视频黄a视频全免费网站一区| 亚洲国产综合久久天堂| 日本在线免费观看| 亚洲国产人成在线观看| 免费无码黄网站在线观看| 特级毛片aaaa免费观看| 亚洲av午夜福利精品一区人妖| 亚欧在线精品免费观看一区| 国产精品亚洲综合久久| 男人的天堂亚洲一区二区三区| 亚洲a∨国产av综合av下载| 亚洲福利精品电影在线观看| 男女拍拍拍免费视频网站| 久久精品国产亚洲av麻豆色欲| 最近中文字幕免费mv视频7| 九九视频高清视频免费观看| 亚洲一区二区三区首页| 大香人蕉免费视频75| 国产99精品一区二区三区免费| 亚洲AV无码一区东京热| 午夜无遮挡羞羞漫画免费| 国产裸体美女永久免费无遮挡| 亚洲国产成人综合| 久久久久亚洲爆乳少妇无| 69天堂人成无码麻豆免费视频| 最好2018中文免费视频|