SQL Server 2008 R2 Reporting Services unterstützen die Darstellung von geographischen Informationen
- basierend auf den eingebauten .Net Systemdatentypen “geography” und “geometry”, welche seit SQL Server 2008 verfügbar sind
- mittels eingebauter Karten – jedoch nur für die USA
- via ESRI-Shapefile, welche man selber bereitstellen muss
Siehe auch blog-Post: http://blogs.msdn.com/seanboon/archive/2009/11/17/sql-server-2008-r2-map-tips-how-to-import-shapefiles-into-sql-server-and-aggregate-spatial-data.aspx
und woher kann man diese erhalten?
Anders als in den USA, wo sämtliche erhobene Daten dem Volk zur Verfügung stehen, und zwar kostenlos (Census Bureau Geography), ist es in Deutschland alles andere als einfach überhaupt an diese Daten heranzukommen.
Hier habe ich eine kleine Sammlung an diversen Internetseiten zusammengestellt, wo man diese Daten erhalten kann. Gerne nehme ich weitere Webseiten in diese Liste auf.
Diverses:
Sonstiges:
weitere Artikel im Netz:
Achieve Spatial Data Support in SSIS:
http://www.sql-server-performance.com/articles/biz/spatial_data_support_ssis_p1.aspx
Bridge The Gap between Bing and Google Maps using SSIS
http://www.sql-server-performance.com/articles/biz/bing_google_maps_p1.aspx
viel Spaß mit den Karten
Andreas
Sarpedon Quality Lab
Eine häufige Aufgabe bei der Arbeit mit Integration Services Paketen ist es, eine Routine in einer Schleife auszuführen.
Nehmen wir den konkreten Fall: ein For Each-Loop zum rekursiven Auslesen von Textdateien aus einer Verzeichnisstruktur und Verschieben an einen Zielort.
Wenn die Operation aufgrund von einer geöffneten Datei (z.B. der Log-Writer Prozess) fehlschlägt, schlägt damit der Task “Move file” fehl. Sodann der Container “For Each Loop”, und dann das gesamte Paket. Das ist das Standardverhalten: das Event “Error” wird propagiert.
Das sieht in etwa so aus (hier mit einen For Loop):
Man sieht trotz der versuchten “Fehlerbehandlung” in dem Script-Task “SCR-Fail” schlägt der Container fehl.
Das ist in diesem Fall aber nicht unbedingt das gewünschte Ergebnis.
Man möchte, das die Operation einfach mit der nächsten Datei fortfährt und eventuell liegengebliebene Dateien in einem späteren Durchlauf einfach holen.
Dafür muss man das propagieren des Fehlers auf Container-Ebene unterbinden. Die dafür extra vorhandene Systemvariable “Propagate” ist ausnahmsweise deswegen auch manuell änderbar. Allerdings gibt es diese nur in den Event Handlern.
Das heisst für den fehlschlagenen SQL-Task in diesem Beispiel ist ein EventHandler für “OnError” anzulegen. Dort findet man dann die besagte Variable und schaltet sie auf False
Das würde an sich schon genügen, um das Paket einfach weiterlaufen zu lassen.
Allerdings ist es in der Regel wünschenswert, im Anschluss eine bedingte Reaktion auf das erfolgreiche oder erfolglose Verschieben der Datei erfolgen zu lassen. In diesem Beispiel ein T-SQL-Schritt bei Erfolg, und der Script-Task “Fail” bei Misserfolg.
Da nun kein Fehler mehr propagiert wird, ist ein kleiner Kunstgriff vonnöten: Man definiert sich eine Variable, welche im Fehlerfall einen anderen Wert erhält und liest diese dann bei dem Precedence-Constraint zusätzlich mit aus.
Am einfachsten geht das mit dem im Fehlerfall ohnehin vorhandenen ErrorCode – innerhalb des EventHandler natürlich.
Dort leitet man den Wert der Systemvariable “ErrorCode” einfach in seine eigens zuvor angelegte User-Variable um:
Dts.Variables("User::ErrorCode").Value = Dts.Variables("System::ErrorCode").Value
Im ControlFlow wird dann ein “OnCompletion” – Precedence Constraint verwendet, und zusätzlich die Variable in der Expression "@[User::ErrorCode] != 0" ausgewertet
Das gewünschte Ergebnis verhält sich dann so:
Der Fehler im Task wird abgehandelt, und die Arbeit wird fortgesetzt.
happy coding :)
Andreas Wolter
Sarpedon Quality Lab
Auf der diesjährigen SQLCon in Mainz hielt ich die Session Anspruchsvollere Berichte mit Reporting Services 2008.
Link: http://it-republik.de/dotnet/sqlcon09/sessions/?tid=1259#session-10624
Themen waren:
Tablix
–Mehrere Gruppen auf einer Achse
–Static Header – wie geht das jetzt?
–Listen (gruppieren)
Charts
–Dynamisches Wachstum
–Trendlines einbauen, Pareto-Charts
–Multiple Charts
Gauges
–Varianten und Customizing
Kombinationen
–Charts und Gauges innerhalb von Tablix (Microcharts)
Weitere „Angenehmlichkeiten“
–Felder in Page Header & Footer
–Placeholder
Hinweise auf Weitere interessante Neuerungen
Ausblick SQL Server 2008 R2
–Map Control
–Componentizing Reports

