Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Sored Procedure
martedì 13 marzo 2007 - 15.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bluelions
Profilo
| Senior Member
244
messaggi | Data Invio:
mar 13 mar 2007 - 15:58
Ho una stored procedure con parametri in ingresso,di cui un valore tipo datetime
quando eseguo la stored per fare una prova,
exec insert_prova pippo,pluto,getdate()
mi va in errore di conversione da varchar a smalldate time
Questa è la stored:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[insert_prova]
@nome as varchar(50),
@Cognome as varchar(50),
@DataNascita as smalldatetime,
AS
DECLARE @errorcode as int
SET @errorcode = -1 -- errore interno alla stored procedure
BEGIN TRANSACTION
INSERT INTO wc_Anagrafica
(Nome,Cognome,DataNascita,)
VALUES
(@nome,@cognome,@DataNascita)
IF (@@ERROR <> 0)
SET @errorcode = 0
RETURN @errorcode
amelix
Profilo
| Expert
694
messaggi | Data Invio:
mar 13 mar 2007 - 16:28
La virgola a fianco DataNascita è un errore di trascrizione?
Andrea
http://www.MelisWeb.eu/
bluelions
Profilo
| Senior Member
244
messaggi | Data Invio:
mar 13 mar 2007 - 17:42
no vabbè non è quello l'errore....ho sbagliato io a scrivere.
sanbiz
Profilo
| Senior Member
208
messaggi | Data Invio:
mar 13 mar 2007 - 19:06
Hai verificato il formato della data che passi alla sp? Stai usando un formato ISO o è uan semplice stringa?
Ti consiglio, come avrai visto molte volte, di utilizzare il formato 'yyyymmdd hh:mm:ss'
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
bluelions
Profilo
| Senior Member
244
messaggi | Data Invio:
mar 13 mar 2007 - 20:25
E' possibile un esempio...visto che sono poco pratico in sql
sanbiz
Profilo
| Senior Member
208
messaggi | Data Invio:
mer 14 mar 2007 - 10:09
>E' possibile un esempio...visto che sono poco pratico in sql
Ok.
Quello di seguito è il tuo esempio, con relativa chiamata alla sp.
Il parametro della data è stato passato in formato iso in questo modo eviti gli errori legati alla localizzazione.
Se infatti imposti 'set language us_english' e tenti di passare la data in questo formato '26/05/1973' otterrai il tuo errore, poichè il formato corretto dovrebbe essere '05/26/1973'
set nocount on
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- Creo la tabella di prova
create table wc_Anagrafica
(
nome varchar(50),
Cognome varchar(50),
DataNascita smalldatetime
)
GO
CREATE PROCEDURE [dbo].[insert_prova]
@nome as varchar(50),
@Cognome as varchar(50),
@DataNascita as smalldatetime
AS
DECLARE @errorcode as int
SET @errorcode = -1 -- errore interno alla stored procedure
INSERT INTO wc_Anagrafica
(Nome,Cognome,DataNascita)
VALUES
(@nome,@cognome,@DataNascita)
IF (@@ERROR <> 0)
SET @errorcode = 0
RETURN @errorcode
go
-- Eseguo la sp
exec insert_prova 'sandro', 'bizioli','19730526'
-- Elimino gli oggetti utilizati
drop procedure [insert_prova]
drop table wc_Anagrafica
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
bluelions
Profilo
| Senior Member
244
messaggi | Data Invio:
mer 14 mar 2007 - 10:28
ok, e sono d'accordo con te,però alla stored gli devo passare la data attuale,quindi la funzione getdate(), come faccio ?
sanbiz
Profilo
| Senior Member
208
messaggi | Data Invio:
mer 14 mar 2007 - 10:31
>ok, e sono d'accordo con te,però alla stored gli devo passare
>la data attuale,quindi la funzione getdate(), come faccio ?
convert(varchar(8), getdate(), 112)
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !