I was really enjoying one of SSMS 2008 new features - IntelliSense. But later it was "dissappearing" and "getting back" somehow. I was connecting to five different SQL server instances. And only two of them were the latest ones (2008). I did not paid much attention to that fact as had been using SSMS 2005 for a while which had no IntelliSense builtin support. The fact that something is not under my control was disturbing me so I started to google around.
The answer was very simple and unexpected. IntelliSense in SSMS 2008 does not work for down-level systems. Then I found an interesting blog post which stated that SSMS 2008 CTP5 and CTP6 had IntelliSense support for all SQL Server down versions. It appeared that there was some kind of defect in server version check logic that allowed IntelliSense to work with down level versions.
100% percent agree with blog post author that it would be nice to have IntelliSense working with all versions. :)
Regards,
Oleh
Wednesday, October 22, 2008
Tuesday, August 12, 2008
VS 2008 SP1 and .Net Framework 3.5 SP1 RTM
As it was announced VS2008 SP1 and .Net Framework 3.5 SP1 had been released yesterday.
VS2008 SP1:
.Net Framework 3.5 SP1:
Enjoy :)
Friday, August 08, 2008
Visual Studio 2008 SP1 is required for SQL Server 2008 installations
"Because certain SQL Server 2008 features install components that are also part of the release version of Visual Studio 2008 SP1, SQL Server 2008 requires Visual Studio 2008 with SP1. If Visual Studio 2008 without a service pack is installed instead, it may not work correctly after you install SQL Server 2008."
Euan Garden has a good post demystifying installation confusions.
And MSDN Subscriptions page says that VS 2008 SP1 will be available here after August 11, 2008
So we will need to wait till Monday...
Stay tuned! :)
Euan Garden has a good post demystifying installation confusions.
And MSDN Subscriptions page says that VS 2008 SP1 will be available here after August 11, 2008
So we will need to wait till Monday...
Stay tuned! :)
Thursday, August 07, 2008
SQL Server 2008 RTM
SQL Server 2008 has been released!
"REDMOND, Wash. — Aug. 6, 2008 — Microsoft Corp. today announced the release to manufacturing of Microsoft SQL Server 2008, the new version of the company’s acclaimed data management and business intelligence platform. This version of SQL Server provides powerful new capabilities such as support for policy-based management, auditing, large-scale data warehousing, geospatial data, and advanced reporting and analysis services. SQL Server 2008 provides the trusted, productive and intelligent platform necessary for business-critical applications."
SQL Server 2008 Overview
SQL Server 2008 Dev Center
SQL Server 2008 MSDN forums
Overview White Paper
Can't wait to put my hands on it :)
Enjoy :)
"REDMOND, Wash. — Aug. 6, 2008 — Microsoft Corp. today announced the release to manufacturing of Microsoft SQL Server 2008, the new version of the company’s acclaimed data management and business intelligence platform. This version of SQL Server provides powerful new capabilities such as support for policy-based management, auditing, large-scale data warehousing, geospatial data, and advanced reporting and analysis services. SQL Server 2008 provides the trusted, productive and intelligent platform necessary for business-critical applications."
SQL Server 2008 Overview
SQL Server 2008 Dev Center
SQL Server 2008 MSDN forums
Overview White Paper
Can't wait to put my hands on it :)
Enjoy :)
Wednesday, August 06, 2008
SSRS Resources
Hi there,
In this post I'll provide a list of resources that I find helpful to learn and resolve SSRS issues.
Beginner guides:
Hope this helps somebody.
Regards,
Oleh
In this post I'll provide a list of resources that I find helpful to learn and resolve SSRS issues.
Beginner guides:
- Beginning SQL Server 2005 Reporting Services Part 1 by Simple-Talk
- Beginning SQL Server 2005 Reporting Services Part 2 by Simple-Talk
- Beginning SQL Server 2005 Reporting Services Part 3 by Simple-Talk
- Beginning SQL Server 2005 Reporting Services Part 4 by Simple-Talk
- MSDN Webcast: Introduction to SQL Server 2005 Reporting Services (Part 1 of 6) (Level 200) - Introduction
- MSDN Webcast: Introduction to SQL Server 2005 Reporting Services (Part 2 of 6) (Level 200) - Delivering Reports
- MSDN Webcast: Introduction to SQL Server 2005 Reporting Services (Part 3 of 6) (Level 200) - Report Builder
- MSDN Webcast: Introduction to SQL Server 2005 Reporting Services (Part 4 of 6) (Level 200) - Report Design
- MSDN Webcast: Introduction to SQL Server 2005 Reporting Services (Part 5 of 6) (Level 200) - Extensibility
- MSDN Webcast: Introduction to SQL Server 2005 Reporting Services (Part 6 of 6) (Level 200) - Management and Security
- MSDN Webcast: Intelligent Reporting: Using the Visual Studio 2005 Report Viewer Controls (Level 200)
- MSDN Webcast: Intelligent Reporting: Charting in Depth (Level 300)
- www.gotreportviewer.com
- SQL Server Reporting Services Team Blog
- Lukasz Pawlowski, PM SSRS Team
- Bob Meyers, Dev Lead SSRS Team
- John Gallardo, Dev SSRS Team
- Chris Hays, Arch SSRS Team
- Chris Baldwin, PM SSRS Team
- Brian Welcker, GPM SSRS Team
- Robert Bruckner, Dev SSRS Team
- Russell Christopher, BI
- Teo Lachev, MVP
- James Wu
- Lev Semenets
- Chaitanya Medikonduri
- Tudor Trufinescu
- Steve Wright
Hope this helps somebody.
Regards,
Oleh
Thursday, July 31, 2008
C# 4.0
Just finished watching C# 4.0: Meet the Design Team video from channel9.
Interesting discussion about the evolution and future of the C# language.
Speaking about C# 4.0 notions none specific were mentioned only big influencers for the new stuff were.
They are:
Or you can look for new stuff here.
PS: some ParallelFX resources that I find helpful:
Interesting discussion about the evolution and future of the C# language.
Speaking about C# 4.0 notions none specific were mentioned only big influencers for the new stuff were.
They are:
- Declarative programming - a la LINQ
- Dynamic languages
- Concurrency - ParallelFX extensions for .Net Framework
Or you can look for new stuff here.
PS: some ParallelFX resources that I find helpful:
- PFX team blog
- Joe Duffy blog (PFX team dev lead)
- Parallel Computing Platform Dev Center (where you can find latest downloads)
- Parallel Extensions to the .NET Framework MSDN forum
Tuesday, July 29, 2008
Printing ServerReport in background
Recently I wanted to print a server report presented with a ReportViwer component in a windows forms application without showing any GUI. Another thing was to investigate the feasibility of enabling automatic printing server reports capabilities in background from within an application providing printing preferences via ApplicationSettings.
ReportViewer source code investigation using Reflector showed that it provides only PrintDialog() public API that will show a modal PrintDialog dialog thus requiring user interaction.
Later I found a www.gotreportviewer.com site with an example of local report printing without showing any GUI using LocalReport.Render() method. ServerReport does not provide such method so I adapted the code for printing ServerReport in background.
First page is rendered using ServerReport.Render() public API. It will return streamIds list for each page that report consists of and that could be used to render all other pages via ServerReport.RenderStream() public API.
Image Device Info tips:
1. Try to provide paper dimensions that correspond to report’s or adjust reports one to papers’. Otherwise report will be stretched across the paper sheet.
2. StartPage default value is 1 and EndDate equels StartDate - so do not surprise is only first page is printed.
Everything above said developed into:
Ensure that you have a report deployed to your report server.
Hope this helps somebody.
Regards,
Oleh
ReportViewer source code investigation using Reflector showed that it provides only PrintDialog() public API that will show a modal PrintDialog dialog thus requiring user interaction.
Later I found a www.gotreportviewer.com site with an example of local report printing without showing any GUI using LocalReport.Render() method. ServerReport does not provide such method so I adapted the code for printing ServerReport in background.
First page is rendered using ServerReport.Render() public API. It will return streamIds list for each page that report consists of and that could be used to render all other pages via ServerReport.RenderStream() public API.
string sExtension;
string sEncoding;
string sMimeType;
string[] sStreamIds;
Warning[] warnings;
// render into EMF — one page per one stream
// render first page and get streamIds for the rest pages
byte[] bt = report.Render(”Image”
, GetDeviceInfo()
, out sMimeType
, out sEncoding
, out sExtension
, out sStreamIds
, out warnings);
SaveToStream(bt);
// iterate through each streamId and save
foreach (string sStreamId in sStreamIds)
{
bt = report.RenderStream(”Image”, sStreamId, GetDeviceInfo(), out sMimeType, out sEncoding);
SaveToStream(bt);
}
Image Device Info tips:
1. Try to provide paper dimensions that correspond to report’s or adjust reports one to papers’. Otherwise report will be stretched across the paper sheet.
2. StartPage default value is 1 and EndDate equels StartDate - so do not surprise is only first page is printed.
Everything above said developed into:
using System;#endregion
using System.Collections.Generic;
using System.Drawing.Printing;
using Microsoft.Reporting.WinForms;
using System.IO;
using System.Drawing.Imaging;
namespace ServerReportPrinting
{
class Program
{
#region Class Fields
///
/// Defines current page that is being printed.
///
private static int m_nCurrentPageIndex;
///
/// List of streams for storing rendered report pages.
///
private static IList<Stream>m_streams = new List <Stream>();
#endregion
#region Class methods
static void Main(string[] args)
{
PrintReport();
}
#endregion
#region Class Utility methods
private static void PrintReport()
{
ExportToEMF();
// export to EMF was successfull
// proceed with printing
Print();
}
///
/// Exports report representation into EMF format.
///
private static void ExportToEMF()
{
// initialize ReportViewer
ReportViewer rptViewer = new ReportViewer();
rptViewer.ServerReport.ReportServerUrl = new Uri(@"http://localhost/reportserver", System.UriKind.Absolute);
//rptViewer.ServerReport.ReportPath = @"Here goes server report path";
rptViewer.ProcessingMode = ProcessingMode.Remote;
ServerReport report = rptViewer.ServerReport;
string sExtension;
string sEncoding;
string sMimeType;
string[] sStreamIds;
Warning[] warnings;
// render into EMF -- one page per one stream
// render first page and get streamIds for the rest pages
byte[] bt = report.Render("Image"
, GetDeviceInfo()
, out sMimeType
, out sEncoding
, out sExtension
, out sStreamIds
, out warnings);
SaveToStream(bt);
// iterate through each streamId and save
foreach (string sStreamId in sStreamIds)
{
bt = report.RenderStream("Image", sStreamId, GetDeviceInfo(), out sMimeType, out sEncoding);
SaveToStream(bt);
}
// set stream positions to 0
foreach (Stream stream in m_streams)
stream.Position = 0;
}
///
/// Creates a memory stream that will store rendered report definition.
///
private static void SaveToStream(byte[] bStr)
{
Stream fs = new MemoryStream();
fs.Write(bStr, 0, bStr.Length);
m_streams.Add(fs);
}
///
/// Create print document and print it.
///
private static void Print()
{
// print document
if (m_streams == null || m_streams.Count == 0)
return;
PrintDocument printDoc = new PrintDocument();
if (!printDoc.PrinterSettings.IsValid)
{
Console.WriteLine("Can't find printer");
return;
}
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
printDoc.Print();
}
private static string GetDeviceInfo()
{
"<DeviceInfo>" return
< + " < OutputFormat>EMF</OutputFormat>"
+ "< StartPage>1 < /StartPage>"
+ "< EndPage>1</EndPage>"
+ "> PageWidth < 8.5in > /PageWidth < "
+ "> PageHeight < 11in > /PageHeight < "
+ "> MarginTop < 0.25in > /MarginTop < "
+ "> MarginLeft < 0.25in > /MarginLeft < "
+ "> MarginRight < 0.25in > /MarginRight < "
+ "> MarginBottom < 0.25in > /MarginBottom < "
+ "/DeviceInfo>";
}
///
/// Handles page printing.
///
private static void PrintPage(object sender, PrintPageEventArgs ev)
{
Metafile pageImage = new Metafile(m_streams[m_nCurrentPageIndex]);
ev.Graphics.DrawImage(pageImage, ev.PageBounds);
m_nCurrentPageIndex++;
ev.HasMorePages = (m_nCurrentPageIndex < m_streams.Count );
}
}
}
Ensure that you have a report deployed to your report server.
Regards,
Oleh
Hello World!
Hi there.
My name is Oleh Svintsitskyy.
I’m a software developer with interests and experience primarily in MS technologies.
That’s what I will be writing about
Subscribe to:
Posts (Atom)