17 May 2008

SSIS: Passing parameters from parent to child package

When using “Execute Package Task” in SSIS control flow, you can’t pass in any configuration options or variables to the child package. Here is a workaround to do that:

  1. In the parent package, create a variable for each variable you want to set in child package. It must be defined as a global variable.
  2. In the child package, create variables to correspond to the ones you created in the Parent package (e.g. “ChildVar” to correspond to “ParentVar”). Important: assign these variables valid default values, otherwise you will not be able to run the child package standalone.
  3. In the child package, open the package Configurations. Add a new configuration, and select the “Parent package variable”. Enter the variable name you added to the parent package (in our example “ParentVar”). Note that variables are case sensitive. Assign this to the variable of the child package (”ChildVar”).

Now when you run the parent package, it will pass the value of the “ParentVar” to the “ChildVar”. When you run the child package directly (without a parent package), it will use the default value of the “ChildVar”.

03 May 2008

A bug in ASP.Net 2.0 Gridview control and ...

I don’t know why it has to be like this! I know BUG is a non-detachable part of software development and according to a Murphy’s law: "Each computer code has five bugs, and this number does not depend on how many bugs have been already found." (!?)

But, when a bug was found and reported to a company like Microsoft, why it should take so long to fix it? And isn't it better if Microsoft add a note or comment in MSDN like: "this is a known bug and here is the workaround..." so that people don't get confused by getting a different result from a sample code? Or maybe Bill Gates wants to make developers more creative?!

To make the long story short, last week after several frustrating hours debugging a Gridview image button which was firing an command event twice, I found it's a known bug in ASP.Net 2.0 and was reported to Microsoft on 2006, and yet to be fixed! The funny thing is it works fine when you have a LinkButton instead of ImageButton.

I finally found a workaround for this:

Put your imagebutton in an ItemTemplate and add:

The rest is same as other Gridview commands, you need to write your code in RowCommand event of the Gridview and find the index of the row like this:

Dim index As Integer = Convert.ToInt32(e.CommandArgument) Dim myRow As GridViewRow = CartGrid.Rows(index) If (e.CommandName = "YourCommandName") Then ....

Have a look at this page, (a frustrated developer was trying to get help about this issue and answer of Microsoft Online Support...):

http://www.netnewsgroups.net/group/microsoft.public.dotnet.framework.aspnet/topic16694.aspx

24 March 2008

"First to Know" Visual Studio 2008 and SQL Server 2008 exam offer

Sign up to be the first get notified about SQL Server 2008 and Visual Studio 2008 exams and receive 40% off!

http://www.microsoft.com/learning/mcp/sqlvs/offer/default.mspx

29 February 2008

Goodbye SDM!

Today was my last day at SDM. I'm going to join the "contractors club" to experience a new type of work and want to be an independent consultant in the near future. Hence I'm starting a contract role in Tenix on a large-scale data migration project.

Working at SDM was a great experience for me and I have learned a lot and made some good friendships over the 1 year working with them.

27 February 2008

Exam 70-551: UPGRADE: MCAD Skills to MCPD Web Developer by Using the Microsoft® .NET Framework

Today I passed 70-551 (a tough one!) and upgraded my MCAD to MCPD. The exam was devided in 3 sections and each section was contained of 30 Questions:

  • Section 1 - .NET Framework Fundamentals
  • Section 2 - Core Web Application Development
  • Section 3 - Application Development Advanced Topics

Time for each section was around 70 minutes which seems not to be enought.Once you finish one section, you can't go back to that section again. Passing score is 700.

The first section was specific to web applications and it has a bunch of question with mobile pages, web forms and new web controls like webparts, login, profiles, site map and master page as the main topics.

The second part of the exam was the hardest one, it was related to framework and types with security attributes, xml serialization attributes, class design and generics in its topics.

The third part was the architecture one and it was lot of logical questions about designing solutions, unit testing, code coverage and integration test and best practices.

Check out this links:

22 February 2008

SQL Server 2008 - CTP 6

The latest Community Technology Preview of SQL Server 2008 is available.

SQL Server 2008 CTP6 is "feature complete," which means that Microsoft won't be adding or removing features between now and RTM later this year.

SQL Server 2008 February CTP 6 can be downloaded from here

13 February 2008

Microsoft Positioned in Leaders Quadrants in Magic Quadrant for BI Platforms

Congratulations Microsoft!

You can read the press release on the news here.

11 February 2008

Overview of SQL Server 2008 Business Intelligence by Tom Casey

In this 9 minutes video, Tom Casey (general manager SQL Server Business Intelligence at Microsoft) gives an overview of BI in SQL Server 2008 (code name Catmai)

http://www.microsoft.com/sql/2008/bi/

09 February 2008

What's New in Microsoft SQL Server 2008 for Business Intelligence

