Über michMarcus Kimpenhaus

Beiträge vonMarcus Kimpenhaus:

 
0

Bereinigen einer Zeichenkette auf alphanumerische Zeichen via SQL

am Feb 20, 2009 in entwicklung

Heute stand ich vor der Problematik einen String welcher nicht-alphanumerische Zeichen beinhalten könnte auf eine alphanumerische Version “zusammenzuschrumpfen”.

Eine Suche bei google lieferte viele Ergebnisse, aber nicht alle halte ich für wirklich sinnvoll bzw. gut gelöst, sicher liefern sie ein Ergebnis – aber warum soll ich zum Lösen dieses Problems eine Tabelle anlegen – wie z.B. hier: Strim Strips Out Non-Alphanumeric Characters oder hier: Sql Server Tips – Removing or Replacing non-alphanumeric characters in strings beschrieben.

Eine tolle Lösung habe ich dann aber doch noch gefunden und zwar in einem Oracle-Forum *hüstel* RE: Remove non-numeric characters.

Das Ganze in eine StoredProcedure eingebaut könnte dann z.B. so aussehen:

CREATE PROCEDURE SetCompactArticleNumberOnArticle

AS
BEGIN

 DECLARE CompactArticleNumberCursor CURSOR FOR
 SELECT [GUID]
    , VersionNo
    , ArticleNumber
  FROM dbo.Article
 WHERE CompactArticleNumber IS NULL

 DECLARE @GUID UNIQUEIDENTIFIER
 DECLARE @VersionNo INT
 DECLARE @ArticleNumber NVARCHAR(22)
 DECLARE @CompactArticleNumber NVARCHAR(22)
 DECLARE @Position INT

 OPEN CompactArticleNumberCursor

 FETCH NEXT FROM CompactArticleNumberCursor into @GUID ,@VersionNo , @ArticleNumber

 WHILE @@FETCH_STATUS = 0
 BEGIN
  SET @CompactArticleNumber = @ArticleNumber;

  SELECT @Position = PATINDEX('%[^0-9a-Z]%', @CompactArticleNumber);

  WHILE @Position > 0
  BEGIN
   SELECT @CompactArticleNumber = STUFF(@CompactArticleNumber, @Position, 1, '');
   SELECT @Position = PATINDEX('%[^0-9a-Z]%', @CompactArticleNumber);
  END;

  UPDATE Article
    SET CompactArticleNumber = @CompactArticleNumber
   WHERE [GUID] = @GUID AND VersionNo = @VersionNo;

  FETCH NEXT FROM CompactArticleNumberCursor into @GUID ,@VersionNo , @ArticleNumber
 END;

 CLOSE CompactArticleNumberCursor
 DEALLOCATE CompactArticleNumberCursor

END;
GO

Diese StoredProcedure konvertiert, wann immer sie ausgeführt wird, ArtikelNummern in eine alphanumerische Version dieser. Schlüssel dazu sind die beiden T-SQL Funktionen STUFF und PATINDEX.

Wobei STUFF zum Entfernen der nicht-alphnumerischen Zeichen an einer Position verwendet wird und PATINDEX zum Auffinden der nächsten Position eine solchen Zeichens. Einfach aber effektiv und ganz ohne zusätzliche Tabelle. Sehr schön!

Schlagwörter:, , ,

 
0

Migration von Parallels zu VMWare Fusion

am Dez 12, 2008 in Software

Wer wie ich von Parallels zu VMWare Fusion wechselt und gern seine virtuellen Maschinen konvertieren will wird wahrscheinlich als erste Aktion google anschmeißen und nach Konvertierungsmöglichkeiten suchen.
Dort wird er fast ausschließlich Anleitungen finden, welche sagen, dass man unter der Parallels VM den VMWare Converter installieren soll und somit die Maschine aus Parallels heraus konvertieren kann. [...]

 
0

Eager Loading mit dem Entity Framework

am Dez 1, 2008 in entwicklung

Wie ich Manuel gerade schon geschrieben habe: Wer meckert muss auch mal loben können!
Und meiner Meinung nach ist das Eager Loading im Entity Framework akzeptabel gelöst. Eager Laoding ist im Gegensatz zum Lazy Loading das Laden, welches Abhängigkeiten direkt mitlädt und nicht erst bei einem Zugriff tarnsparent nachlädt. Wozu das Ganze?! Nun wie ich finde [...]

 
2

Truncate Database – alle Tabellen einer Datenbank löschen

am Nov 25, 2008 in entwicklung

– First disable referential integrity
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO

– Drop all tables
EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"
GO

– Now enable referential integrity again
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO

Mit Hilfe dieser paar Zeilen lassen sich in einer Microsoft SQL Server Datenbank alle Tabellen löschen, unabhängig von der Reihenfolge und der Constraints [...]

 
1

S#arp Architecture

am Nov 19, 2008 in entwicklung

Da Manuel mich ja heute mahnte “auf Deinem blog ist ja auch nichts mehr los” hier noch ein kleiner Tip zu später Stunde:
S#arp Architecture
Dabei handelt es sich um ein Framework, welches eine Basis für das Erstellen von Web-Applikationen mit Hilfe von ASP.NET MVC und NHibernate bildet.
Beide Frameworks sowohl ASP.NET MVC als auch NHibernate halte ich [...]

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Copyright © 2010 marcus’ tagebuch Rechte vorbehalten.
Desk Mess Mirrored v1.4.5 theme from BuyNowShop.com.