Blog.
Windows 7 auf dem AspireOne 150X
03. January 2009
Nur ein kurzer Zwischenstand: Es läuft prima.
Später mehr.
Kategorisiert als Windows 7 | Keine Kommentare
T-Mobile und das Vertragschaos
30. December 2008
Achtung: Wer wie ich bei der letzten T-Mobile-Aktion ein Netbook inkl. eines UMTS-Stick bestellt hat, sollte eigentlich per web'n'walk L-Tarif über eine Flatrate surfen - leider hat das T-Mobile nicht hinbekommen bzw. falsch eingerichtet, so dass auf der Rechnung nun der web'n'walk M-Tarif ausgewiesen ist, nebst den GPRS/UMTS-Gebühren über eine nicht zu unterschätzende Summe. Ein Anruf bei der Hotline bringt das zwar schnell in Ordnung, ich rate aber zur Kontrolle...
Kategorisiert als Vermischtes | Keine Kommentare
AutoComplete-Extender und Key/Value-Paare
26. December 2008
Kleine Notiz an mich selber: Der AutoCompleteExtender des AjaxControlToolkit kann durchaus auch Key/Value-Paare speichern und entsprechend weitergeben.
Zuallererst den entsprechenden Code in die ASPX verfrachten:
<asp:TextBox ID="TextBox1" runat="server" autocomplete="off">
</asp:TextBox>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="TextBox1"
ServiceMethod="GetCompletionList" ServicePath="AutoComplete.asmx" Enabled="True"
OnClientItemSelected="fnAutoCompleteItemSelected">
<Animations>
<OnHide>
<ScriptAction Script="fnClearHiddenIDField()" />
</OnHide>
</Animations>
</cc1:AutoCompleteExtender>
Dazu dann noch ein wenig JavaScript, damit auch der Value ausgewertet werden kann:
function fnAutoCompleteItemSelected(source, eventArgs)
{
$get('<%=this.HiddenField1.ClientID%>').value = eventArgs.get_value();
$get('<%=this.Button1.ClientID%>').click();
}
function fnClearHiddenIDField()
{
$get('<%=this.HiddenField1.ClientID%>').value = '';
}
Und zuguterletzt noch das entsprechende Code-Behind:
items.Add(
AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(
"Text", "Value"));
Kategorisiert als C# | Keine Kommentare
Doppelte Datensätze im SQL Server 2005 mittels CTE und Ranking-Funktion löschen
20. December 2008
Im Rahmen eines SQL Workshop, den ich in den letzten Wochen bei einem Kunden gehalten habe, kam die Frage auf, wie man denn am besten doppelte Datensätze in einer Tabelle löschen kann, ohne sich beim schreiben einer entsprechenden Prozedur die Finger zu brechen.
Bisher ging der Ansatz meist über eine GROUP BY- und verbundener HAVING-Klausel, um sich dann zu überlegen, wie man einen der dann gefundenen Datensätze auch in der Datenbank behalten kann – ich denke, an die Problematik erinnert sich jeder.
Der Ansatz über eine CTE und eine Ranking-Funktion ist viel eleganter. Angenommen, es existiert die folgende Tabelle:
CREATE TABLE TempTable
(
ID int,
Column1 nvarchar(255),
Column2 nvarchar(255)
)
Dann kann man die folgende CTE definieren:
WITH TempCTE() AS
(
SELECT
Column1, Column2,
DRank = DENSE_RANK() OVER(PARTITION BY Column1, Column2
ORDER BY NEWID() ASC)
FROM TempTable
)
Die Vorgehensweise sollte sich auf den zweiten Blick schnell erschließen – es wird eine CTE deklariert, die die Spalten Column1 und Column2 als Grundlage für die Partitionierung der Ranking-Funktion DENSE_RANK definiert, also quasi ein GROUP BY für das Ranking. Anzeigen und löschen kann man das Ganze dann wie folgt:
-- Anzeigen
SELECT * FROM TempCTE WHERE DRank > 1
-- Löschen
DELETE FROM TempCTE WHERE DRank > 1
Die CTE ist in diesem Falle natürlich nicht unbedingt erforderlich, da keinerlei rekursive Aufrufe stattfinden, aber vielleicht hilft es dem einen oder anderen ja weiter.
Kategorisiert als SQL Server | Keine Kommentare
Amazons Zeitrechnung
12. December 2008

Kategorisiert als Vermischtes | Keine Kommentare
Ist denn schon Weihnachten?
11. December 2008
DevExpress, seines Zeitens Hersteller von verschiedenen Controls bzw. Assemblies für Visual Studio, verlegt Weihnachten einige Tage nach vorne und verschenkt 60 Controls an die Entwicklergemeinde.

Nach einer kurzen Registrierung kann man die Controls herunterladen und auch in kommerziellen Anwendungen vertreiben.
Kategorisiert als Visual Studio | Keine Kommentare
PowerPoint 2007-Erweiterung
05. December 2008
Das AddIn pptPlex ist ein schickes, kleines AddIn, um Präsentationen nicht länger ausschliesslich linear vorführen zu müssen:
Näheres in den OfficeLabs.
Kategorisiert als Vermischtes | Keine Kommentare
Microsoft wirft das Handtuch
19. November 2008
Microsoft wirft das Handtuch, jedenfalls zum Teil, denn die Produktreihe um OneCare wird allem Anschein nach nicht in der jetzigen Form fortgesetzt.
Quelle: Windows Live OneCare Team Blog
Kategorisiert als Vermischtes | Keine Kommentare
Dynamische Pivot-Tabellen
12. November 2008
Pivot-Tabellen zu erstellen, deren Spaltenzahl und -beschriftung man nicht kennt, ist mittels dynamischem SQL und den damit verbundenen Einschränkungen (man denke an nvarchar(MAX)) einfach nervig. Wenn es jemanden interessiert, schreibe ich gerne mal, wie es halbwegs ordentlich geht.
Kategorisiert als SQL Server | 1 Kommentar
SQL Server-Aliase
12. November 2008
Kleiner Tip am Rande: Wer keine Lust hat, beispielsweise auf dem Webserver die SQL Server Client-Tools zu installieren, nur um ein paar Aliase für den SQL Server im SQL Server Connection Manager einzugeben, der kann auch wunderbar folgendes in eine Konsole hämmern:
c:\windows\system32\cliconfg.exe
Die zugehörigen Einträge stehen in der Registry übrigens unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\
Client\ConnectTo.
Kategorisiert als SQL Server | Keine Kommentare