blog.atwork.at

news and infos about microsoft, technology, cloud and more

SQL - wie speicherst du? Oder: Planen eines SQL Server Systems

Die heute übliche Hardware für ein SQL Server System wird zumeist schon von Beginn an sehr groß dimensioniert: Quadcore-(Multi)-CPUs, 64bit-System, 4GB oder mehr RAM und große, schnelldrehende Festplatten (SAS, SAN & Co) vielleicht sogar mit einem RAID 10 (bitte kein RAID 5...). Damit ist im Regelfall ausreichend Kapazität vorhanden, um auch größere Datenbanken vernünftig betreiben zu können. Wenn sich ein Engpass ergibt, so kann das meist durch weitere CPUs und mehr RAM behoben werden. Aber wie ist das mit der Festplatten-Performance? Lässt sich diese weiter steigern? Nachdem kaum eine Datenbank komplett im Speicher gehalten werden kann, ist das Auslagern, Nachladen, Indizieren und Schreiben von Transaktionen und Commitment ein wichtiger Index für die Gesamt-Leistung des SQL Systems. Und oft ist der Flaschenhals im IO-Subsystem zu finden! Oder umgekehrt: Kann man auch schon im Vorhinein Aussagen über die Leistung eines SQL Server-Systems treffen und die IO Performance messen? Genau zu diesem Zweck gibt es das SQLIO.exe Tool und die (englische) Seite Predeployment I/O Best Practices. Die Aussagen beziehen sich zwar auf SQL Server 2005, dürften aber ebenso auf SQL Server 2008 anwendbar sein. Diese Tabelle von Predeployment I/O Best Practices zeigt eine Übersicht der nützlichen Tools, ich habe auch gleich die Download bzw. Info-Links beim Tool hinterlegt: Tool Zweck I/O Muster Hersteller  SQLIO Performance capacity User defined—Single I/O type at a time Microsoft IOMeter Performance capacity User defined—Allows combinations of I/O types Open Source SQLIOSim Functional correctness Simulates SQL Server I/O patterns Microsoft ...und noch die folgenden Links zum Thema: Disk Subsystem Performance Analysis for Windows  Storport in Windows Server 2003: Improving Manageability and Performance in Hardware RAID and Storage Area Networks. Wie so oft gilt: Viel nachzulesen und zu testen. Ich denke aber, proaktives Planen ist besser als reaktives Ärgern. ;-) Beitrag von Toni Pohl

Windows Sysinternals Live-Run und Download im TechNet

Wahrscheinlich kennen und benutzen Sie die Utilities von Sysinternals? Diese kleinen Programme sind als kostenlose Tools verfügbar und helfen im täglichen Einsatz und in der Administration von Windows Systemen. Die Tools sind überaus nützliche Helferlein für Datenträgerverwaltung, Sicherheits-, Netzwerk- und Prozessüberwachung und Diagnose. Auf der Sysinternals-Website im TechNet finden Sie alle Informationen zu den 1996 von Mark Russinovich und Bryce Cogswell ins Leben gerufenen Sysinternals-Tools. Nun sind alle Tools gesammelt auf einem Download-Ort und damit auch direkt startbar. Damit entfällt das mühsame Suchen und das einzelne Downloaden, alle Tools sind direkt von live.sysinternals.com abrufbar: Das ReadMe in live.sysinternals.com informiert über die Vorteile des direkten Downloads ;-). Fragen und Antworten über die Beschreibungen der einzelnen Tools hinaus finden Sie im Sysinternals-Forum. Viel Spaß beim Nachlesen und Ausprobieren der vielen Sysinternals-Tools! Beitrag von Toni Pohl

SQL Server 2008 Report Builder 2.0 RC1

