<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-09-16 19:41 konhon 優華 閱讀(749) 評論(0)  編輯  收藏 所屬分類: MS SQL Server
    主站蜘蛛池模板: 久久久亚洲精华液精华液精华液| 亚洲国产成人精品青青草原| 国产精品亚洲精品久久精品| 成年男女免费视频网站| 亚洲国产熟亚洲女视频| 香蕉高清免费永久在线视频 | 十八禁无码免费网站| 亚洲成人激情在线| 精品无码国产污污污免费网站| 久久亚洲日韩精品一区二区三区| 精品无码免费专区毛片| 国产精品高清视亚洲精品| 妞干网手机免费视频| 免费播放国产性色生活片| 亚洲中文字幕无码久久综合网| 三年片在线观看免费西瓜视频 | 亚洲一区二区三区在线观看精品中文 | 99久久免费国产精品热| 国外亚洲成AV人片在线观看| 日韩大片免费观看视频播放 | WWW免费视频在线观看播放| 在线视频免费国产成人| 亚洲va无码专区国产乱码| 国产一精品一av一免费爽爽| 亚洲成A∨人片在线观看不卡| 午夜爽爽爽男女免费观看影院| 亚洲欧洲日产国码在线观看| 日韩高清在线高清免费| 一级人做人a爰免费视频| 亚洲国产精品一区| 最近最好的中文字幕2019免费| 免费无码一区二区| 久久夜色精品国产噜噜亚洲AV| 日本免费一区二区三区最新| 国产视频精品免费| 成人免费午夜在线观看| 久久精品国产亚洲AV未满十八| 相泽亚洲一区中文字幕| 最近免费中文字幕mv电影| 亚洲av日韩综合一区久热| 亚洲色大成网站www永久一区|