Andreas Wolter - SQL Server & BI blog

Adressen für geographische Daten, ESRI-Shapefiles

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.

 

Spatial Data at MIT
http://libraries.mit.edu/gis/data/index.html
diverse Links zu Kartendaten auch außerhalb USA
MapCruzin.com
http://www.mapcruzin.com/...
kostenloses Kartenmaterial der ganzen Welt!, sowohl politische  als auch physische Kartentypen, bis teilweise sogar auf Straßen/Gebäudeebene
Natural Earth
http://www.naturalearthdata.com/downloads/
Diverse weltweite Karten mit Grenzen und auch physischer Struktur
Bundeswahlleiter
http://www.bundeswahlleiter.de/...
Karten der Wahlkreise, gut zum Spielen da auch die Wählerstimmen downloadbar sind.
   
   

 

Diverses:

 

Sonstiges:

MsSQLSpatial http://mssqlspatial.codeplex.com/ spatial Datentyp-Erweiterung für SQL Server 2005
Spatial Tools mit Shapefile Uploader

http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx

Tools zum import von ESRI-Shapefiles in SQL Server und betrachten der Daten

 

 

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

Integration Services: Looping & “continue on error”

 

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):

SSIS_EventPropagation_standard

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

SSIS_EventPropagation_SystemVariablePropagate 

 

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:

SSIS_EventPropagation_Result

Der Fehler im Task wird abgehandelt, und die Arbeit wird fortgesetzt.

 

happy coding :)

 

Andreas Wolter


Sarpedon Quality Lab

SQLCon Session “Anspruchsvollere Berichte mit Reporting Services 2008”

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)

Tablix_with_multiple_Groups

Charts

–Dynamisches Wachstum
–Trendlines einbauen, Pareto-Charts
–Multiple Charts

dynamic_chart_size

chart_calculates_series

Gauges

–Varianten und Customizing

Gauges

Kombinationen

–Charts und Gauges innerhalb von Tablix (Microcharts)

Microcharts

Weitere „Angenehmlichkeiten“

–Felder in Page Header & Footer
–Placeholder

Hinweise auf Weitere interessante Neuerungen

Ausblick SQL Server 2008 R2

–Map Control
–Componentizing Reports

Map

 

bis zum Nächsten mal,

 

Andreas Wolter


Sarpedon Quality Lab

Neuer Webauftritt + Gewinnspiel

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

 

Reporting Services 2005 on Windows Server 2008 (and Vista) - IIS configuration

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:

 

Web Server

Common HTTP Features

   Static Content

   Default Document

   HTTP Errors

   HTTP Redirection

Application Development

   ASP.NET

   .NET Extensibility

   ASP

   ISAPI Extensions

   ISAPI Filters

Health and Diagnostics

   HTTP Logging

   Request Monitor

Security

   Windows Authentication

   Request Filtering

Performance

   Static Content Compression

Management Tools

   IIS Management Console

   IIS 6 Management Compatibility

   IIS 6 Metabase Compatibility

   IIS 6 WMI Compatibility

   IIS 6 Scripting Tools
 
   IIS 6 Management Console


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 on Windows Server 2008 for Reporting Servives 2005

 

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

 System_Configuration_Check_Sql_Server_2005_Setup_IIS_Reporting_Services

 

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".

IIS_Manager_Handler_Mapping_for_Reporting_Services_2005

 

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

 

Europäische PASS Konferenz 2009 zu SQL Server vom 22.-24. April in Neuss

Ü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

European PASS Conference 2009

Andreas Wolter Training & Consulting

SQL Server Suite Trainings

Reporting Services 2005 x64 Fehlermeldungen bei der Installation unter Windows Server - mit Lösungen

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

Reporting Services CatalogItem.Type Property

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