Linq To Sql – query con campi a null

Lavorando su un progetto winform in vb.net e linq to sql mi sono imbattuto in un problema in cui ho perso un pò di tempo per venirne a capo.
Praticamente il problema di fondo è quello di scrivere una query linq che recuperi dei record filtrandoli su un campo che può essere anche NULL (nell’esempio il campo che contiene anche valori a NULL è il campo CF).
Quindi avere sia i record che soddisfano la condizione del parametro sia quelli che hanno il campo a NULL.
In t-sql la query sarebbe scritta piĂą o meno in questa maniera:


SELECT * FROM Anagrafica
WHERE NOME = @Nome
AND((@cf IS NULL) OR (cf = @cf))

Read the rest of this post »

Share

ottobre 15, 2011  Tags: , , ,   Posted in: Coding, Develop, Programmazione, SQL  No Comments

Windows 7 e le icone del desktop perdute!

Questa mattina dopo aver acceso il PC, noto solo dopo qualche minuto (stavo ancora dormendo :) ) che tutte le mie icone sul desktop erano sparite! La cosa strana è che se aprivo “esplora risorse” e cliccavo sull’icona del desktop tutte le mie icone e documenti erano li. In un primo momento ho pensato che il processo di explorer.exe si fosse corrotto, e quindi dal task manager l’ho terminato e rifatto partire, ma niente.

Visualizzare Icone Desktop su Windows 7

Allora “googlando” un pò ho trovato una cosa al dir poco curiosa. Praticamente in Windows 7 esiste una procedura di manutenzione che ogni domenica mattina all’una ripulisce le icone corrotte e che non sono piĂą valide (tipo collegamenti a periferiche USB non piĂą collegate).

Per ripristinare la situazione alla normalità è bastato fare tasto destro sul desktop , cliccare sulla voce Visualizza e mettere il segno di spunta sulla voce Mostra Icone Desktop.

Share

dicembre 26, 2010   Posted in: Tecnologie  No Comments

Concatenazione di righe utilizzando FOR XML PATH

Riporto oggi un tip che a volte può tornare molto utile.
Può capitare di dover volere un elenco di elementi distribuiti su piĂą righe visualizzati in un’unica riga e separati da una virgola o da qualsiasi altro carattere divisorio.
Vediamo come fare:


CREATE TABLE Products (
id INT PRIMARY KEY,
product_desc VARCHAR(50));

INSERT INTO Products VALUES (1, 'Book');
INSERT INTO Products VALUES (2, 'DVD');
INSERT INTO Products VALUES (3, 'Blueray');
INSERT INTO Products VALUES (4, 'CD');
INSERT INTO Products VALUES (5, 'Magazine');

-- Primo step ci facciamo ritornare l'xml classico
SELECT  product_desc
FROM Products
ORDER BY product_desc
FOR XML PATH('')

--RESULT:
<product_desc>Blueray</product_desc><product_desc>Book</product_desc><product_desc>CD</product_desc><product_desc>DVD</product_desc><product_desc>Magazine</product_desc>

Poi eliminiamo il TAG product_desc sostituendolo con il nostro carattere separatore (in questo caso usiamo la virgola)


SELECT  ',' + product_desc
FROM Products
ORDER BY product_desc
FOR XML PATH('')

--RESULT:
,Blueray,Book,CD,DVD,Magazine

Adesso non rimane che eliminare il primo carattere, utilizziamo la funzione STUFF


SELECT STUFF((
SELECT  ',' + product_desc
FROM Products
ORDER BY product_desc
FOR XML PATH('')),1,1,'')

--RESULT:
Blueray,Book,CD,DVD,Magazine

fonte ufficiale: SQLSHARE

Share

novembre 20, 2010   Posted in: Develop, Programmazione, SQL  2 Comments

SSMS Tools Pack 1.9

Consiglio a tutti gli appassionati di SQL Server un add-in che non può mancare tra i loro tools, sto parlando dell’ SSMS Tools Pack.

L’ Add-in è valido per le versioni di SQL 2005 e 2008 e cosa piĂą eccezionale è completamente free! :)

Read the rest of this post »

Share

settembre 19, 2010   Posted in: Programmazione, SQL  2 Comments

SQL Tips : ANSI_NULLS

La seguente query :


SELECT DISTINCT Color from Production.Product
WHERE Color IS NOT NULL;

Read the rest of this post »

Share

luglio 14, 2010   Posted in: Coding, Programmazione, SQL  No Comments

Google censura l’uso del Bluetooth nel Market di Android!

Voglio riportare un fatto che è da tempo che seguo con molto interesse e che ancora oggi  sto cercando di trovare delle spiegazioni plausibili a tutto ciò.