bis zum Nächsten mal,
Andreas Wolter
Sarpedon Quality Lab
Liebe SQL Server Administratoren, Entwickler und Entscheider.
Seit Juni 2009 erreichen Sie unter www.SarpedonQualityLab.com unsere neue Webseite .
Dort finden Sie neben einem Überblick über unsere Dienstleistungen auch Informationen über unsere neues Produkt, das wir in intensiver Arbeit an SQL Server Installationen entwickelt haben:
SQL Server Suite Monitoring, aktuell in der Version 3.1 verfügbar.
Außerdem sind Sie herzlich eingeladen an unserer Verlosung teilzunehmen. Zu gewinnen sind unter anderem 3 Tage Teilnahme an der SQL Con 2009 oder ein ganzer Trainingstag!
Update: Die Verlosung ist beendet- Wir gratulieren den Gewinnern.
Weitere Informationen dazu finden Sie auf unserer Website im Bereich Neuigkeiten.
Mit sonnigen Grüßen aus Düsseldorf,
Ihr Sarpedon Quality Lab Team
Sarpedon Quality Lab
weitere Präsenzen:
High-Level Training
Andreas Wolter Training & Consulting
SQL Server Suite Trainings
Many still use SQL Server/Reporting Services 2005 although sometimes alread on Windows Server 2008 / Vista.
I absolutely do recommend upgrading to SQL Server 2008. There are many advantages in the combination - be it security or performance (Service IDs, Partition Alignment, No need for IIS for Reporting Services 2008) - but if you can't uprade right now, you do need to install IIS for Reporting Services 2005 to run.
I have seen recommendations (even on a Microsoft blog) where they tell you to install EVERY Role Service for IIS - but that is untrue.
I always always recommend "install as little as possible, but just as much as required".
You do not need an FTP-Server to run Reporting Services! - Natural to most. But when it comes to less known features like, CGI , SSI, Tracing..?.. most aren't so sure.
So here is the definite list of required role services for IIS. I tried to leave of everything I could, and this turned out:
|
Static Content Compression |
|
IIS 6 Management Compatibility |
|
IIS 6 Metabase Compatibility |
I also attach a cmd-file. This file will install all the required packages by itself. You do not need to don any IIS Installation beforehand. It's using the new IIS-Packetmanager available on Windows Server 2008. Just remove the .txt after you checked it out ;-)
For Some reason though the Packetmanager installs "Directory Browsing, which is NOT required (bull***) - you should remove it manually. This seems to be a bug with Packetmanager.
In the end it should look like this:

