วิธีการสร้างงานที่กำหนดเองของบริการการแปลงข้อมูล โดยใช้ Visual .NET c#

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:326909
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
สรุป
บทความนี้อธิบายวิธีการสร้างตัวแปลงข้อมูลบริการ (DTS) งานแบบกำหนดเอง โดยใช้ Microsoft Visual c# .NET

คุณสามารถขยายความสามารถ DTS โดยการสร้างงานที่กำหนดเองโดยใช้ Visual .NET c# หลังจากที่คุณติดตั้ง และการลงทะเบียนงานที่กำหนดเอง จะปรากฏในตัวออกแบบ DTS เหมือนกับการดำเนินการ DTS เริ่มต้น นอกจากนี้ คุณสามารถใช้.NET Framework ทั้งหมดในการสร้างงานที่กำหนดเอง DTS

นอกเหนือจากการขั้นตอนในการสร้าง DTS เป็นงานที่กำหนดเอง บทความนี้ยังรวมถึงข้อมูลต่อไปนี้:
  • ตัวอย่างรหัสที่ใช้สำหรับการกำหนดเองงาน ที่อยู่ในส่วน "สร้าง ลงทะเบียน และติดตั้งงานแบบกำหนดเอง" ในบทความนี้
  • คำอธิบายของคุณลักษณะเพิ่มเติมที่คุณสามารถใช้งาน โดยการใช้งานแบบกำหนดเอง
  • การอ้างอิงไปยังเครื่องมือหลาย ๆ อย่างที่คุณสามารถใช้ในระหว่างกระบวนการพัฒนา (ยกเว้นที่บันทึกไว้หรือ เครื่องมือเหล่านี้รวมอยู่ใน Visual Studio .NET และคุณเรียกใช้แฟ้มเหล่านั้นจากพรอมต์คำสั่งของ Visual Studio .NET)
back to the top

สร้างรันไทม์ Wrapper Callable สำหรับ DTSpkg.dll

ถ้าส่วนประกอบ accesses COM คอมพิวเตอร์ไคลเอนต์ที่ใช้ Microsoft Windows .NET คุณต้องใช้ wrapper ที่ต้องการแก้ไขรหัสที่ไม่มีการจัดการ (ซึ่ง COM ประกอบด้วยส่วนประกอบ) wrapper ชนิดนี้มีการรันไทม์ callable wrapper (RCW) และคุณสร้างแฟ้มเหล่านั้นจากข้อมูลไลบรารีชนิดที่ Dtspkg.dll exposes คุณสามารถใช้เครื่องมือตัวนำเข้าของไลบรารีชนิด (Tlbimp. exe) เพื่อสร้าง RCW:
/keyfile:DTSPkg.snk /out:Microsoft.SQLServer.DTSPkg80.dll "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\dtspkg.dll" tlbimp.exe
กระบวนการ/keyfileพารามิเตอร์สัญญาณ Microsoft.SQLServer.DTSPkg80.dll ด้วยชื่ออย่างแน่นหนาโดยใช้สาธารณะ หรือส่วนตัวคีย์คู่ใน DTSPkg.snk เมื่อต้องการสร้างคู่คีย์ที่มีอยู่ใน DTSPkg.snk ใช้เครื่องมือชื่อแรง (Sn.exe):
DTSPkg.snk sn.exe -k
เนื่องจากที่คุณต้องติดตั้งแบบ RCW ในแอสเซมบลีส่วนกลางแคช (GAC) คุณต้องใช้ชื่อที่เข้มงวดเหมือนกับแอสเซมบลีอื่น ๆ ในการ GAC

back to the top

การติดตั้ง RCW ในแคแอสเซมบลีสากล

ติดตั้งแบบ RCW ใน GAC ที่ โดยใช้แคชของแอสเซมบลีสากล (GACutil.exe) ของเครื่องมือ:
gacutil.exe /i Microsoft.SQLServer.DTSPkg80.dll
หลังจากที่คุณติดตั้งแบบ RCW คุณสามารถเพิ่มเป็นการอ้างอิงถึงโครงการไลบรา Visual Studio .NET c# คลารี

back to the top

เขียนรหัส Plumbing สำหรับงานที่กำหนดเอง

