Un link con un sacco di info a proposito di un sacco di cose (sempre IT, ovviamente)
venerdì, febbraio 16, 2007
SQL: @@IDENTITY, forse abusata
Sapevate che @@IDENTITY ha delle sorelle meno conosciute, ma a volte più utili della stessa?
Ebbene si: esistono SCOPE_IDENTITY() e IDENT_CURRENT('table_name').
Valutate bene quando usarle...
Alcuni link in proposito:
Ebbene si: esistono SCOPE_IDENTITY() e IDENT_CURRENT('table_name').
Valutate bene quando usarle...
Alcuni link in proposito:
- http://www.dotnettechnologies.com/dotnettechnologies/PermaLink,guid,eea0c32f-1b4f-45d6-acb4-4dde56f38ffc.aspx
- http://www.dotnetjunkies.com/Article/86F0988E-FED4-414F-BA2E-D01D953C11BE.dcik
- http://www.samspublishing.com/articles/article.asp?p=31283&seqNum=5&rl=1
Grazie Maxmost
mercoledì, febbraio 14, 2007
SQL: Table variables vs. Temporary table
Table Variables.... io non le avevo mai usate, ma adesso, nei giusti casi... le userò di certo:
T-SQL: Cursori in output
Mi sono trovato a dover scrivere sta robba e ne è venuta fuori un utile procedura per l'esecuzione di comandi SQL dinamici (supporta anche parametrizzazione).
Può essere un punto di partenza per cosine più complesse.
CREATE PROCEDURE dbo.GenericCursor
@genericCursor CURSOR VARYING OUTPUT
, @CMD Nvarchar(1024)
AS
BEGIN
DECLARE @CMDx Nvarchar(1024);
SET @CMDx = 'SET @genericCursor = CURSOR FORWARD_ONLY STATIC FOR ' + @CMD + '; OPEN @genericCursor;'
exec sp_executesql @CMDx,
N'@genericCursor cursor output',
@genericCursor out
END
CREATE PROCEDURE testGenericCursor
AS
BEGIN
DECLARE @MyCursor CURSOR;
DECLARE @name as varchar(100);
DECLARE @CMDx Nvarchar(1024);
SET @CMDx = 'SELECT TOP 50 name FROM dbo.sysobjects;'
EXEC dbo.GenericCursor @MyCursor OUTPUT, @CMDx;
FETCH NEXT FROM @MyCursor INTO @name;
WHILE (@@FETCH_STATUS = 0)
BEGIN;
FETCH NEXT FROM @MyCursor INTO @name;
SELECT @name
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
END
EXEC dbo.testGenericCursor
Può essere un punto di partenza per cosine più complesse.
CREATE PROCEDURE dbo.GenericCursor
@genericCursor CURSOR VARYING OUTPUT
, @CMD Nvarchar(1024)
AS
BEGIN
DECLARE @CMDx Nvarchar(1024);
SET @CMDx = 'SET @genericCursor = CURSOR FORWARD_ONLY STATIC FOR ' + @CMD + '; OPEN @genericCursor;'
exec sp_executesql @CMDx,
N'@genericCursor cursor output',
@genericCursor out
END
CREATE PROCEDURE testGenericCursor
AS
BEGIN
DECLARE @MyCursor CURSOR;
DECLARE @name as varchar(100);
DECLARE @CMDx Nvarchar(1024);
SET @CMDx = 'SELECT TOP 50 name FROM dbo.sysobjects;'
EXEC dbo.GenericCursor @MyCursor OUTPUT, @CMDx;
FETCH NEXT FROM @MyCursor INTO @name;
WHILE (@@FETCH_STATUS = 0)
BEGIN;
FETCH NEXT FROM @MyCursor INTO @name;
SELECT @name
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
END
EXEC dbo.testGenericCursor
martedì, febbraio 13, 2007
Expresso: Regular Expression
Un buon tool per l'uso e abuso delle RegExp è secondo me Expresso:
In generale sulle Regular Expressions:
L'architetto del software
Una nostra vecchia conoscenza del corso MCSD spiga in questo racconto chi è l'architetto nel mondo del software.
Simpatico.
Simpatico.
NHibernate: Hibernate per .NET
NHibernate è un porting del nucleo di Hibernate per Java sul framework di .NET.
Gestisce la persistenza degli oggetti in .NET su una base di dati relazionale.
Data una descrizione XML delle entità e relazioni, NHibernate genera automaticamente il codice SQL per caricamento e memorizzazione degli oggetti.
Facoltativamente, si può descrivere i meta dati di tracciato con gli attributi nel codice sorgente.
Gestisce la persistenza degli oggetti in .NET su una base di dati relazionale.
Data una descrizione XML delle entità e relazioni, NHibernate genera automaticamente il codice SQL per caricamento e memorizzazione degli oggetti.
Facoltativamente, si può descrivere i meta dati di tracciato con gli attributi nel codice sorgente.
lunedì, febbraio 12, 2007
C# ereditarietà multipla
Per aggirare la single inheritance (ereditarietà da una sola classe base, ma da n interfacce) sono possibili alcune vie in C# 2.0, più o meno semplici... vediamo come:
Iscriviti a:
Post (Atom)