IIS will be properly detected (and we know for sure, that "Tracing" is not a requirement"):

There is still something however:
After you installed and navigate to http://YourServername/Reports
You will get an error: "unable to connect to remote server"
when checking the Logfile "ReportServerWebApp" it says:
w3wp!ui!7!22.10.2008-10:24:47:: e ERROR: Unable to connect to the remote server
w3wp!ui!7!22.10.2008-10:24:47:: e ERROR: HTTP status code --> 500
-------Details--------
System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:443
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
Solution:
In IIS 7 Manager, highlight the ReportServer application (Not "Reports")
go to Handler Mappings, click "Edit Feature Permissions" in the "Actions Pane", and enable "Script and Execute".
You are all set - it should be running just fine now.
Everything described here also applies for running Reporting Services 2005 on Windows Vista (SP1).
Link to IIS-Setup-File.
Andreas Wolter Training & Consulting
SQL Server Suite Trainings
Über 20 Sprecher in 36 technischen Sessions in 2 Tagen (Hauptkonferenz) zu Business Intelligence, Datanbankentwicklung und -Administration mit Fokus auf SQL Server 2008.
Meine Empfehlung außerdem: die Preconference (1 Tag) "SQL Server 2008 Engine Performance and Advanced Diagnostics" mit Bob Ward vom Microsoft PSS Team
Eine super Gelegenheit mit den Größen der Branche in Kontakt zu kommen.
See you in Neuss -> zur website mit weiteren Informationen
Andreas Wolter Training & Consulting
SQL Server Suite Trainings
bei der Einrichtung von Reporting Services 2005 Version x64 traten in der Reihenfolge folgende Fehler auf, zu welchen ich die Lösungen hier gerne hinterlegen möchte:
1)
"The virtual directory could not be created. The previously set virtual directory will still be used."
Details: "System.IO.FileNotFoundException:
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
at ReportServicesConfigUI.WMIProvider.RSReportServerAdmin.CreateVirtualDirectory(String virtualDirectory, String path)"
Lösung:
das lag daran, das ASP.Net VOR dem .Net Framework 2.0 installiert war
(meine Quelle: http://www.bokebb.com/dev/english/2027/posts/2027133704.shtml )
Nach einer Reparatur-Installation des .Net Framework 2.0 lief es tadellos.
2)
Als nächstes kam folgende Fehlermeldung auf der Website http://Servername/Reports:
"The ReportServerVirtualDirectory element is missing"
Lösung:
in der Datei RSWebApplication.config im Verzeichnis "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager"
im Knoten <ReportServerVirtualDirectory></ReportServerVirtualDirectory> den Servernamen wie folgt eintragen:
<ReportServerUrl>http://ServerName/Reportserver</ReportServerUrl>
3)
Es folgte ein HTTP: 500 Fehler "The request failed with HTTP status 503: Service Unavailable."
Lösung:
iisreset in der Kommandozeile
so, ich hoffe das hilft dem Nächsten, etwas Zeit zu sparen
Andreas Wolter Training & Consulting
SQL Server Suite Trainings
Da ich keinen sinnfreien Testeintrag hier sehen will, starte ich den blog mit einer simplen Erkenntnis der letzten Zeit:
Wenn man unter Reporting Services 2005 die CatalogItem.Type Property ausliest um anhand des Typs herauszufinden, ob man beim Durchforsten eines Verzeichnisses via Script gerade einen Folder oder einen Report vor sich hat, führt einen die Onlinehilfe leider etwas in die Irre.
Dort steht an Position 5 "Model" - insofern man sich die hinterlegte Reihenfolge nummeriert und bei 0 beginnend denkt - der Rest passt dann auch. (BOL: ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.de/rswsref9/html/5dd84886-9d10-491e-be89-2f3be2ad03fc.htm )
Tatsächlich aber steht der Typ 5 für "DataSource"
hier die vollständige Übersicht:
CatalogItem.Type:
0 - Unknown
1 - Folder
2 - Report
3 - Resource
4 - Linked Report
5 - DataSource
6 - Model
- for your convenience ;-)
Andreas Wolter Training & Consulting
SQL Server Suite Trainings