måndag 25 maj 2009

Få id från din senaste INSERT - SQL

Detta gäller bara SQL Server 2000 och uppåt.


CREATE PROCEDURE [dbo].[spCreateNewAccount]

@Name VARCHAR(255),

@Email VARCHAR(255),

@accountID INT OUTPUT

AS

BEGIN

INSERT INTO dbo.Account([Name], Email)

VALUES (@Name,@Email)

SET @accountID= CAST(SCOPE_IDENTITY() AS INT)

END
-------------
@accountID INT OUTPUT --- OUTPUT för att få ut id
SCOPE_IDENTITY() för att hämta senaste inlagda record i denna sats.

måndag 20 april 2009

Validera e-post som SQL funktion i mySQL

Ett av de många coola grejer som mySQL har är faktiskt att man kan använda RegExp i dess funktioner. Så istället för att skriva koden på din sida kan du fixa funktioner som validera e-poster direkt i mySQL. Så här kan vi validera e-post adresser

Koden:

DELIMITER $

DROP FUNCTION IF EXISTS `myDatabas`.`validateEmail` $$

CREATE FUNCTION `validateEmail`(t_email varchar(64)) RETURNS tinyint(1)

BEGIN

CASE
WHEN NOT (SELECT t_email REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$')
THEN
-- om e-posten är fel
RETURN FALSE;
ELSE
-- pm e-posten är coolt
RETURN TRUE;
END CASE;

END $$

DELIMITER ;


Om e-post adressen är okej, får vi 1 annars får vi bara 0 förstås.

Jag använder just denna funktion för en nyhetsbrevs utskick som jag har gjort med .NET och så här ser min SQL-sats ut (förkortat för enkelhetensskull).

SELECT DISTINCT(email) FROM people WHERE validateEmail(email)=1

fredag 3 oktober 2008

Istället för TOP SELECT i Stored Procedure

Tänk om du vill få ut bara ett antal artiklar i nyhetsdatabas. I Stored Procedure är det relativ enkelt.


...
CREATE PROCEDURE db.nyheter
@antalnyheter
AS
BEGIN
SET ROWCOUNT @antalnyheter
SELECT * FROM nyheter
ORDER BY idnyheter DESC
END
GO


Finns mer här

torsdag 28 augusti 2008

Bra Bok

Visual C# 2008 Step by Step, En bra bok som jag rekommenderar stark faktiskt.

Amer Jag rekommenderar att du läser den.

MVH/Hemn

måndag 25 augusti 2008

Ändra parameter i dataobjectsource direkt i koden

För in för default i en SELECT Parameter


ObjectDataSource1.SelectParameters["myDate"].DefaultValue = '2008-01-19'

Konventera DateTime till String

Convert.ToString(DateTime.Now);