รหัส plumbing หลักจัดการการลงทะเบียนของงานที่กำหนดเอง อย่าให้แอสเซมบลี.NETDllRegisterServerและDllUnregisterServerรายการชี้เหมือนกับคอมโพเนนต์ของ COM ทำ แต่คุณสามารถใช้ได้ComRegisterFunctionAttributeคลาเพื่อทำการลงทะเบียนงานและ unregistration คลาสนี้เป็นส่วนหนึ่งของการSystem.Runtime.InteropServicesnamespace

ขั้นแรก คุณต้องระบุ GUID และตัวบ่งชี้ (ProgID) โดยทางโปรแกรมสำหรับคลางานที่กำหนดเอง คุณสามารถใช้ GUIDgen.exe สร้าง GUID เพิ่มรหัสต่อไปนี้ในบรรทัดก่อนการประกาศของคลางานที่กำหนดเอง:
[Guid("A39847F3-5845-4459-A25E-DE73A8E3CD48"), ComVisible(true)][ProgId("DTS.SimpleTask")]public class SimpleTask : CustomTask{	//implementation of custom task}				
รหัสต่อไปนี้อธิบายการใช้งานของฟังก์ชันการทำการลงทะเบียนงาน แสดงรหัสสำหรับฟังก์ชันทั้งหมดในส่วน "สร้าง การลงทะเบียน และติดตั้งงานแบบกำหนดเอง" ในบทความนี้

[System.Runtime.InteropServices.ComRegisterFunctionAttribute()]static void RegisterServer(Type t){	//code to register custom task }				
ฟังก์ชันการลงทะเบียนเพิ่มคีย์ย่อยต่อไปนี้กับรีจิสทรี:
Categories\ HKEY_CLASSES_ROOT\CLSID\A39847F3-5845-4459-A25E-DE73A8E3CD48\Implemented {10020200-EB1C-11CF-AE6E-00AA004A34D5 }
10020200-EB1C-11CF-AE6E-00AA004A34D5 มี ID ของคลาส (CLSID) ของแพคเกจ DTSวัตถุ คุณต้องทำได้เนื่องจากใช้งานทั้งหมดที่กำหนดเองCustomTaskอินเทอร์เฟซ ฟังก์ชันการลงทะเบียนแล้วเพิ่มคีย์ย่อยต่อไปนี้เพื่อรีจิสทรี:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Enumeration\Tasks\A39847F3-5845-4459-A25E-DE73A8E3CD48
คีย์ย่อยต่อไปนี้แสดงรายการเนื้อหาของ DTS งานแค ซึ่งทำให้งานที่กำหนดเองจะปรากฏในตัวออกแบบ DTS:
Server\80\DTS\Enumeration\Tasks\ SQL HKEY_CURRENT_USER\Software\Microsoft\Microsoft
รหัสต่อไปนี้อธิบายการใช้งานของฟังก์ชัน unregister เพื่อทำการลบงาน ฟังก์ชัน unregister เป็นส่วนหนึ่งของการComUnregisterFunctionAttributeคลาใน.NET Framework ไลบรารีคลาส เมื่อต้องการดูตัวอย่างรหัสที่สมบูรณ์สำหรับฟังก์ชันนี้ ให้ดู "สร้าง ลงทะเบียน และติดตั้งแบบกำหนดเองงาน" ส่วนในบทความนี้:
[System.Runtime.InteropServices.ComUnregisterFunctionAttribute()]static void UnregisterServer(Type t){	//code to unregister custom task }				
ฟังก์ชัน unregistration เอางานจากแคชของงาน DTS โดยการลบคีย์ย่อยต่อไปนี้จากรีจิสทรี:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\DTS\Enumeration\Tasks\A39847F3-5845-4459-A25E-DE73A8E3CD48
และสุดท้าย งานที่กำหนดเองถูกเปิดเผยเป็นคอมโพเนนต์อินเทอร์เฟซสอง COM คุณสามารถสร้างอินเทอร์เฟซการเริ่มต้นจากทุกเขตข้อมูลสาธารณะ ไม่คง คุณสมบัติ และวิธีการเป็นคลาส เพิ่มบรรทัดต่อไปนี้ของรหัสหลังจากการใช้คำชี้แจงในแฟ้มต้นฉบับของงานที่กำหนดเอง:
[assembly:ClassInterface(ClassInterfaceType.AutoDual)]				
รหัส plumbing เสร็จสมบูรณ์ในขณะนี้

back to the top

เพิ่มฟังก์ชันการทำงานกับงานที่กำหนดเอง

ส่วน "สร้าง การลงทะเบียน และติดตั้งงานแบบกำหนดเอง" ของบทความนี้ประกอบด้วยรหัสสำหรับงานการกำหนดเอง DTS อย่างง่าย งานมีคุณสมบัติที่สอง:ชื่อ:และคำอธิบาย:. เมื่อคุณรันงาน ค่าสำหรับการคำอธิบาย:คุณสมบัติปรากฏในกล่องข้อความ ตัวอย่างนี้แสดงรหัสต่ำสุดที่คุณต้องใช้เพื่อให้งานการกำหนดเอง DTS ทำงาน อย่างไรก็ตาม คุณสามารถสร้างอินเทอร์เฟซของผู้ใช้กำหนดเองได้ โดยการใช้งานนั้นCustomTaskUIอินเทอร์เฟซ แต่ที่เกินขอบเขตของบทความนี้ โดยการใช้งานเฉพาะCustomTaskอินเทอร์เฟซ การออกแบบ DTS สร้างอินเทอร์เฟซผู้ใช้เริ่มต้นสำหรับงานที่กำหนดเอง

ใช้งานแบบกำหนดเอง DTS ทั้งหมดCustomTaskอินเทอร์เฟซ กระบวนการCustomTaskอินเทอร์เฟซแปลงค่าของคุณสมบัติที่สอง เรียกเก็บเงินหนึ่ง และวิธีการหนึ่ง:
  • กระบวนการชื่อ:และคำอธิบาย:คุณสมบัติ
  • กระบวนการคุณสมบัติคอลเลกชัน
  • กระบวนการดำเนินการวิธีการ
งานที่กำหนดเองทั้งหมดต้องปฏิบัติตามคุณสมบัติ การคุณสมบัติคอลเลกชัน และดำเนินการวิธีการ

ชื่อคุณสมบัติ:

กระบวนการชื่อ:คุณสมบัติที่ระบุถึงภารกิจในแพคเกจ DTS เมื่อคุณทำงานบนพื้นผิวของตัวออกแบบ DTS การออกแบบ DTS กำหนดชื่อให้งาน สำหรับตัวอย่างแบบกำหนดเองงาน คุณสามารถปรับเปลี่ยนชื่อ:คุณสมบัติ นี่คือสำหรับวัตถุประสงค์ในภาพแสดงเป็น SQL Server เฉพาะแนะนำหนังสือออนไลน์ให้แสดงว่า คุณไม่ถึงนี้ชื่อ:คุณสมบัติให้กับผู้ใช้เนื่องจากที่นี่ disassociates งานจากขั้นตอนนั้น excerpt ที่ต่อไปนี้มาจากหัวข้อ "ข้อมูลพื้นฐานของ DTS แบบกำหนดเองงานเดสก์ท็อป" ใน SQL Server หนังสือออนไลน์:
ขอแนะนำให้ คุณอย่าให้ชื่อ:คุณสมบัติ โดยเฉพาะในโหมดการอ่าน/เขียน ตัวออกแบบ DTS กำหนดชื่อที่ไม่ซ้ำกับงานเมื่อคุณวางไอคอนงานบนแผ่นงานการออกแบบ ถ้าคุณเปลี่ยนค่าของชื่อ:ตัวออกแบบ DTS จะค้นหางานที่ใช้ชื่อเก่า และล้มเหลวเมื่อคุณไม่สามารถค้นหา
เมื่อต้องการแก้ไขนี้ เปลี่ยนแปลงนั้นTaskNameคุณสมบัติของขั้นตอนที่เป็นสมาชิกงานเพื่อให้สะท้อนถึงชื่อใหม่ โดยใช้คุณลักษณะการตัดการเชื่อมต่อการแก้ไขในโปรแกรมออกแบบ DTS

คำอธิบายคุณสมบัติ:

ด้วยการคำอธิบาย:คุณสมบัติ คุณสามารถเพิ่มคำอธิบายที่มีความหมายงาน

ชุดคุณสมบัติ:

กระบวนการคุณสมบัติประกอบด้วยการเรียกเก็บเงินคุณสมบัติวัตถุที่ระบุถึงคุณสมบัติของงานที่กำหนดเอง โดยการตั้งค่านี้เพื่อกลับเป็น null ผู้ให้บริการคุณสมบัติ DTS เริ่มต้นใช้งาน เส้นตารางคุณสมบัติสำหรับงานปรากฏขึ้นในโปรแกรมออกแบบ DTS และจะได้รับข้อความแสดงข้อมูลนั้นจากนั้นคุณสมบัติคอลเลกชัน

วิธีการใช้งาน:

กระบวนการดำเนินการวิธีประกอบด้วยฟังก์ชันการทำงานของงานที่กำหนดเอง ในการคำอธิบาย:ตัวอย่างดำเนินการวิธีแสดงค่าในคำอธิบาย:คุณสมบัติของงานในกล่องข้อความ กระบวนการดำเนินการวิธีมีพารามิเตอร์ทั้งสี่ต่อไปนี้:
  • pPackage: นี่คือการอ้างอิงถึงหลัก DTSPackage2วัตถุ คุณสามารถใช้วัตถุนี้ได้รับการอ้างอิงไปยังวัตถุอื่น ๆ ในแพคเกจ และ การปรับเปลี่ยนคุณสมบัติของตน
  • pPackageEvents: นี่คือการอ้างอิงถึงเหตุการณ์ของคำPackage2วัตถุ คุณสามารถใช้วัตถุนี้ให้ยกเหตุการณ์
  • pPackageLog: นี่คือการอ้างอิงไปยังPackageLogวัตถุที่แสดงแฟ้มบันทึกของแพคเกจ คุณสามารถใช้วัตถุนี้ในการเขียนไปยังล็อกถ้าคุณได้เปิดใช้งานการเข้าสู่ระบบของแพคเกจ DTS
  • pTaskResult: นี้บรรจุผลลัพธ์ของการดำเนินการชุดงาน คุณสามารถดูรหัสที่ส่งคืนสำหรับพารามิเตอร์นี้ในหัวข้อ "DTSTaskExecResult" ใน SQL Server หนังสือออนไลน์
back to the top

สร้าง ลงทะเบียน และติดตั้งงานแบบกำหนดเอง

เนื่องจากที่คุณต้องเพิ่มงานที่กำหนดเอง GAC คุณต้องใช้ชื่อที่รัดกุม เช่นเดียวกับ RCW คุณสามารถสร้างแฟ้มชื่ออย่างแน่นหนา โดยใช้เครื่องมือของชื่อแรง:
CustomTask.snk sn.exe -k
เมื่อต้องการสร้างแอสเซมบลีของงานที่กำหนดเอง มีชื่อที่เข้มงวด แก้ไขบรรทัดต่อไปนี้ในแฟ้ม AssemblyInfo.cs:
[assembly: AssemblyKeyFile("<path to CustomTask.snk>")]				
สร้างงานในขณะนี้ โดยใช้ Visual Studio .NET ผลลัพธ์จะเป็น.NET แอสเซมบลี:
regasm.exe CustomTask.dll
หมายเหตุ:: จำเป็นต้อง โดยการเรียกใช้เครื่องมือการแอสเซมบลีรีจิสทรี (Regasm.exe), ใช้รายการรีจิสทรีเพิ่มเข้าไปที่อนุญาต DTS transparently สร้าง.NET กำหนดเองงานคลา

ขั้นตอนสุดท้ายในการพัฒนาของงานที่กำหนดเองของ DTS คือการ ติดตั้งใน GAC ที่ โดยใช้เครื่องมือการแคชของแอสเซมบลีสากล (GACutil.exe):
gacutil.exe /i CustomTask.dll
เมื่อต้องการใช้งานแบบกำหนดเอง เปิด DTS Designer ในตัวจัดการองค์กรของ SQL Server และจากนั้น ทำงานที่กำหนดเองบนพื้นผิวการออกแบบ ตั้งค่านี้คำอธิบาย:คุณสมบัติ และเรียกใช้จากนั้นในแพคเกจ ผลลัพธ์เป็นกล่องข้อความที่แสดงค่าสำหรับการคำอธิบาย:คุณสมบัติของงาน

ขั้นตอนต่อไปนี้ประกอบด้วยรหัสสำหรับตัวอย่างของงานที่กำหนดเองที่กล่าวถึงในบทความ เมื่อ ต้องสร้าง และเรียกใช้งานที่กำหนดเอง ทำตามขั้นตอนเหล่านี้:
  1. สร้างการ RCW สำหรับ Dtspkg.dll กระบวนการนี้ไม่ได้อธิบายไว้ในส่วน "สร้างแบบรันไทม์ Callable Wrapper สำหรับ Dtspkg.dll" ของบทความนี้
  2. ติดตั้งแบบ RCW ใน GAC กระบวนการนี้ไม่ได้อธิบายไว้ในส่วน "ติดตั้งใน RCW ในในสากลแอสเซมบลีแค" ในบทความนี้
  3. สร้างไลบราแบบใหม่ Visual c# .NET คลารีโครงการ
  4. เพิ่มรหัสต่อไปนี้ไปยังแฟ้มคลาส ใช้ค่า โดยใช้ GUIDgen.exe, GUID และวางในแฟ้มต้นฉบับ:
    using System;using System.Runtime.InteropServices;using Microsoft.SQLServer.DTSPkg80;using Microsoft.Win32;using System.Windows.Forms;[assembly:ClassInterface(ClassInterfaceType.AutoDual)]namespace DTSCustomTask{		[Guid("6D1C10A0-0BF0-4795-91A3-ADF258DCD528"), ComVisible(true)] //GUID is created by using GUIDGEN.EXE	[ProgId("DTS.SimpleCustomTask")]	public class SimpleCustomTask : CustomTask	{		private string name;		private string description;		public SimpleCustomTask()		{			name = "";			description = "SimpleCustomTask description";		}		public void Execute(object pPackage, object pPackageEvents, object pPackageLog, ref Microsoft.SQLServer.DTSPkg80.DTSTaskExecResult pTaskResult) 		{				try 		  { 			  DoExecute(pPackage, pPackageEvents, pPackageLog, ref pTaskResult); 		  } 		  finally 		  { 			  if ( pPackageLog != null && Marshal.IsComObject(pPackageLog) ) 				  Marshal.ReleaseComObject(pPackageLog); 			  if ( pPackageEvents != null && Marshal.IsComObject(pPackageEvents) ) 				  Marshal.ReleaseComObject(pPackageEvents); 		  } 		} 					public void DoExecute(object pPackage, object pPackageEvents, object pPackageLog, ref Microsoft.SQLServer.DTSPkg80.DTSTaskExecResult pTaskResult) 		{ 			//Assume failure at the outset 			pTaskResult = DTSTaskExecResult.DTSTaskExecResult_Failure; 			try 			{					Package2 package = (Package2) pPackage; 				PackageEvents packageEvents = (PackageEvents) pPackageEvents; 				PackageLog packageLog = (PackageLog) pPackageLog; 				MessageBox.Show(description); 			} 				//First catch COM exceptions and then all other exceptions 			catch(System.Runtime.InteropServices.COMException e) 			{ 				Console.WriteLine(e); 			} 			catch(System.Exception e) 			{ 				Console.WriteLine(e); 			} 			//Return success 			pTaskResult = DTSTaskExecResult.DTSTaskExecResult_Success; 		}		public string Description		{			get { return this.description; }			set { this.description = value; }		}		public string Name		{			get { return name; }			set { this.name = value; }		}				public Microsoft.SQLServer.DTSPkg80.Properties Properties		{			get { return null; }		}		[System.Runtime.InteropServices.ComVisible(false)]		override public string ToString()		{			return base.ToString();		}			const string TASK_CACHE = "Software\\Microsoft\\Microsoft SQL Server\\80\\DTS\\Enumeration\\Tasks";		const string CATID_DTSCustomTask = "{10020200-EB1C-11CF-AE6E-00AA004A34D5}";		//Registration function for custom task.		[System.Runtime.InteropServices.ComRegisterFunctionAttribute()]		static void RegisterServer(Type t)		{			try			{								string guid = "{" + t.GUID.ToString() + "}";				guid = guid.ToUpper();				Console.WriteLine("RegisterServer {0}", guid);				RegistryKey root;				RegistryKey rk;				RegistryKey nrk;								// Add COM Category in HKEY_CLASSES_ROOT				root = Registry.ClassesRoot;				rk = root.OpenSubKey("CLSID\\" + guid + "\\Implemented Categories", true);				nrk = rk.CreateSubKey(CATID_DTSCustomTask);				nrk.Close();				rk.Close();				root.Close();								// Add to DTS Cache in HKEY_CURRENT_USER				root = Registry.CurrentUser;				rk = root.OpenSubKey(TASK_CACHE, true);				nrk = rk.CreateSubKey(guid);				nrk.SetValue("", t.FullName);								nrk.Close();				rk.Close();				root.Close();				SimpleCustomTask ct = new SimpleCustomTask();				root = Registry.ClassesRoot;				rk = root.OpenSubKey("CLSID\\" + guid, true);				rk.SetValue("DTSTaskDescription", ct.description);				nrk.Close();				rk.Close();				root.Close();			}			catch(Exception e)			{				System.Console.WriteLine(e.ToString());			}		}		//Unregistration function for custom task		[System.Runtime.InteropServices.ComUnregisterFunctionAttribute()]		static void UnregisterServer(Type t)		{			try			{				string guid = "{" + t.GUID.ToString() + "}";				guid = guid.ToUpper();				Console.WriteLine("UnregisterServer {0}", guid);				RegistryKey root;				RegistryKey rk;				// Delete from DTS Cache in HKEY_CURRENT_USER				root = Registry.CurrentUser;				rk = root.OpenSubKey(TASK_CACHE, true);				rk.DeleteSubKey(guid, false);				rk.Close();				root.Close();				//Delete task related keys from HKEY_CLASSES_ROOT				root = Registry.ClassesRoot;				rk = root.OpenSubKey("CLSID\\" + guid + "\\Implemented Categories", true);				rk.DeleteSubKey(CATID_DTSCustomTask, false);				rk.Close();				root.Close();											root = Registry.ClassesRoot;				rk = root.OpenSubKey("CLSID\\" + guid, true);				rk.DeleteValue("DTSTaskDescription");				rk.Close();				root.Close();				root = Registry.ClassesRoot;				rk = root.OpenSubKey("CLSID\\" + guid, true);				rk.DeleteSubKey(guid, false);				rk.Close();				root.Close();						}			catch(Exception e)			{				System.Console.WriteLine(e.ToString());			}		}		}}					
  5. เพิ่มการอ้างอิงถึง RCW ที่คุณสร้างในขั้นตอนที่ 1 และเพิ่มการอ้างอิงไปแล้วSystem.Windows.Forms.dll.
  6. สร้างงานที่กำหนดเอง ผลลัพธ์มีแอสเซมบลีของ.NET
  7. ลงทะเบียน และติดตั้งแอสเซมบลีของงานที่กำหนดเอง กระบวนการนี้ไม่ได้อธิบายไว้ในส่วน "สร้าง การลงทะเบียน และติดตั้งงานแบบกำหนดเอง" ในบทความนี้
  8. สร้างแพคเกจ DTS ใหม่ โดยใช้ตัวออกแบบ DTS ในตัวจัดการองค์กรของ SQL Server และจากนั้น ทำงานบนพื้นผิวการออกแบบ
  9. เรียกใช้แพคเกจ
back to the top

Additional information:

ลบงานที่กำหนดเอง

เมื่อต้องการลบงานที่กำหนดเอง เอาออกจากการ GAC และใช้เครื่องมือแอสเซมบลีของรีจิสทรีเพื่อลบรายการรีจิสทรีที่เหมาะสม:
gacutil.exe /u CustomTask
/u regasm.exe "CustomTask.dll"
GACutil.exe expects ชื่อของแอสเซมบลี ตามที่ปรากฏในแคชและไม่ชื่อไฟล์ที่แท้จริง การตรวจสอบชื่อนี้ เริ่มการทำงานของ Windows Explorer และจากนั้น ค้นหาโฟลเดอร์ %SystemRoot%\Assembly

back to the top

แพคเกจล็อกสนับสนุน

กระบวนการดำเนินการประกอบด้วยวิธีการpPackageLogพารามิเตอร์ซึ่งเป็นการอ้างอิงไปยังแฟ้มบันทึกของแพคเกจ เมื่อต้องการเขียนไปยังล็อกไฟล์ เรียกPackageLog.WriteTaskRecord()ในการดำเนินการวิธีการ วิธีนี้เขียนข้อความที่กำหนดโดยผู้ใช้ในแฟ้มบันทึกของแพคเกจ และตาราง SQL Server โปรแกรมใน SQL Server องค์กรจัดการ ตรวจสอบให้แน่ใจว่า คุณเปิดใช้งาน DTS ที่เข้าสู่ระบบในคุณสมบัติของแพคเกจ หลังจากที่คุณเปิดใช้งานการเข้าสู่ระบบ ใช้รหัสการตรวจสอบว่า การบันทึกถูกเปิดใช้งานก่อนที่คุณเขียนลงในบันทึกของจริง:
if !(pPackageLog == null){	pPackageLog.WriteTaskRecord(0, "Finished executing custom task.");}				
back to the top

ตัวแปรส่วนกลาง

คุณสามารถใช้การอ้างอิงไปยังPackage2วัตถุในนั้นดำเนินการวิธีการเข้าถึงตัวแปรส่วนกลาง ใช้แบบต่อไปนี้ Visual c# .NET ตัวอย่างรหัสนี้:
string s = (string)package.GlobalVariables.Item("GlobalVariableName").Value;				
back to the top

การเปลี่ยนแปลงคุณสมบัติของงานอื่น

คุณสามารถใช้การอ้างอิงไปยังPackage2วัตถุในนั้นดำเนินการวิธีการเปลี่ยนแปลงคุณสมบัติของงาน DTS อื่น ๆ คำสั่ง Transact SQL ที่ดำเนินการงาน SQL ที่เรียกใช้การตั้งค่ารหัส Visual .NET c# ต่อไปนี้:
Task task = package.Tasks.Item("TaskName");CustomTask cutask = task.CustomTask;cutask.Properties.Item("SQLStatement").Value = "select * from orders";				
back to the top

การเปลี่ยนแปลงคุณสมบัติของงานที่กำหนดเอง โดยการใช้งานมีสคริปต์ ActiveX

เช่นเดียวกับงาน DTS เริ่มต้น คุณสามารถเปลี่ยนคุณสมบัติของงานที่กำหนดเอง โดยการใช้งานสคริปต์ ActiveX ต่อไปนี้ตัวอย่าง Visual Basic สคริปต์แสดงสองวิธีในการเปลี่ยนแปลงนั้นคำอธิบาย:คุณสมบัติของงานที่กำหนดเอง:
Function Main()	set pkg = DTSGlobalVariables.Parent	set tsk = pkg.Tasks("CustomTaskName")	set cus = tsk.CustomTask	'using the Properties collection to change the Description property	tsk.Properties("Description").Value = "Description of custom task"	'directly referencing the property also works	tsk.Description ="Description of custom task"	Main = DTSTaskExecResult_SuccessEnd Function				
back to the top

เหตุการณ์

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการจัดการเหตุการณ์ของแพคเกจ DTS คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
319985วิธีการจัดการเหตุการณ์แพคเกจของบริการการแปลงข้อมูลใน Visual .NET c#
back to the top

เธรดแบบจำลอง

คุณไม่มีการเรียกใช้งานแบบกำหนดเองที่คุณสร้างขึ้น โดยใช้ Visual .NET c# เธรดที่หลัก หากคุณเรียกใช้เป็นแพคเกจที่ประกอบด้วยงานที่กำหนดเอง ด้วยงานแพคเกจที่มีดำเนินการ คุณไม่จำเป็นต้องใช้ inner หรือขั้นตอนของแพคเกจ outer เพื่อเรียกใช้บนเธรดหลัก

back to the top
ข้อมูลอ้างอิง
ตัวอย่างงานที่กำหนดเองที่เขียนขึ้นในเวอร์ชันก่อนหน้า Microsoft Visual Basic และ Microsoft ในการ Visual c ++ แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:back to the top
บริการการแปลงข้อมูล DTS

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 326909 - การตรวจสอบครั้งสุดท้าย: 12/07/2015 12:03:43 - ฉบับแก้ไข: 2.0

Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbhowtomaster kbmt KB326909 KbMtth
คำติชม