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
Creare una Stored Procedure da VB2005
mercoledì 25 luglio 2007 - 17.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
erongis
Profilo
| Junior Member
137
messaggi | Data Invio:
mer 25 lug 2007 - 17:48
Salve a tutti, ho un problemino. Vorrei salvre dei dati in una db SQL2005 tramite stored procedures direttamente da VB2005.
Io ho creato un oggetto sqlclient.sqlcommand e gli passo questi parametri:
dim cmT as new sqlclient.sqlcommand(connessione)
cmT.CommandType = CommandType.Text
cmT.CommandText = "CREATE PROCEDURE InsertFatture @AnnoRegistrazione Int AS SELECT @numreg = COALESCE(MAX(numreg),0) + 1 FROM Fatture INSERT INTO Fatture ( Codice, Cliente, AnnoReg, DataReg, NumReg, NumCasse, Importo, Sconto, ImportoScontato, Iva, TotalePiuIva, UTcod) VALUES (@Codice, @Cliente, @AnnoReg, @DataReg, @numreg, @NumCasse, @Importo, @Sconto, @ImportoScontato, @Iva, @TotalePiuIva, @UTcod) EXECUTE InsertFatture 2007 SELECT * FROM Fatture"
Poi gli passo tutti i parametri:
cmT.Parameters.AddWithValue("codice","0700001")
cmT.Parameters.AddWithValue...... (tutti i parametri rimanenti...)
Ma mi viene restituito l'errore:
"Sintassi non corretta in prossimità della parola chiave 'PROCEDURE'."
AIUTOOOOO!!!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 25 lug 2007 - 19:43
>Io ho creato un oggetto sqlclient.sqlcommand e gli passo questi
>parametri:
>
>dim cmT as new sqlclient.sqlcommand(connessione)
>
> cmT.CommandType = CommandType.Text
>cmT.CommandText = "CREATE PROCEDURE InsertFatture @AnnoRegistrazione
>Int AS SELECT @numreg = COALESCE(MAX(numreg),0) + 1 FROM Fatture
>INSERT INTO Fatture ( Codice, Cliente, AnnoReg, DataReg, NumReg,
>NumCasse, Importo, Sconto, ImportoScontato, Iva, TotalePiuIva,
>UTcod) VALUES (@Codice, @Cliente, @AnnoReg, @DataReg, @numreg,
>@NumCasse, @Importo, @Sconto, @ImportoScontato, @Iva, @TotalePiuIva,
>@UTcod) EXECUTE InsertFatture 2007 SELECT * FROM Fatture"
Ciao erongis,
La stored procedure va definita una tantum nel database, dopo di che puoi richiamarla tutte le volte che vuoi specificando parametri diversi.
Per definirla puoi usare SQL Server Management Studio Express (SSMSE), connetterti all'istanza con una login avente i diritti necessari (dbo va benissimo), copiare il tuo codice di CREATE PROCEDURE ed eseguirlo.
> SELECT @numreg = COALESCE(MAX(numreg),0) + 1 FROM Fatture
Non ti conviene utilizzare una colonna IDENTITY invece che eseguire una query del genere?
> EXECUTE InsertFatture 2007 SELECT * FROM Fatture
Questo comando non l'ho capito (e comunque è sbagliato)
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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 !