• Jueves 28 de Marzo de 2024, 10:08

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - adel castillo

Páginas: [1]
1
C# / Re:Obtener dirección de un archivo
« en: Martes 22 de Julio de 2014, 09:32 »
Hola tal vez te pueda ayudar.
No trabajo con MYSQL, si con SQl Server y facilmente guardo y muestro imagenes de un campo tipo image que guarda mis imagenes como registros tipo byte.
Primero Crear un campo tipo image, eso es muchisimo mejor que direccionar a un archivo por su path del windows, ya que tienes información dispuesta a que te la borren o perderla facilmente, teniendo problemas con el software que desarrollas.

Aqui te escribo los procedimientos en código Vb Net que lo puedes convertir a C#, para mostrar la imagen que desees:

     Public Sub ImportImage(ByVal NameField As String, ByVal FileName As String)
                'NameField = Nombre del campo tipo image en tu tabla
                'FileName= Dirección Path del windows que se direcciona a la imagen que deseas guardar en tu BD.
                'mCmd = Variable tipo SQLCommand que domino mediante una clase propia mia.

                With mCmd
                    .CommandText = "UPDATE [" & mNameTable & "] " & _
                        "SET [" & mNameTable & "].[" & NameField & "]=" & _
                        "(SELECT BulkColumn " & _
                        "FROM OPENROWSET(BULK " & _
                        "'" & FileName & "', " & _
                        "SINGLE_BLOB) AS x)" & _
                        Me.Where(mKey, Operador.Igual)

                    Call .ExecuteNonQuery()
                End With
        End Sub

        Public ReadOnly Property Read_Image(ByVal NameField As String) As Image
            Get
                  'NameField = Nombre del campo tipo image en tu tabla
                  'Me(NameField) = Objeto propio mio que gobierna una tabla de una BD y manipula registros por ubicación y nombre de un campo
                   
                     If NameField IsNot Nothing Then
                        If Trim(Me(NameField).ToString) <> "" Then
                            Dim ms As MemoryStream
                            Dim imgVal As Image

                            ms = New MemoryStream(CType(Me(NameField), Byte()))

                            imgVal = Image.FromStream(ms)

                            Call ms.Close()
                            ms = Nothing

                            Return imgVal
                        End If
                    End If
                 Return Nothing
            End Get
        End Property

Espero entiendas mi código que trabajo con objetos propios de mi creación que manipulan SqlCommand que es el caso de la variale mCmd y una Tabla de una BD donde defino Me(Namefield).

El parametro Me(Namefield) tomalo como el campo tipo image que esta ubicado en un Row de la tabla donde desarrollo el código necesario para transformar sus bytes en formato image.

Espero me entiendas lo desarrollado y te sirva.

Saludos

2
VB .NET / Realizar una Consulta SQL enlazando a 2 bases de Independientes MDF
« en: Lunes 21 de Julio de 2014, 23:17 »
Hola expertos del Vb Net, necesito un apoyo para lograr desarrollar una consulta SQL dentro de un procedimiento almacenado construido en una base de datos que la defini con el nombre "maquinaria.MDF", donde debo enlazar mediante un ID, una tabla de otra base de Datos que defino "sistema.MDF".

Estos archivos MDF son autónomos al SQL Server y los tengo activos dentro del Explorador de Servidores del Visual Basic Studios 2010.

Les describo el procedimiento Almacenado que funciona de maravilla dentro del SQL Server 2010 y no ocurre lo mismo cuando ejecuto el procedimiento almacenado en el archivo individual "maquinaria.mdf" con la misma nomenclatura, no reconociendo a la base de datos "sistema.mdf".

ALTER PROCEDURE Tree_Combustibles_Meses
   @IdMaquina as Int
AS
BEGIN
   SELECT dias.id_mes, meses.año, name_meses.name_mes AS Mes
   FROM sistema.dbo.dias INNER JOIN combustibles ON dias.id_dia = combustibles.id_dia
   INNER JOIN sistema.dbo.meses ON dias.id_mes = meses.id_mes
   INNER JOIN sistema.dbo.name_meses ON meses.month_year = name_meses.month_year
   WHERE (combustibles.id_maquina = @IdMaquina)
   GROUP BY dias.id_mes, meses.año, name_meses.name_mes
   ORDER BY dias.id_mes DESC
END

Como ven la clausula FROM me dirijo a la tabla "sistema.dbo.dias", para realizar un INNER JOIN con la tabla combustibles: dias.id_dia = combustibles.id_dia, propia de la base de datos maquinaria.MDF. dueña de este procedimiento almacenado.

Repito este código funciona de maravilla dentro del SQL Server cuando son archivos no individuales las bases de datos y falla cuando quiero que estas bases de datos sean autonomas al SQL Server.

Si alguien me ayuda le agradecería mucho y cuenta conmigo para otros apoyos de la mucha experiencia con código avanzado con el vb. Net, en los ya 10 años desarrollando software con este bellisimo lenguaje.

Saludos:

Adel Castillo
correo: adel.castillo@yahoo.com

Páginas: [1]