Seit ein paar Tagen gibt es im Microsoft Download Center den SQL Server 2008 Report Builder 2.0 RC1 downzuladen. Dies ist der englische Release Candiate des neuen Report-Designers, welcher für Endbenutzer im Stil von Office 2007 (also mit Ribbons) entwickelt wurde. Damit sollen Power-User leicht eigene Reports erstellen und verwenden können, ohne Entwickler zu bemühen. Reports können damit auch direkt vom Server geöffnet und bearbeitet werden, es gibt Assistenten (next, next finish ;-)) und einen Abfrage-Builder. Ein paar frühe Screenshots finden sich auch im Blog von Steffen Krause. Der Report Builder wird sicher eine sehr interessantes Lösung! Beitrag von Toni Pohl

Kostenloses Anti-Virus-Zeugs

Für Privat-Anwender gibt es (zum Glück) mittlerweile eine Reihe von kostenlosen Virensuch- und Virenschutz-Programmen. Jörg Klemenz hat sich die Mühe gemacht, in seinem Blog C-Ko einige davon aufzuspüren (wie zum Beispiel Avast) und diese zu beschrieben und mit Links zu versehen. Sehen Sie am besten selbst im Blog hier: http://c-ko.blogspot.com/2007/02/kostenloses-anti-virus-zeugs.html

Tool gegen SQL Injection

Seit Ende Juni gibt es eine Hilfe für Entwickler und IT-Administratoren gegen SQL Injection in Websites vom Typ classic asp und zwar den Microsoft Source Code Analyzer for SQL Injection - June 2008 CTP (siehe auch Beitrag Totgesagte leben länger - so auch SQL-Injection). Das Tool benötigt das Microsoft .Net 3.0 Framework und ist ein Command line-Utility. Nach Entpacken des Download-Pakets empfiehlt sich daher ein erster Blick in Readme.html. Um eine einzelne asp-Seite zu prüfen, wird diese einfach mit dem /Input-Parameter aufgerufen: msscasi_asp.exe /Input=C:\wwwroot\myweb\login.asp Das Ergebnis könnte dann beispielsweise so aussehen: Microsoft (R) Source Code Analyzer for SQL Injection Version 1.3.30601.30622Copyright (C) Microsoft Corporation.  All rights reserved. RESULT has no typeC:\wwwroot\myweb\shopfunc.asp(600) : warning C80420: Unvalidated function parameter possibly executed. Reported by Microsoft (R) Source Code Analyzer for SQL Injection on tracked object SQL (created as THEGUID`591). Path summary:- {THEGUID}[THEGUID`591 : string_input] created on 'Parameter' (line 591)- {THEGUID}[THEGUID`591 : string_input] to {SQL, THEGUID}[THEGUID`591 : string_input] on 'Transfer' (line 599)- {SQL, THEGUID}[THEGUID`591 : string_input] to {SQL, THEGUID}[THEGUID`591 : $error] on 'Execute' (line 600): Lines: 591, 596, 599, 600 C:\wwwroot\myweb\shopfunc.asp(833) : warning C80420: Unvalidated function parameter possibly executed. Reported by Microsoft (R) Source Code Analyzer for SQL Injection on tracked object SQL (created as TABID`825).There are other instances of this error:Unvalidated function parameter possibly executed. Reported by Microsoft (R) Source Code Analyzer for SQL Injection on tracked object SQL (created as TABID`825).(line 843) ...etc. In dieser geprüften Seite werden also einige Meldungen ausgeworfen - Handlungsbedarf für den Entwickler. Das Tool kennt sechs Fehler: 80400, 80403, 80406, 80407, 80420 or 80421, wobei 80400-Warnungen die höchste Priorität besitzen und sofort behoben werden sollten. Wenn keine Meldungen ausgegeben werden, ist die Seite in Ordnung: msscasi_asp.exe /Input=C:\wwwroot\myweb\datefunc.asp Microsoft (R) Source Code Analyzer for SQL Injection Version 1.3.30601.30622Copyright (C) Microsoft Corporation.  All rights reserved. Weitere Schritte (und wie ganze Websites geprüft werden können) finden Sie in Getting started with Microsoft Source Code Analyzer for SQL Injection. Das Tool ist somit eine einfache Hilfe für den Security-Check von ASP-Websites. Beitrag von Toni Pohl

Für IT Professionals und solche, die es werden soll(t)en: Microsoft Baseline Security Analyzer 2.1

