Discussione:
[?] SQL Server: come eseguire una stored procedure di sistema da VB?
(troppo vecchio per rispondere)
Gian
2005-04-27 09:12:58 UTC
Permalink
Ho provato ad eseguire il rename di un indice da codice, ma ottengo
sempre un errore ( "Errore di sintassi o violazione di accesso").
Mi connetto come "sa", quindi non dovrei avere problemi di accesso.
Ho gia' provato in molte maniere, letto BOL, Google ma niente.

Sapete dire dove sbaglio?

Grazie
Gianluca

------------ codice ---------------
Public Sub EseguiSP()

Dim lCn As New ADODB.Connection
Dim lCommand As New ADODB.Command
Dim lLong As Long

lCn.Open "Provider=SQLOLEDB;Server=.;Database=dbstore;User
Id=sa;Password=xxxxxx;"

With lCommand
.ActiveConnection = lCn
.CommandType = adCmdStoredProc
.CommandText = "sp_rename 'art2.aaaaaArt2_PK', 'Art2_PK', 'INDEX'"
.Execute , , adExecuteNoRecords ' <--- "Errore di sintassi o
violazione di accesso"
End With

lCn.Close

End Sub
Gianluca Cannalire [MVP] [www.visual-basic.it]
2005-04-27 09:19:11 UTC
Permalink
Gian wrote:

Usa:

With lCommand
.ActiveConnection = lCn
.CommandType = adCmdText
.CommandText = "EXEC sp_rename 'art2.aaaaaArt2_PK', 'Art2_PK',
'INDEX'"
.Execute , , adExecuteNoRecords
End With
lCn.Close

Ciao!
--
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
AlterX
2005-04-27 09:37:02 UTC
Permalink
Post by Gian
With lCommand
.ActiveConnection = lCn
.CommandType = adCmdStoredProc
.CommandText = "sp_rename 'art2.aaaaaArt2_PK', 'Art2_PK', 'INDEX'"
.Execute , , adExecuteNoRecords ' <--- "Errore di sintassi o
violazione di accesso"
End With
Dim param as ADODB.Parameter

With param
.Direction = adParamInput
.Name = "NomeParam"
.Type = adChar
.Value = "art2.aaaaaArt2_PK"
.Size = Len(.Value)
End With

With lCommand
Call .Parameters.Append(param) ' un parametro con 1 tecnica
Call .CreateParameter("NomeSecondoParam", adChar,
adParamInput, _ Len("Art2_PK"), "Art2_PK") ' un parametro con 2 tecnica
.ActiveConnection = lCn
.CommandType = adCmdStoredProc
.CommandText = "sp_rename"
.Execute
End With

And so on...
Gianluca Cannalire [MVP] [www.visual-basic.it]
2005-04-27 09:39:18 UTC
Permalink
Post by AlterX
Dim param as ADODB.Parameter
...
And so on...
Codice più verboso ma più elegante e corretto di quello da me proposto...
--
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
AlterX
2005-04-27 10:13:01 UTC
Permalink
Gianluca Cannalire [MVP] [www.visual-basic.it] wrote:
[cut]
Post by Gianluca Cannalire [MVP] [www.visual-basic.it]
Codice più verboso ma più elegante e corretto di quello da me proposto...
Non era mia intenzione oscurare la tua tecnica, che è ottima perchè
risparmi memoria e codice, demandando tutto al server SQL.
Però è meglio esporre le varie tecniche...e poi è anche divertente
sfruttare al massimo ADO!!
Gianluca Cannalire [MVP] [www.visual-basic.it]
2005-04-27 10:44:15 UTC
Permalink
Post by AlterX
Post by Gianluca Cannalire [MVP] [www.visual-basic.it]
Codice più verboso ma più elegante e corretto di quello da me proposto...
Non era mia intenzione oscurare la tua tecnica, che è ottima perchè
risparmi memoria e codice, demandando tutto al server SQL.
Però è meglio esporre le varie tecniche...e poi è anche divertente
sfruttare al massimo ADO!!
Sono perfattamente d'accordo! (ma quale oscuramento!)
Spesso, la soluzione, si può raggiungere con strade differenti... e' bene
quindi mostrarne piu' di una...

Ciao!
--
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
Gian
2005-04-27 10:13:21 UTC
Permalink
GRAZIE a entrambi! Funziona
Gianluca
Loading...