Integration Services in SQL Server 2008

  • SSIS 2008 provides the data integration features such as SSIS pipeline, SSIS persistent lookups, and SSIS data profiling that help you to integrate data more effectively.
  • SSIS 2008 provides data warehousing features and tools that help you to effectively manage large volumes of data. These features and tools include partitioned table parallelism, query optimization, Resource Governor, and data compression.
  • SQL Server 2008 provides the MERGE statement that helps you to simplify the code and enhance the system performance. You can also use the MERGE statement as a join between a target that is the recipient of the DML and a source that is the provider of the data.
  • SQL Server 2008 provides the CDC (Change Data Capture) feature that helps you to insert records, update, and delete activities applied to SQL Server 2008 tables. You can use CDC to store details of the changes in an easy relational format. CDC also provides a structured, reliable stream of change data that can be applied by users to dissimilar target representations of data.

Reporting Services in SQL Server 2008

  • SSRS 2008 includes the report server that is used to set a memory threshold for background operations and performance counters for monitoring service activity.
  • SSRS 2008 supports two modes of deployment for report server, the native mode and SharePoint integrated mode.
  • SSRS provides the report authoring features that help you to manage large reports. These features include Report Designer, data visualization, and Tablix.
  • SSRS provides the report delivery features that help you to generate reports. The features include rich-text, Office Word rendering, Office Excel rendering, export to Office Word and Office Excel, and report delivery through MOSS.

Analysis Services in SQL Server 2008

  • SSAS 2008 provides several Cube Designer enhancements for better detection and classification of attributes along with identification of member properties. These enhancements include Analysis Services personalization extensions, best practice alerts, enhanced dimension design, enhanced aggregate design, and dynamic named sets.
  • SSAS 2008 provides you with the capabilities to can enhance the data mining models by appending a new algorithm to Microsoft Time Series algorithm. This new algorithim is based on the ARIMA algorithm. This enhancement improves the accuracy and stability of predictions in the data mining models.
  • SSAS 2008 provides several performance enhancements to manage cube space. The enhancements include subspace computation, MOLAP-enabled write back capabilities, scale-out analysis, and scalable backup tool.

Source: MS Clinic 6189: What’s New in Microsoft® SQL Server™ 2008 for Business Intelligence

01 February 2008

PPS 2007 MCTS Exam 70-556 Now Available

Prometric already listed the exam on its site.

The official preparation guide for the exam:

http://www.microsoft.com/learning/exams/70-556.mspx

08 December 2007

MCITP – Business Intelligence Developer (Exam: 70-446)

Today I passed 70-446 exam. There were 6 scenarios and around 10 questions for each scenario and 30 minutes for each scenario. Not too hard and many straightforward questions if you have done a few projects and are familiar with concepts like: dimensional modeling, cube designing, SCD (especially type-2), data mining. There are only 183 MCITP -BI Developer all around the world up to now compare to 3,232 MCITP (DBA) or 148,244 MCDBA (SQL 2000), that's a very small number. Not sure if that means the MS BI is not popular or it is still young or because it’s a new exam or … (?)

I found these links very helpful:

07 December 2007

Slowly Changing Dimension (SCD)

There are different types of Slowly Changing Dimension:

Note: SSIS SCD control only supports Type1 and Type2. But by identifying columns with the fixed attribute update type, you can capture the data values that are candidates for Type 3 changes.

Slowly Changing Dimension Transformation Outputs
Output Description Data flow requirements
Changing Attributes Updates Output The record in the lookup table is updated. This output is used for changing attribute rows. An OLE DB Command transformation updates the record using an UPDATE statement.
Fixed Attribute Output The values in rows that must not change do not match values in the lookup table. This output is used for fixed attribute rows. No default data flow is created. If the transformation is configured to continue after it encounters changes to fixed attribute columns, you should create a data flow that captures these rows.
Historical Attributes Inserts Output The lookup table contains at least one matching row. The row marked as “current” must now be marked as "expired". This output is used for historical attribute rows. Derived Column transformations create columns for the expired row and the current row indicators. An OLE DB Command transformation updates the record that must now be marked as "expired". The row with the new column values is directed to the New Output, where the row is inserted and marked as "current".
Inferred Member Updates Output Rows for inferred dimension members are inserted. This output is used for inferred member rows. An OLE DB Command transformation updates the record using an SQL UPDATE statement.
New Output The lookup table contains no matching rows. The row is added to the dimension table. This output is used for new rows and changes to historical attributes rows. A Derived Column transformation sets the current row indicator, and an OLE DB destination inserts the row.
Unchanged Output The values in the lookup table match the row values. This output is used for unchanged rows. No default data flow is created because the Slowly Changing Dimension transformation performs no work. If you want to capture these rows, you should create a data flow for this output.
SQL Server 2005 Books Online (September 2007)

06 December 2007

Usage-Based Optimization in Analysis Services 2005

You can optimize partitions of a measure group based on the usage. Here is the full instruction:

http://www.databasejournal.com/features/mssql/article.php/10894_3575751_1