Schon ein Monat ist er alt - aber vielen (noch) unbekannt: Der Microsoft Baseline Security Analyzer 2.1 für Windows (MBSA). MBSA ist ein einfaches, kostenfreies Tool, welches ermöglicht den Sicherheitsstatus eines Windows-PCs anhand der Sicherheitsempfehlungen von Microsoft zu ermitteln. Dabei können übliche Schwachstellen und fehlende Patches entdeckt und die Systemsicherheit verbessert werden. MBSA ist vor allem für KMUs gedacht. Der Analyzer kann mit und ohne WSUS arbeiten. Das Tool enthält ein grafisches und ein Commandline-Interface und kann auch Remote Scans ausführen (also fremde PCs prüfen). MBSA 2.1 läuft ab Windows 2000 Service Pack 3 bis hin zum neuen Windows Server 2008, als x32 oder x64bit Applikation - je nach Betriebssystem gibt es mitunter einige Einschränkungen. Was ist neu an MBSA 2.1? Die neue Version unterstützt den aktuellen Windows Update Agent client (WUA - von Microsoft Update oder WSUS-Servern installiert), ebenso ein neues grafisches Interface für Vista und Windows Server 2008, vollen 64bit-Support, vulnerability assessment check support (VA - ja, was wär das Leben ohne tolle Abkürzungen?) und aktualisierte Checks für SQL Server 2005 und Windows XP Embedded platforms. Nach der Installation (als Administrator!) erfolgt die Überprüfung in einfachen Schritten: Das Ergebnis sieht dann beispielsweise so aus: Ein leicht zu lesender Report, der die einzelnen Themen übersichtlich zusammenfasst und zu jedem Thema Hinweise zur Überprüfung, zu den ermittelten Details und teilweise auch Links zur Behebung der Schwachstelle liefert. Beim Anklicken eines Links wird der entsprechende Report im Browser geöffnet. Hier geht es zum Download und zu den wirklich ausführlichen FAQs. Ein brauchbares Tool! Wir wünschen Secure Computing! Beitrag von Toni Pohl

Brauchbares SQL für HOT und COLD

