Soci (Soczó Zsolt) szakmai blogja

2012.06.14.

RadioButton MVVM alatti használata

Filed under: .NET,Szakmai élet,WPF — Soczó Zsolt @ 07:50

Jó kis megoldás, elegáns.

2012.06.05.

“Szakcikk”: Meneküljön, ki merre lát!

Filed under: Élet,Tőzsde — Soczó Zsolt @ 15:02

Amikor ilyen hírek jönnek már a csapból is, akkor szokott fordulni a piac. Pár héten belül kiderül.

2012.06.04.

SQL Server 2012 újdonságok – 7. Új TSQL függvények

Filed under: Adatbázisok,SQL Server,SQL Server 2008 R2,Szakmai élet — Soczó Zsolt @ 22:35

Számos új függvény teszi egyszerűbbé a mindennapi TSQL programozást. A függvények egy része az Excel vagy az Access függvényeihez hasonló, megkönnyítve az ezeken írt alkalmazások átírását SQL Server 2012-re.
Számos új dátumkezelő függvényünk van. Az eomonth visszaadja egy adott dátumhoz tartozó hónap utolsó napját (kezelve szökőéveket, stb.). A második paraméterével át lehet térni egy másik hónapra is:
[source=’sql’]
declare @currentdate datetime = ‘20120225’;
select
eomonth (@currentdate) as ‘EOMMonth’,
eomonth (@currentdate, -2) as ‘EOM2MonthsEarlier’,
eomonth (@currentdate, 1) as ‘EOM1MonthLater’;
[/source]

Dátum összerakása a komponenseiből:
[source=’sql’]
declare @Year int = 2011;
declare @Month int = 2;
declare @Day int = 29;

select datefromparts(@Year, @Month, @Day) AS Result;
[/source]

Hasonló függvények készültek a többi típushoz is: datetimefromparts, datetime2fromparts, datetimeoffsetfromparts, smalldatetimefromparts, timefromparts.
A típusok közötti konverzió sokkal egyszerűbbé vált. Egyrészt most már van try_convert, ami az eddigi convert függvénnyel ellentétben nem dob hibát, ha nem sikerül a konverzió, hanem nullt ad vissza:
[source=’sql’]
select TRY_CONVERT(float, ‘test’) F
, TRY_CONVERT(datetime2, ‘2012-05-15’) D1
, TRY_CONVERT(datetime2, ‘2012-05-15.’) D2
, TRY_CONVERT(datetime2, ‘2012-05-45′) D3
, TRY_CONVERT(datetime2, ’25/04/2020’, 103) D4; –British/French: dd/mm/yyyy
[/source]

A .NET-ből ismert alaptípusok Parse, TryParse és ToString metódusát is kivezették, így ezekkel gazdag, szabályozható formátumú és kultúrafüggő értelmezési és formázási lehetőségek jelentek meg az SQL Serverben.

[source=’sql’]
SELECT PARSE(‘7/17/2011’ AS DATE USING ‘en-US’) AS dt1,
PARSE(‘2011.07.17.’ AS DATE USING ‘hu-HU’) AS dt2;
[/source]

Az en-US angol nyelv, USA-ban értelmezve, a hu-HU magyar nyelv, Magyarországon értelmezve.
A format függvény segítségével a .NET-es típusok ToStringjét hívhatjuk meg, amivel rendkívül egyszerű összetett formázásokat is megvalósítani:

[source=’sql’]
declare @Price decimal(19,4) = 13542.1251;
declare @Date datetime2(0) = ‘20120425 15:13:00’;
select
–Pénzösszegek
format(@Price, ‘C4’, ‘hu-hu’) HunPrice, –13 542,1251 Ft
format(@Price, ‘C4’, ‘en-us’) UsPrice, –$13,542.1251
–Dátumok
format(@Date, ‘D’, ‘hu-hu’) HunDate, –2012. április 25.
format(@Date, ‘D’, ‘en-us’) UsDate, –Wednesday, April 25, 2012
format(@Date, ‘d’, ‘hu-hu’) HunDate2,
format(@Date, ‘d’, ‘en-us’) UsDate2,
format(@Date, ‘f’, ‘hu-hu’) HunDate3,
format(@Date, ‘f’, ‘en-us’) UsDate3,
–Custom format string
format(@Date, ‘yyyy.MM.dd’) HuncutDate3,
–Számok formázása
format(@Price, ‘F2’, ‘hu-hu’) HunNumber,
format(@Price, ‘F2’, ‘en-us’) UsNumber,
format(@Price, ‘00000’, ‘en-us’) LeadingZerosNumber,
format(@Price, ‘N2’, ‘hu-hu’) HunGroupedNumber,
format(@Price, ‘N2’, ‘en-us’) UsGroupedNumber;
[/source]

Az eddig case-ekkel megvalósított logikai kifejezések egy részét egyszerűbben is meg tudjuk fogalmazni az iif és a choose függvényekkel:

[source=’sql’]
select
a = iif(1=1, ‘cica’, ‘kutya’), –cica
b = iif(1=2, ‘cica’, ‘kutya’), –kutya
n = iif(null = 1, ‘cica’, ‘kutya’); –kutya
[/source]

A choose az n. argumentumot adja vissza, 1-gyel kezdődő sorszámmal:
[source=’sql’]
select
choose(1, ‘a’, ‘b’, ‘c’) as ‘first’,
choose(2, ‘a’, ‘b’, ‘c’) as ‘second’;
[/source]

A concat függvénnyel szövegeket lehet egybefűzni. Abban különbözik a + operátortól, hogy mivel a paraméterei stringek, ha más típus megy be paraméterül, az automatikusan stringgé konvertálódik, így biztosan stringként kerül összefűzésre . A másik különbség, hogy a NULL paraméterek helyett üres stringet helyettesít be, míg a + operátor alap set opciók esetén NULL-t ad vissza.

[source=’sql’]
declare @PurchaseOrderNumber int = 123;
select concat(‘PO’, @PurchaseOrderNumber) PO1,
concat(‘PO’, NULL, @PurchaseOrderNumber) PO2;
[/source]

Bár az adatok formázása általában nem az adatbázis, hanem a megjelenítési réteg feladata, ennek ellenére sokszor kellett eddig is például számokat vagy dátumokat formázni SQL-ben is. Az új függvényekkel a .NET formázások teljes repertoárja elérhető az SQL programozók részére is.

SQL prospektus kiküldve

Filed under: Adatbázisok,Felhívás,SQL Server,SQL Server 2012,Szakmai élet — Soczó Zsolt @ 11:50

Feladtam postára az eddig beérkezett igényeket, aki szerencsés, már holnap megkapja, aki nem, az soha, ismerve a minőségéről híres postát. Ha valaki nem kapja meg két héten belül jelezze, elküldöm még egyszer.

Jó olvasgatást. :)

Powered by WordPress