Blog.

Windows 7 auf dem AspireOne 150X

03. January 2009

Nur ein kurzer Zwischenstand: Es läuft prima.

image

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