亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

MS SQL Server 2000數(shù)據(jù)轉(zhuǎn)換服務(wù)部署

添加時間:2013-6-25 14:34:21  添加: 思海網(wǎng)絡(luò) 

MS SQL Server做大數(shù)據(jù)量傳輸?shù)臅r候,我們大多會用到數(shù)據(jù)傳輸服務(wù),F(xiàn)在假設(shè),在開發(fā)環(huán)境下,我們已經(jīng)設(shè)計好了DTS包并且運行良好,接下來我們要做的事情是遷移和部署這個DTS數(shù)據(jù)包。所以,我們需要把設(shè)計環(huán)境下的DTS包保存成結(jié)構(gòu)化的存儲文件,并且這個文件導(dǎo)入到目標環(huán)境下的MS SQL Server中,最后添加作業(yè),讓MS SQL Server Angent在我們預(yù)期的事情執(zhí)行這個DTS包完成數(shù)據(jù)傳輸工作。其中需要重點解決的一個問題是,在目標環(huán)境中,DTS傳輸?shù)脑春湍康牡貢l(fā)生改變,需要對它進行配置。

2. 解決方案

2.1. DTSRun

DTSRun是微軟提供的命令用于執(zhí)行DTS包(包括結(jié)構(gòu)化存儲的、存儲在SQL Server或存儲在Meta Data Services的包)。

dtsrun的用法:
dtsrun
[/?]|
[
    [
        /[~]S server_name[\instance_name]
        { {/[~]U user_name [/[~]P password]} | /E }
    ]
    {    
        {/[~]N package_name }
        | {/[~]G package_guid_string}
        | {/[~]V package_version_guid_string}
    }
    [/[~]M package_password]
    [/[~]F filename]
    [/[~]R repository_database_name]
    [/A global_variable_name:typeid=value]
    [/L log_file_name]
    [/W NT_event_log_completion_status]
    [/Z] [/!X] [/!D] [/!Y] [/!C]
]
具體的用法參看微軟的資料。這里需要重點指出的是,通過“/A global_variable_name:typeid=value”選項,我們可以給DTS包傳遞多個自定義的參數(shù),在DTS包部署的目標環(huán)境下,我們用這個選項告訴DTS包服務(wù)器名稱、用戶名、密碼等數(shù)據(jù)庫連接信息。通過“/!Y”選項可以獲取加密后的DTSRun參數(shù)。



2.2. 重新設(shè)計DTS包

為了處理DTSRun傳入的自定義參數(shù),DTS包需要重新設(shè)計。我們可以增加一個ActiveX 任務(wù),在ActiveX 任務(wù)中通過VB 或者Java 對DTS編程,并且定義流程,把ActiveX 任務(wù)設(shè)置成最開始的一個任務(wù)。由于DTS COM對象線程模式與ActiveX 任務(wù)宿主的不一致,需要將ActiveX 任務(wù)工作流屬性設(shè)置成在主包線程中執(zhí)行,否則可能會出現(xiàn)調(diào)用錯誤。

下面的例子是ActiveX 任務(wù)中的腳本。例子中的DTS包包含名稱為"DBConnection"的數(shù)據(jù)庫連接對象。