Sind Sie Datenbank-Administrator oder Software-Entwickler? Interessiert Sie SQL-Server Technik? Wenn ja, dann kennen Sie wahrscheinlich Anforderungen wie diese: Hatten Sie schon einmal das Problem zwei Datenbanken vergleichen zu müssen? Oder eine Datenbank zu erweitern? Und das Ganze möglichst automatisiert? Ich habe diese Anforderung ... sehr oft. Es gibt eine Applikation, einmal HOT (Echtdaten) und einmal COLD (Demodaten) - die Benutzer verwenden HOT zum Arbeiten und COLD zum Testen. Es beginnt dann besonders interessant zu werden, wenn in der Demodatenbank neue Funktionen und Erweiterungen eingebaut werden. Diese werden getestet, Anwender geben Daten ein - und wollen dann auf einmal, dass die eingegebenen Daten in das Echtsystem übernommen werden. Leider war der Split der Datenbank-Version schon vor einem Monat und die Scripts zum Erweitern der HOT-Datenbank haben ihren Weg zum Administrator nicht gefunden. Und der steht nun da und weiß nicht, welche Schema-Änderungen durchzuführen sind, damit beide Systeme die gleichen Struktur haben, damit dann die Daten übernommen werden können. Klingt zu übertrieben? Glauben Sie mir, so etwas (und ähnliche Anforderungen) passiert in der Praxis öfters - vor allem bei rasch wachsenden Systemen. Da wäre es natürlich gut, sich helfen zu können. Zunächst einmal gibt es im SQL Management Studio im Kontextmenü immer den SCRIPT-Befehl: Diese Funktion schreibt dann beispielsweise ein ALTER des Objekts in ein File zum Ausführen auf dem Zielsystem. Das ist sehr brauchbar aber eben manuell. Wie kann Scripten und Vergleichen automatisiert werden? Hier hilft T-SQL weiter. Im SQL Server 2005 wurden die (kryptischen) Abfrage-Mechanismen des Vorgängers SQL Server 2000 durch neue Views im Schema sys ersetzt. Damit ist es nun bequem möglich, Datenbank-Objekte abzufragen. Hier nun ein paar praktische Beispiele: -- Anzeige aller Objekteselect * from sys.sysobjects order by xtype, name Liefert alle Objekte aus dem Systemkatalog. xtype gibt dabei an, um welchen Objekt-Typ es sich handelt (siehe unten). -- Anzeige aller Tables in einer DB:sp_tables -- Anzeige aller Views (0..Default Microsoft Views, 1..eigene Views):SELECT * FROM sys.all_views WHERE is_ms_shipped = 1 -- Detaillierte Anzeige aller Spalten-Informationen einer Tabelle:SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'produkte' -- SQL einer Stored Procedure anzeigen:sp_helptext 'spMeinProgramm' Durch ein JOIN mit Syscomments können auch die dahinterliegenden SQLs angezeigt werden! Somit funktioniert die Anzeige beispielsweise aller Views und der verwendeten SQL-Befehle so: select o.id, o.name, c.text from sysobjects o join syscomments c on o.id=c.id where xtype='V' order by id, colid /* -- xtype Werte:C = CHECK constraintD = Default or DEFAULT constraintF = FOREIGN KEY constraintL = LogFN = Scalar functionIF = Inlined table-functionP = Stored procedurePK = PRIMARY KEY constraint (type is K)RF = Replication filter stored procedure S = System tableTF = Table functionTR = TriggerU = User tableUQ = UNIQUE constraint (type is K)V = ViewX = Extended stored procedure*/ Mit diesen Werkzeugen können zum Beispiel alle Schemas oder SQLs (von Views, SPs od. Funcs) in eine Tabelle geschrieben werden. Diese könnte dann in einer Stored Procedure mit einer ebenso erzeugten Tabelle in einer anderen Datenbank vergleichen werden und die Unterschiede auswerfen. Oder die Tabelle als Textdatei exportiert werden und dann die beiden Files (z.B. mit Windows-Bordmitteln: fc.exe oder mit WinDiff - ja, das gibt es noch immer) verglichen werden. Die Vorgangsweise hängt natürlich vom erwünschten Ziel ab: Eine Automatisierung als Stored Procedure um alle unterschiedlichen Views, Stored Procedures und Functions auszuwerfen, oder per SSI, oder.... Also recht individuell. ;-) Der Knackpunkt für mich war, herauszufinden, wie man zu den SQL-Befehlen in den gespeicherten SQL-Objekten gelangt. Und das liefert eben das JOIN mit Syscomments zur weiteren Verarbeitung oder zum Parsen für komplexere Anwendungen (Ja, ich weiß: Die Schemata's können natürlich auch mit ADO.NET ausgelesen und verarbeitet werden - für einfache Anforderungen ist T-SQL jedoch gut geeignet). Achja, noch ein SQL zur Performance-Messung: Dynamic Management Views (DMV) liefern Informationen über den aktuellen Auslastungszustand des SQL Servers. Zum Beispiel ein Snapshot der aktuellen Aktivität eines SQL Servers: SELECT object_name, counter_name, instance_name, cntr_value FROM sys.dm_os_performance_counters WHERE counter_name IN ('Buffer cache hit ratio', 'User Connections', 'Transactions' , 'Average Wait Time (ms)', 'Transactions/sec', 'Errors/sec', 'Target Server Memory (KB)', 'Total Server Memory (KB)' )ORDER BY object_name, counter_name Diesen Output wieder periodisch in eine Tabelle schreiben, somit Daten über längere Zeiträume sammeln und mit Reporting Services auswerten. Und so weiter... SQL Server ist eine große Spielwiese ein DBMS mit vielfältigen Möglichkeiten! Beitrag von Toni Pohl

Vista klonen und starten

Zur Neuinstallation von PCs ist es (besonders bei gleichen Maschinen) sehr bequem, einen PC als Muster aufzusetzen und diesen dann zu duplizieren. In kleineren Firmen hat man jedoch oft kein Windows Deployment Services (WDS - übrigens der Nachfolger von RIS) zur Verfügung. Ohne WDS hilft dann ein manuelles Klonen mit einer eigenen Software. Das Image wird als File oder direkt auf eine andere Festplatte, DVD, auf ein anderes Speichermedium oder auch auf einen FTP-Server geschrieben und von dort wiederhergestellt. Dazu gibt es eine Reihe von Tools, beispielsweise auf der kommerziellen Seite Acronis True Image, Symantec Ghost, R-Drive Image, als Freeware Clone Maxx, DiskImage, g4u, Clone Disk Generator und viele weitere. Unter Vista kann es allerdings nach einer Image-Wiederherstellung passieren, dass der Bootloader "bootmgr" seinen Dienst verweigert und Vista nicht starten kann - dann folgt meist eine Meldung, dass winloader.exe nicht geladen werden kann. Genau das ist mir passiert. Zunächst dachte ich, dass die Clone-Software das Image nicht korrekt geschrieben hat, erst danach kam die Erleuchtung. Und diese möchte ich natürlich hier weitergeben. ;-) Wie repariert man in diesem Fall ein nicht startfähiges Vista? Starten von WinPE (Booten von der Vista-DVD) und Reparieren von Vista - das Reparatur-Programm erkennt das Startproblem im Regelfall automatisch und behebt dieses. Oder manuell in der Command-Line: bcdedit /set {bootmgr} device partition=c:bcdedit /set {default} device partition=c:bcdedit /set {default} osdevice partition=c: Eine ausführliche Beschreibung zu bcdedit finden Sie in Boot Configuration Data Editor Frequently Asked Questions. Beim Aufruf des Tools in der Vista GUI müssen Sie die Command-Line als Administrator öffnen!Ganz brauchbar: mit bcdedit /export C:\bcdbackup erstellt man beispielsweise vor solchen Manipulationen ein Backup in das angegebene File. Es existieren auch eine Reihe von freien Tools wie Vista Boot PRO und EasyBCD, welche die Bearbeitung des Bootloaders (anstelle von bcdedit) vereinfachen - siehe auch Beitrag im Vistablog. Und bei dieser Gelegenheit sollen auch die "Legacy" Windows Versionen (XP, 2000, 2003 Server) nicht zu kurz kommen: hier besteht der Bootloader aus ntdetect.com, ntldr und boot.ini. Boot.ini besitzt eine Reihe von Schaltern, zum Beispiel für die Verwendung von mehr als 3GB RAM unter 32bit Betriebssystemen. Diese finden Sie in Boot INI Options Reference aufgelistet und erklärt. Happy starting! Beitrag von Toni Pohl