Di seguito trovate la traduzione in italiano del post originale che potete trovare invece qui


Un giorno di Giugno 2010, la nostra applicazione per Android Bluetooth file transfer è stata rimossa manualmente da Google dall’Android Market senza nessuna ragione. In principio abbiamo pensato che fosse uno dei soliti e famosi bug di Android, dovuto all’estrema fragilitĂ  dell’intera piattaforma, e così eravamo abbastanza ottimisti. Ma dopo qualche giorno, la nostra applicazione non era ancora visibile sul Market e con “alcune ispezione” abbiamo scoperto che era stata rimossa/nascosta a tutti i cellulari con il firmaware 1.5 e 1.6: ovvero il 50% di tutti i telefoni Android!!!(fonte: Android website)

Read the rest of this post »

Share

luglio 9, 2010   Posted in: Android, Tecnologie  No Comments

SQL : Funzione per calcolare l’etĂ 

Calcola l’etĂ  fornendo una data e confrontandola con la data attuale:

CREATE FUNCTION [dbo].[Age] (@birthday DATETIME)
RETURNS INT
AS
  BEGIN
      DECLARE @age INT
      DECLARE @d AS DATETIME 

      SET @d=GETDATE() 

      SELECT @age = DATEDIFF(yy, @birthday, @d) -
      --Se non ha compiuto gli anni nell'ultimo anno in corso sottrae 1 anno.
      ( CASE
			WHEN ( DATEPART(m,@birthday ) > DATEPART(m, @d) )
              OR ( DATEPART(m, @birthday ) = DATEPART(m, @d) AND DATEPART(d, @birthday) > DATEPART(d, @d) )
			THEN 1 

            ELSE 0
        END
       ) 

      RETURN( @age )
  END 

Per eseguirla :


SELECT DBO.AGE('05/02/1977')

Una variante potrebbe essere sapere che età si aveva in un anno specifico, quindi passando due parametri anzichè uno:

CREATE FUNCTION [dbo].[AgeAt] (@birthday DATETIME, @d DATETIME)
RETURNS INT
AS
  BEGIN
      DECLARE @age INT
      SELECT @age = DATEDIFF(yy, @birthday, @d) -
      --Se non ha compiuto gli anni nell'ultimo anno in corso sottrae 1 anno.
      ( CASE
			WHEN ( DATEPART(m,@birthday ) > DATEPART(m, @d) )
              OR ( DATEPART(m, @birthday ) = DATEPART(m, @d) AND DATEPART(d, @birthday) > DATEPART(d, @d) )
			THEN 1 

            ELSE 0
        END
       ) 

      RETURN( @age )
  END

E per utilizzarla semplicemente :

select dbo.AgeAt ('05/02/1977', '01/02/1998') -- risultato 21
Share

luglio 8, 2010   Posted in: Coding, Programmazione, SQL  One Comment

Cisco Cius – L’anti-iPad ha il cuore Android

Cominciano ad essere ormai decine le aziende che vogliono essere presenti sul mercato dei tablet-pc. Ora fa il suo ingresso anche un nome altisonante come quello di Cisco , che entro i primi mesi del 2011 presenterĂ  il suo tablet di nome CIUS (see us) ovvero vediamoci!

Equipaggiato con il sistema operativo Android, Cisco vuole essere presente e cercare di prendersi la sua fetta di mercato.

Staremo a vedere cosa uscirĂ  fuori.

(fonte notizia)

Share

giugno 30, 2010   Posted in: Senza categoria  No Comments

Which language?

Found this on a forum. In response to the question “Which programming language should I learn first?” – one user responds:

Depends.

To program in an expressive and powerful language: Python
To get a website up quickly: PHP
To mingle with programmers who call themselves “rockstars”: Ruby.
To really learn to program: C.
To achieve enlightenment: Scheme.
To feel depressed: SQL
To drop a chromosome: Microsoft Visual Basic
To get a guaranteed, mediocre, but well paying job writing financial applications in a cubicle under fluorescent lights: Java.
To do the same thing with certifications and letters after your name: C#
To achieve a magical sense of childlike wonder that you have a hard time differentiating from megalomania: Objective C

I could go on… but I’m not feeling hateful enough today.

“reblogged from here”

Share

maggio 7, 2010   Posted in: Develop  No Comments

Android dev: Episode #11 – Intents – Multi Activity Applications

Sul sito http://www.xtensivearts.com/ è stato pubblicato un nuovo video tutorial (11° episodio)  sullo sviluppo di applicazioni per Android.

Speriamo che l’autore continui a pubblicarne altri in quanto secondo il mio parere sono ben fatti.

Buon coding…




Share

aprile 17, 2010   Posted in: Android, Coding, Develop, Programmazione  One Comment