'************************************************************************' Visual Basic ActiveX '************************************************************************Function Main() Dim sDBDataSource Dim sDBCatalog Dim sDBUserID Dim sDBPassword Dim bDBUseTrusted Dim sOLAPServer Dim sOLAPCatalog Dim oPackage Dim oConnection Dim oTask Dim oCustomTask ' 獲取DTSRun傳入的自定義參數(shù) sDBDataSource = DTSGlobalVariables("DBDataSource").Value sDBCatalog = DTSGlobalVariables("DBCatalog").Value sDBUserID = DTSGlobalVariables("DBUserID").Value sDBPassword = DTSGlobalVariables("DBPassword").Value bDBUseTrusted = DTSGlobalVariables("DBUseTrusted").Value sOLAPServer = DTSGlobalVariables("OLAPServer").Value sOLAPCatalog = DTSGlobalVariables("OLAPCatalog").Value ' 取得當前DTS包對象的技巧 Set oPackage = DTSGlobalVariables.Parent ' 取得包中的數(shù)據(jù)連接對象 Set oConnection = oPackage.Connections("DBConnection") ' 配置數(shù)據(jù)源對象的數(shù)據(jù)連接信息 If bDBUseTrusted Then oConnection.UseTrustedConnection = bDBUseTrusted Else oConnection.UserID = sDBUserID oConnection.Password = sDBPassword End If oConnection.DataSource = sDBDataSource oConnection.Catalog = sDBCatalog Set oConnection = nothing ' 配置跟多的信息,這里是OLAP分析服務(wù)處理任務(wù) Set oTask = oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate") Set oCustomTask = oTask.CustomTask Set oTask = nothing oCustomTask.Properties("TreeKey").Value = sOLAPServer & "\" _ & sOLAPCatalog & "\CubeFolder\Certificate" Set oCustomTask = nothing ' 返回成功狀態(tài) Main = DTSTaskExecResult_SuccessEnd Function



2.3. 保存為結(jié)構(gòu)化的存儲文件

這個過程相當?shù)暮唵,通過企業(yè)管理器可以完成。另存為的結(jié)構(gòu)化存儲文件就是我們要分發(fā)的DTS包。

2.4. 導(dǎo)入到MS SQL Server

我們需要通過DTS編程來實現(xiàn)這個過程。需要強調(diào)的是,下面這段示例需要在ApartmentState為STA線程中才可以正確的被調(diào)用。

public void Go(){ DTS.Package2Class pkg = new DTS.Package2Class(); DTS.Application app = new DTS.ApplicationClass(); //從SQL SERVER中刪除已經(jīng)存在的同名DTS包 try { pkg.RemoveFromSQLServer( DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, "", "", PkgName ); } catch { } //取得待分發(fā)DTS包(結(jié)構(gòu)化的存儲文件)的包信息,這里假定包中只包含一個版本 DTS.SavedPackageInfos infos = pkg.GetSavedPackageInfos(UNCFile); DTS.SavedPackageInfo info = infos.Item(1); object obj1 = null; object obj2 = null; string sPkgID = info.PackageID; string sVerID = info.VersionID; string sPkgName = info.PackageName; //載入結(jié)構(gòu)化的存儲文件 pkg.LoadFromStorageFile( UNCFile, PkgPwd, sPkgID, sVerID, sPkgName, ref obj1 ); //保存到SQL Server中 pkg.SaveToSQLServerAs( PkgName, DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, PkgOwnerPwd, PkgOperatorPwd, "", ref obj2, false); pkg.UnInitialize(); //檢查是否保存成功 DTS.PackageSQLServer pkgSQLServer = app.GetPackageSQLServer( DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default ); DTS.PackageInfos infs = pkgSQLServer.EnumPackageInfos(PkgName, true, ""); if (infs.EOF) throw new Exception("DTS包導(dǎo)入到數(shù)據(jù)庫失敗。"); DTS.PackageInfo inf = infs.Next(); mPkgID = inf.PackageID; mVerID = inf.VersionID;}

2.5. 添加作業(yè)

添加作業(yè)可以用傳統(tǒng)的方式,用SQL語句可做到,不做詳細說明。MS SQL Server更是提供一系列的存儲過程對作業(yè)進行修改,以達到用戶預(yù)期的效果。

3. 小結(jié)

文章到此已經(jīng)達到我們的目標。總體上說,2.2這步的實現(xiàn)有些困難,在實現(xiàn)過程當中也碰到過很多困難,有一些是在新聞組中得到的解答,其它的步驟查看MSDN都可以得到比較容易的解決。

關(guān)鍵字:SQL Server、數(shù)據(jù)庫、存儲過程

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站