<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
    主站蜘蛛池模板: 亚洲精品在线播放视频| 免费无码又爽又刺激聊天APP| 毛片免费vip会员在线看| 亚洲免费精彩视频在线观看| 久久免费视频一区| 亚洲AV无码乱码在线观看牲色| 亚洲色大成网站www久久九| 免费人成网站在线观看10分钟| 亚洲精品在线免费观看视频| 久9热免费精品视频在线观看| 久久久久久久尹人综合网亚洲| 香蕉免费在线视频| 亚洲国产婷婷六月丁香| 中文字幕无码一区二区免费| 亚洲va久久久噜噜噜久久| 日韩免费观看一区| 亚洲精品美女在线观看| 久久精品免费全国观看国产| 亚洲综合无码一区二区痴汉| 永久久久免费浮力影院| 看免费毛片天天看| 亚洲男人在线无码视频| 两个人的视频www免费| 久久精品国产精品亚洲艾| 亚洲电影在线免费观看| 亚洲中文精品久久久久久不卡| 国产成人精品男人免费| 亚洲阿v天堂在线2017免费| 亚洲AV永久无码区成人网站| 在线免费中文字幕| 2020天堂在线亚洲精品专区| 情侣视频精品免费的国产| 91av免费在线视频| 久久亚洲日韩看片无码| 永久免费视频v片www| a成人毛片免费观看| xxx毛茸茸的亚洲| 亚洲国产一区二区视频网站| 久久精品无码专区免费青青| 亚洲国产成人无码AV在线| 亚洲最大AV网站在线观看|