Was kommt raus, wenn man die Outlook "Inbox" umdreht?

Die Antwort ist verblüffend einfach: "Xobni" (sprich "Zob-ni"). So nennt sich eine amerikanische Mini-Firma aus San Francisco, bestehend aus einer Handvoll Jung-Zwanzigern, die ein cooles PlugIn für Microsoft Outlook entwickelt haben. Was kann das PlugIn? Xobni installiert ein eigenes Panel in Outlook und spart Zeit, indem es emails, Kontakte und Attachments indiziert, in Verbindung setzt und eine schnelle Suche darauf ermöglicht. Was ist das Besondere an Xobni? Nun, zunächst einmal hat sogar Bill Gates das Tool Xobni als "the next generation of social networking" bezeichnet.Warum? Weil Xobni für jede E-Mail, jedes Attachment und jede Person ein Profil erstellt und diese Informationen in Beziehungen umsetzt. Das wiederum ist Basis für die schnelle und umfangreiche Suche in einer aufgeräumten Microsoft-konformen Oberfläche. Das PlugIn läuft unter Windows XP oder Windows Vista mit Office 2003 und Office 2007 und benötigt das Microsoft .NET Framework 2.0 oder höher. Alle System-Voraussetzungen finden sich in den FAQs. Für den persönlichen Gebrauch ist Xobni gratis. Der Download ist hier zu finden. Die Installation erfolgt mit ein paar Klicks in gewohnter Next-Next-Finish-Manier. Beim ersten Starten von Outlook beginnt das erstmalige Indizieren.   Also gleich mal downloaden und ausprobieren...(Dummerweise bin ich gerade über VPN, einem anderen User-Profil und im Nicht-Cached-Modus mit meinem Exchange-Server verbunden - das dauert natürlich... aber nach etwa 15 Minuten waren meine 6000 mails auch über die langsame ADSL-Leitung geladen und indiziert.) Nun, hier mal der Überblick über die Funktionalität: Während Xobni mein Postfach indiziert bin ich gerade begeistert, dass auch Statistiken erzeugt werden: Ich antworte meinem Kontakt "Herbert" durchschnittlich innerhalb von 6 Minuten auf seine E-Mails - das ist meine beste durchschnittliche Antwortzeit - nicht wirklich wichtig, aber interessant! Beim Indizieren sucht das Tool auch nach den Kontaktdaten der E-Mail Absender und Sender, extrahiert gleich deren Kommunikationsdaten und es werden die Statistiken erzeugt. So, fertig indiziert macht die Verwendung schon richtig Spaß.Das Xobni-Panel integriert sich in Outlook.So sieht´s aus. Bemerkenswert: Xobni versucht, Telefonnummern nicht nur von den eigenen Kontakten, sondern auch aus dem E-Mail-Body und E-Mail Signaturen zu lesen und zum Profil hinzuzufügen!Das Quickinfo auf die Telefonnummer zeigt, von wo die Telefonnummer ermittelt wurde. Was mir sehr gut gefällt: es ist sofort in der Statistik ersichtlich, wie viele E-Mails an den Kontakt gesendet (hier: OUT 34) und vom Kontakt empfangen wurden (hier: IN 102) wurden, und auch zu welchen Zeiten mit dem Kontakt kommuniziert wird (hier: zu den üblichen Büro-Arbeitszeiten, mit Spitzen um die Mittagszeit).Nebenbei gibt´s auch noch einen Rang (hier: Rank: #10) - wohl gereiht nach Anzahl der E-Mails. In der Gruppe xy´s  Network sind alle Kontakte der angezeigten Person sichtbar - und klickbar. Hier kann man sich schön "durchklicken" und so von Kontakt zu Kontakt springen wie im Screenshot oben: Gregor - Martin - Franz - Bernd - usw.   Beim Öffnen der "Conversations" - also der E-Mails - gibt´s einen hilfreichen Schieberegler, der die Größe der angezeigten E-Mai-Inhalte steuert. Praktisch!Das Gute dabei: Nachdem Xobni ein eigens Panel in Outlook öffnet, ist die Original-Nachricht in der Outlook-Vorschau immer sichtbar. Somit kann man sich leicht darauf beziehen oder Inhalte kopieren.Der Back-Button zeigt wie gewohnt einfach jeweils die vorige Seite an. Fürs Handling sehr praktisch. Conversations öffnet die markierte E-Mail und zeigt gleich Links zum Ansehen, Antworten etc. Sehr hilfreich: Keine Suche nach Attachments mehr!Im Panel unterhalb der Conversations werden automatisch alle Attachments in einer Liste angezeigt. Die Suche in Xobni funktioniert - wie in Outlook selbst - erwartungsgemäß schnell während der Eingabe. Last but not least: Analytics - Statistik auf Knopfdruck.Hier muss man sich durchklicken - so umfangreich werden die E-Mail und Kontakt-Zahlen auf Tag, Woche, Monat, Jahr sowie die Durchschnittswerte berechnet und dargestellt.Nun gibt´s eine Statistik über meinen E-Mail-Verkehr. Auch ganz hübsch: das eingeklappte Xobni-Panel mit Überblick über das Postfach bzw. den aktuellen Ordner.Ein kleiner Wehrmutstropfen: Das Xobni-Panel selbst kann im geöffneten Zustand nicht mehr verschmälert werden. Ein Widescreen macht (aber generell auch bei Outlook) Sinn ;-) Links: www.xobni.com Auch die New York Times berichtet über Xobni Suche nach Beziehungen im blog von Thomas Lutz Hands-on with Xobni: make Outlook more productive, social softundtippsblog.lutz-nelde.de Fazit: Für intensive Outlook-Benutzer - und wer ist das nicht ;-) - ein interessantes PlugIn, das wert ist, angeschaut zu werden: . Viel Spaß! Beitrag von Toni Pohl

Der ultimative Viren-Scanner

Für Nicht-kommerziellen-Home-Use gibt es eine Reihe von Empfehlungen für den Virenscanner avast. avast des tschechischen Software-Herstellers ALWIL besitzt eine integrierte Anti-Spyware, Anti-Rootkit und eine Selbstschutzfunktion. Das Setup ist sehr einfach und das look & feel ansprechend - sprich einen Tipp wert! avast kann bis zu 60 Tage lang getestet werden, für die private Benutzung zu Hause ist danach nur eine Online-Registrierung nötig. Siehe auch die Artikel in Vistablog und WinFuture. Hier gehts zur Download-Seite von avast Home.

Aus Alt mach Neu in SQL Server Reporting Services

Auch wenn mittlerweile SQL Server 2008 in den Startlöchern steht - die Realität sieht zumeist (viel) älter aus. So hatte ich vor kurzem einen Datenbankumstieg, wo von einem alten Datenbankserver auf einen neuen zu migrieren war. Die Datenbank selbst war zwar SQL Server 2005, das war jedoch ein Upgrade von einem SQL Server 2000. Eigentlich kein Problem, doch passten die (beim 2000er SQL Server noch zusätzlich zu installierenden) Reporting Services nicht zur DB-Version 2005 und waren noch RS 2000 SP2. Die Reporting Services (RS) sind übrigens Bestandteil des SQL Servers und bieten Report-Erstellung, Management und eine skalierbare Bereitstellung. Eine Weboberfläche am Reporting Server dient zur Administration, die Bereitstellung kann per URL oder auch per Webservice erfolgen. Nachdem es bei unserer Umstellung ein paar Stolpersteine gab, hier ein paar Tipps für den Umstieg SQL Server 2000 Reporting Services auf 2005. Die RDL-Syntax: Die Übernahme der Reports in die neuen SQL 2005 RS war problemlos, außer dass ich die Erfahrung gemacht habe, dass RS 2005 Syntax-Fehler nicht verzeiht. So kam bei einem Report ein Fehler in einer "Hidden"-Eigenschaft (das wars auch schon mit dem Hinweis, wo der Fehler zu suchen war). Nach Ansicht der Report-Codeansicht mit Taste F7 und manuellen Durchsehen aller Hidden-Ausdrücke war der Schuldige identifiziert: =iif(trim(Fields!SEM_Text1.Value) <> "", Fields!SEM_Text1.Value, "") Nun Hidden erwartet True oder False - in meinem Fall stand hier aber fälschlicherweise ein Stringausdruck. Klar, so kann das nicht funktionieren. Also Zeile(n) ausbessern und ausprobieren: =iif(trim(Fields!SEM_Text1.Value) <> "", False, True) Jetzt funktioniert der Report auch in 2005. Fein! Noch ein Hinweis zum RDL-Format: Mit 2005 wurde das RDL-Format erweitert und ist nicht mehr abwärtskompatibel. Report-Dateien (.rdl) für RS 2005 können aber nach wie vor mit Visual Studio 2003 erstellt und verändert werden. Reports aus VS 2005 werden jedoch im Format RS 2005 gespeichert. Diese Reports können dann nicht mehr mit VS 2003 bearbeitet werden. RS versteht aber beide Formate. Nach Lösen dieses Problems kam dann eine weitere Hürde. Automatisiertes Erstellen von Reports per Script: In unserem Szenario haben wir einfache Scripts mit dem RS.exe Tool verwendet, um Reports zu bestimmten Zeiten automatisch als PDF-File zu erstellen. Eigentlich eine sehr praktische Sache. Dummerweise klappten die Scripts mit RS 2005 nicht mehr... Der Aufruf von rs.exe per Scheduled Tasks erfolgt so: C:\>rs -i D:\Tasks\testrs.rss -s http://db1/ReportServer$atwork test.rss ist ein VB Script, welches vom .NET VB-Compiler verarbeitet wird: ' File: testrs.rss by atworkDim format as string = "PDF"Dim fileName as String = "D:\Tasks\myreport.pdf"Dim reportPath as String = "/mydir/myreport"Public Sub Main()    ' Prepare Render arguments    Dim historyID as string = Nothing    Dim deviceInfo as string = Nothing    Dim showHide as string = Nothing    Dim results() as Byte    Dim encoding as string    Dim mimeType as string = "pdf"    Dim warnings() AS Warning = Nothing    Dim reportHistoryParameters() As ParameterValue = Nothing    Dim streamIDs() as string = Nothing    rs.Credentials = System.Net.CredentialCache.DefaultCredentials    ' Report with Parameters     Dim parameters(0) As ParameterValue    parameters(0) = New ParameterValue()    parameters(0).Name = "id"    parameters(0).Value = "1234"    results = rs.Render(reportPath, format, Nothing, Nothing, parameters, Nothing, Nothing, encoding, mimeType, reportHistoryParameters, warnings, streamIDs)    ' Open a file stream and write out the report     Dim stream As FileStream = File.OpenWrite(fileName)    stream.Write(results, 0, results.Length)    stream.Close()End Sub Der RS-Aufruf erzeugte den Fehler: Microsoft (R) Visual Basic Compiler version 8.0.50727.832 for Microsoft (R) .NET Framework version 2.0.50727.832 Copyright (c) Microsoft Corporation.  All rights reserved.C:\Documents and Settings\atwork\Local Settings\Temp\1\zv3y0cit.1.vb(60) : errorBC30456: 'Render' is not a member of 'Microsoft.SqlServer.ReportingServices2005.ReportingService2005'.    results = rs.Render(reportPath, format, Nothing, Nothing, parameters, Nothing, Nothing, encoding, mimeType, reportHistoryParameters, warnings, streamIDs)              ~~~~~~~~~ Ok, also die Render-Methode funktioniert angeblich nicht mehr. Also nach der Ursache forschen. Hier hatte ich netterweise Hilfe von Markus Oswald, unserem Microsoft PTC (Partner Technical Consultant), der mir auch den entscheidenden schnellen Workaround lieferte: RS 2005 läuft gegen den neuen 2005er SOAP Endpoint. Zum Glück wird der "alte" RS 2000 Endpoint des Webservices noch weiter unterstützt. Dazu ist nur bei Aufruf des RS-Tools der Schalter "-e mgmt2000" anzuhängen, um den alten Endpoint aufzurufen. Simple as that! C:\>rs -i D:\Tasks\testrs.rss -s http://db1/ReportServer$atwork -e mgmt2000 So klappt der Aufruf des neuen RS-Tools (und der Kunde freut sich darüber, dass es eine schnelle, einfache Lösung gibt und die automatisierten Dokumente wieder verfügbar sind)! Auch wenn das nur einer (von vielen) Lösungswegen ist (kurz dachte ich darüber nach, ein eigenes kleines .net Tool für die Konsumation des RS-Services zu schreiben...), zählte im aktuellen Fall die rasche Lösung und die gewohnte Funktionalität. Es führen viele Wege zu Reporting Services 2005! Beitrag von Toni Pohl

Boot-Medium erstellen, OS reparieren, Tools und mehr

Ist ihr Betriebssystem defekt? Brauchen Sie ein Helferlein? Bootdisk oder Boot-CD nötig? Booten vom USB-Stick? Schauen Sie doch mal auf Bootdisk.com! Achja, das c´t Magazin bietet die aktuelle Version von BART PE zum Download an. Dabei sind in der neuesten Version von Bart PE in der "PE Builder c't-Edition 3.1.10a Spezialversion" auch viele nützliche Tools, von Antivir 2008 bis zum Hardwaretest und zur Surfstation mit Windows PE enthalten (siehe auch c´t Magazin 26/2007, S. 104).