Ciao a tutti!
Ho una stored procedure (Sql server 2005) che mi dovrebbe restituire un file binario (tipo di dato: IMAGE):
codice:
ALTER PROCEDURE [dbo].[VISUALIZZA_CERTIFICATI]
-- Add the parameters for the stored procedure here
(@LOTTO VARCHAR(10))
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @ID_CERT AS INT
SELECT @ID_CERT = ID_CERTIFICATO FROM LOTTI_CERTIFICATI WHERE LOTTO = @LOTTO
DECLARE @FILE_CERT AS VARBINARY
SELECT @FILE_CERT = FILE_CERTIFICATO FROM DOC_CERTIFICATI WHERE ID_CERTIFICATO = @ID_CERT
RETURN @FILE_CERT
END
Primo problema: devo assolutamente dichiare @FILE_CERT come VARBINARY, perchè come IMAGE mi da errore (FILE_CERTIFICATO è però di tipo IMAGE).
Secondo problema: una volta eseguita la stored procedure, dovrei recuperare @FILE_CERT e visualizzarlo.
Ecco il mio codice [VB6]:
codice:
Private Sub cmdVisualizzaFile_Click()
Dim Cmd2 As New ADODB.Command
Dim par2 As New ADODB.Parameter
Dim valRitorno As Object
Cmd2.ActiveConnection = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=ordinifb;Initial Catalog=CASTELFRIGODOC;Data Source=192.168.99.11"
Cmd2.CommandText = "VISUALIZZA_CERTIFICATI"
Cmd2.CommandTimeout = 15
Cmd2.CommandType = adCmdStoredProc
Set valRitorno = New ADODB.Parameter
valRitorno.Direction = adParamReturnValue
valRitorno.Name = "RETURN_VALUE"
valRitorno.Type = adBinary
Cmd2.Parameters.Append valRitorno
par2.Direction = adParamInput
par2.Name = "@lotto"
par2.Type = adChar
par2.Size = 10
par2.Value = "MP0715313"
Cmd2.Parameters.Append par2
Cmd2.Execute
Dim mstream As Object
Set mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.Write Cmd2.Parameters(0).Value
mstream.SaveToFile "C:\Users\Elena\Desktop\prova.pdf", adSaveCreateOverWrite
AcroPDF1.LoadFile ("C:\Users\Elena\Desktop\prova.pdf")
End sub
Quando mando in esecuzione il programma, mi dà errore in questa riga:
codice:
Cmd2.Parameters.Append valRitorno
Errore: "L'oggetto Parameter non è stato definito correttamente. Le informazioni fornite sono incoerenti o incomplete."
Dove sbaglio?
Grazie mille!