Using Composition To Create New Specialised Components From Multiple Sub-components?
Jun 30, 2006
Hi,
In another thread Jamie Thomson very informatively said "The components in SSIS
are deliberately atomic (i.e. they do something very specific) so that
its easy to put them together to build something greater than the sum
of the parts". Which does make a lot of sense. However, I've been finding that I end up having to create exactly the same "pattern" of combined transform components again and again in order to solve the same problem but in different dataflows (or even within the same dataflow). Cut-and-paste-tastic! In order to obtain real re-use, it seems to me like SSIS is crying out for an easy way to create new components by using composition - i.e. the ability to take commonly-used combinations of existing components and create new "super" components (without having to write Custom Transform Components in C#/VB.Net and handle everything in code).
Does anyone know if this sort of functionality is likely to make it into SSIS in the forseeable future?
Everything I've read says that custom data flow components are built by inheriting from the Microsoft.SqlServer.Dts.Pipeline.PipelineComponent class.
But the stock components such as the Derived Column data flow transformation must each be implemented by their own class. So how do I base my custom components on those classes? The documentation for the PipelineComponent class doesn't list any such subclasses.
I have a package that loads data from a flat file, performs some transformations and then inserts the final data into a DB destination. The keys for the different DB records are generated in Script components in the Data Flow Tasks.
My question is concerning the Key Generation and I'll try to explain it on a simple example.
Package Structure:
The Control Flow contains two Data Flow tasks. Each of the Data Flow Tasks contains a Script Component responsible for generating the keys of the records to be loaded during this data flow.
The code of the Script component is the following:
' Field Definitions ' Private seed1 As Integer Private seed2 As Integer
' Constructor ' Public Sub New(ByVal dbSeed1 As Integer, ByVal dbSeed2 As Integer) ..... End Sub
' Generates the keys according to the seeds retrieved from the DB ' Public Function getNextKey() As Int64 ... ... Return generatedKey End Function
End Class
Public Class ScriptMain Inherits UserComponent
Private generator As New KeyGenerator(7, 5)
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
.... Row.NewKey = generator.getNextKey()
End Sub End Class
Questions: As you can see the KeyGenerator class code gets duplicated in each Script Component, which is definitely a bad practise. What I wish to do is to create the KeyGenerator class and deploy it as a library "somewhere". Then, in each Script Component, I should only import the KeyGenerator class.
1. Is that possible?
2. If yes, how can I do this?
3. If not, what is a best practise you would recommend which allows me to avoid this code duplication of the KeyGenerator class?
I have a job that contains a step to run a DTS task (DTSRUN /S.....etc.) via a batch file.
I can run either the DTSRUN command line, or the batch file that contains it just fine, but when I try to run the job, it reports success but does not actually do the work.
I dont get an error message. I am using the sa account to run the DTS task from the command line.
I know this must be a permissions issue. As I am working at a Defense contractor, I cannot get a domain admin account to run SQL Agent.
Can any one give me brief useful explanations or guide me to a usefulresource of what Development Tools component and Profiler are?Is there anything I should be aware of if I want to install ClientConnectivity component (don't want to overwrite anything)?Thank you in advance.
I am not sure why when the packages are run, the components dissapear. The only thing I see is the result in the output. So there is no visual on the tabs. Thanks
I was trying subscription, but an error occured: "Microsoft Server Management Studio is un able to accessreplication components because replication is not installed on this instance.
I went to change, located my setup exe, installed. but at the end, I get this message: No selected features can be installed or upgraded. Setup cannot proceed since no effective change is being made to the machine......
I downloaded the Express edition via MSDN download.
May somebody please help? What wrong did I do? What did I miss to do?
I have a question about client components. I read someplace where if sql client components are preinstalled (if you delete sql express-client components cannot install, even if they are preinstalled
I have sql express default installation from vs 2008 pro I have not installed sql express (client components, database components I wish to install cd standard edition on my computer for reporting services Also wanted to add enterprise server so I need report manager office 2007 installed by myself. I came across this article kb909967. Is there anyway to check make sure I can install client components installs on standard edition I also read kb 964164 installing sql on vs 2008 vista ultimate Thanks
I'm having a problem with problems with some custom components I built. I have a custom Connection Manager and Data Flow Source that I have built.
My local PC is 64-bit, but I followed the MS instructions on building and deploying custom components. They run fine inside of VS2005, as long as I have 'Run64BitRuntime" set to 'False'. When I try to run packages using the custom components in 64-bit mode, I get:
Error: 0xC0014005 at : The connection type "<MyConnectionManagerType>" specified for connection manager "PRI" is not recognized as a valid connection manager type. This error is returned when an attempt is made to create a connection manager for an unknown connection type. Check the spelling in the connection type name.
I suspect I need to either change the way I build or deploy the custom components. Can someone shed some light on this?
I have installed SQL Server 2005 but Integration Services is just not there. I have uninstalled and reinstalled several times and in the process uninstalled an old version of Visual Studio.NET (manually because it wouldn't uninstall automatically) and Visual Web Developer, just in case they were interfering with Integration Services. No luck, in fact it got worse, now Analysis Services also does not work because it can't find devenv.exe!
I have installed exactly this same software on another clean PC (ie. no previous Visual Studio variants on it) and it installs perfectly.
There seems to be some kind of clash between old versions of Visual Studio and SQL Server 2005 that prevents SQL Server from properly installing products like Integration Services that use the Visual Studio interface (ie. devenv.exe).
I now can't even reinstall the old version of Visual Studio.NET, and devenv.exe is nowhere to be found on my PC although it is referenced throughout the registry.
Has anyone got any suggestions, all I am after if a full and clean install of SQL Server 2005 so I can develop against it using Visual Web Developer.
I have been trying to create, then call an activeX object. I use sp_OAcreate and then sp_OAmethod to create the object, the call the method within. I have registered the DLL but I can not get it to work. I used the examples within T-SQL help but it doesn't seem to work. I am calling from within a sp within the northwind db. I need to pass 4 parms to the method. Here is the proc.
CREATE PROCEDURE SIMPLE2_SP (@CUSTOMERID nVARCHAR(25) = NULL, @ORDERID INT = NULL) AS
DECLARE @BLOB nVARCHAR(1200), @PARM1 nVARCHAR(25), @SF INT, @pOBJ INT
/***Make sure that the customerid is specified, if not, get out. sfogli 7-17-00 ***/ IF (@CUSTOMERID is NULL) OR (@CUSTOMERID = '') BEGIN RAISERROR('Must specify a CUSTOMER name.',-1,-1) RETURN (1) END
/***Hardcode the path, customerid, and orderid for testing purposes. sfogli 7-17-00. ***/ --SELECT @BLOB = 'PATH=C:REPORT.HTM;CUSTOMERID=' + @CUSTOMERID + ';' + 'ORDERID=' + CONVERT(VARCHAR(5),@ORDERID)+ ';' SELECT@PARM1 = 'PATH=C:REPORT.HTM;'
/***Make sure that the orderid is specified, if not, raise message. sfogli 7-17-00 ***/ IF (@ORDERID is NULL) OR (@ORDERID = '') BEGIN RAISERROR('To continue process, please specify an ORDERID and retry.',-1,-1) PRINT @BLOB RETURN (1) END
I have a Windows XP machine that I have run SQL Server on in the past.I recently re-formatted the hard drive and re-installed XP from scratch,and now when I try to re-install SQL Server 2000, I get an error messagesaying that the "server component is not supported on this operatingsystem. Only client components will be available for installation." Ihave a hard time understanding why the server components can't beinstalled on XP, especially since I've installed them before on thissame machine.Can anyone explain why this might be, and what I can do (if anything) sothat it can be installed again?Thanks.Steve
I have DFTs with around 50 components and future ETLs will have 100+ components in DFTs. I was wondering that is there anyway to group components like we have #region in C#.
hello all -- I'm an SSIS newbie who is exploring (custom) programming functionality through third party components, to be plugged into SSIS, for SMTP, FTP, PGP, TAR, WinZIP, basically for a scheduling & automation utility.
Is there such a concept of third party components (and marketplace for this?) or is VB a much better choice for this vis-a-vis components variety, $$ and robustness ?
If I have a Mixed Mode Authentication - Can I remove it from my existing product while upgrading to SQL Server 2005? What is the impact to the installations?
I develop a application for mobile devices using C# and Visual Studio 2005 with .NET Compact Framework 2.0. My application is very sample: have a master form where user browse the records in a grid and a detail form for insert and alter the record's.
The application runs fine when the database is empty. I have a problem with combobox bounded components when the sequence above is executed:
1. After append a some of records end the application; 2. Run the application again (the records was in database); 3. Append new record; 4. Cancel the operation;
The first record of the group is changed without user confirmation. The value of each field is changed for the first value of combobox bounded with then.
Question I have Reporting Services up running in production. I want to create a place for internal employee's to go run report only related to daily business. Meaning I want two Sever Components to deploy reports to one for production (Customers) and one for internal(Intranet). Can this be done?
Can someone direct me to step by step intructions?
I've got VS 2008 Pro installed, as well as SQL Sever 200 (which I must keep installed). When I run the install for SQL Server 2005 developer edition, it continually fails to install
I had a perfectly good working copy of SQL Server 2005 installed. However, at some point I needed the Report Services Designer so I could edit my reports in Visual Studio. I inserted the CD and selected the feature from the list and it installed. Only problem being that it has completely removed my Management Studio and practically every other tool I didnt explicitly checked when installing the RS Designer.
When I tried to run the same Setup again and check everything, it tells me that there is no change between what I have selected and what is installed, which sounds like total bs to me, since my pc doesnt have a management studio etc anymore.
Out of pure misery I decided to remove my entire SQL Server installation, inc Instance, hoping to start anew and achieve the result I wanted with the least amount of frustration. I ended up here and followed it all the way: http://support.microsoft.com/kb/909967
When I started reinstalling, I ran into something new. The installer refuses to let me install anything but the Workstation components, books online and development tools. All the other options are greyed out and not even available.
Someone please help me get my SQL Server back up and running because I'm getting hopeless.
How can I create a source extension that reads a text file and returns a XML file? I would like to have an xml File as output, because the information is already normalized.
If I extend the class €śPipelineComponent€? I can just define IDTSExternalMetadataColumn90 as output. And I do not want to have columns. I would like to return a xml file
I foolishly installed SQL developer edition on a new server without adding any of the tools, samples, documents etc. Then I upgraded to SP2. Now it will not allow me to add the components I missed - whether I use the installation DVD or the add / remove programs dialog, it says it cannot add the selected components because the existing installation is at a higher upgrade level than the components I am trying to install. This cannot be the designed behaviour but can anyone tell me how to do it?
I applied SQL 2005 SP1 and hotfixes to my instance. Now I found the SQL_replication component was not installed. I just installed that component.
1. Do I need to reapply SP1? Then hotfixes?
2. Will reapply SP1 or hotfixes cause problems? I tried on my test server, the SP1 install failed with some errors the first time. It went through Ok the second time. (I have 3 instances on this test server. I only added new component to one instance. When applying SP1 the second time, the installer forces me to apply on all instances and tools; causing outage to all instances. The installer did not force me when I applied SP1 the first time.)
I wonder what is the best practice for handling this case.
It appears that there is no way to install SQL Server 2005 Workstation Components on an x86 operating system (XP in this case) if you have the x64 install disks (Standard Edition). Can someone verify this?
I am finding it hard to believe that workstation components for a standard Windows client environment are not distributed with the version of SQL Server that matches Windows 2003 x64.