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!

Rispondi quotando
