Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/12/2009, 15:42
Avatar de xjuanch0x
xjuanch0x
 
Fecha de Ingreso: septiembre-2009
Mensajes: 125
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: enviar PDF via Web Service

Cita:
Iniciado por suprempada Ver Mensaje
muchas gracias xjuanch0x, de verdad te lo agradesco.

aprovechando de tu sabiduria.... como podria guardar el arreglo de bytes en SQL server y despues recuperarlo para generar el pdf?... intente poniendo un campo varbinary en max... y pasandole el parametro desde C# como varbinary, pero al parecer no me lo esta guardando correctamente.

saludos y de nuevo muchisimas gracias!!!!!!!
Cita:
Iniciado por suprempada Ver Mensaje
muchas gracias xjuanch0x, de verdad te lo agradesco.

aprovechando de tu sabiduria.... como podria guardar el arreglo de bytes en SQL server y despues recuperarlo para generar el pdf?... intente poniendo un campo varbinary en max... y pasandole el parametro desde C# como varbinary, pero al parecer no me lo esta guardando correctamente.

saludos y de nuevo muchisimas gracias!!!!!!!



Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatter
Imports System.Data
Imports System.Xml.Serialization
Imports System
Imports System.Data.SqlClient


Public Class Form1

Public Function LeerArchivo(ByVal Ruta As String) As Byte()
Try
Return My.Computer.FileSystem.ReadAllBytes(Ruta)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim link As New SqlConnection("server=localhost\Sqlexpress;databas e=Pruebas;Integrated Security=true")
Dim cmd As New SqlCommand("InsertarPdf", link)
Dim ruta As String = "c:\ArchivoPdf.pdf"

Try
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@Archivo", SqlDbType.Binary, LeerArchivo(ruta).Length)
cmd.Parameters("@Archivo").Value = LeerArchivo(ruta)
link.Open()
cmd.ExecuteNonQuery()
link.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim link As New SqlConnection("server=localhost\Sqlexpress;databas e=Pruebas;Integrated Security=true")
Dim cmd As New SqlCommand("RecuperarPdf", link)
Dim arreglo As Byte()
Dim ruta As String = "c:\ArchivoPdf.pdf"

Try
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@IdArchivo", SqlDbType.Int)
cmd.Parameters("@IdArchivo").Value = CInt(TextBox1.Text)
link.Open()
arreglo = cmd.ExecuteScalar()
My.Computer.FileSystem.WriteAllBytes("Y:\PDFS\PdfG enerado.pdf", arreglo, True)
link.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub
End Class




CREATE PROCEDURE RecuperarPdf (
@IdArchivo INT
)
AS
BEGIN
SELECT Archivo FROM Archivo WHERE IdArchivo = @IdArchivo
END

--================================================== ====


CREATE PROCEDURE InsertarPdf (
@Archivo VARBINARY (MAX)
)
AS
BEGIN
INSERT INTO Archivo (Archivo) VALUES (@Archivo)
END

--================================================== ====



CREATE TABLE [dbo].[Archivo](
[IdArchivo] [int] IDENTITY(1,1) NOT NULL,
[Archivo] [varbinary](max) NOT NULL,
CONSTRAINT [PK_Archivo] PRIMARY KEY CLUSTERED
(
[IdArchivo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

--================================================== ====


Con esto haces todo, lo insertas en la base de datos, lo lees y lo almacenas en disco. te agrego los scripts

Si te sirvio este post...no olvides agradecer con un Karma

Última edición por xjuanch0x; 30/12/2009 a las 15:44 Razón: Mensaje