domingo, 16 de diciembre de 2012

Ajax . Net & Update panel


Update panel

ClientScript.RegisterStartupScript, pero si queremos mostrar un alert en un control dentro de un update panel, esto no funciona, hay que usar ScriptManager.RegisterStartupScript

When you use Update Panel dont use ClientScript.RegisterStartupScript
Use ScriptManager.RegisterStartupScript

Ver más http://forums.asp.net/t/1229586.aspx/1

miércoles, 12 de diciembre de 2012

Insertar/update fichero en BBDD

En SQL server para insertar un campo varbinary OPENROWSET
Documentación http://msdn.microsoft.com/es-es/library/ms190312.aspx

Puede no funcionar por problemas de permisos ( hay que ver como hacer que el sqlServer tenga acceso a la carpeta, sobre todo cuando el usuario de conexion no es un usuario windows)

When you use OPENROWSET, it is important to understand how SQL Server handles impersonation. For information about security considerations, see Import Bulk Data by Using BULK INSERT or OPENROWSET(BULK...) (SQL Server).

He compartido la carpeta \\mimaquina\SQLFICHERO en mi maquina dando permisos de lectura a todo el mundo-- >y asi funciona


INSERT INTO [dbo].[misficheros]
([id]
,[nombre]
,[adjunto])
VALUES
(9999999
,'Prueba'
,(SELECT * FROM OPENROWSET(BULK N'\\mimaquina\SQLFICHERO\untitled.png', SINGLE_BLOB ) as fichero ) )

Para leer es una historia, aun peor

Hay que usar la utilidad BCP

Información:
http://msdn.microsoft.com/es-es/library/ms162802.aspx
Ejemplo, el mejor con diferencia:
www.codeproject.com

Lo primero que tenemos que hacer es activarlo, (por defecto no está activo)
EXEC sp_configure 'show advanced options', 1; -- esta ya estaba en 1
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
La ruta del disco duro donde queremos guárdalo tiene que ser accesible.
En mi maquina he compartido la carpeta \\mimaquina\\SQLFICHERO dando permisos de lectura y escritura a todo el mundo

Declare @sql varchar(500)
set @sql = 'BCP "select adjunto from [dbo].[misficheros]where [id] =9999999" QUERYOUT \\mimaquina\SQLFICHERO\mio.png -T -f
C:\blob\testblob.fmt -S '
EXEC xp_CmdShell @sql
GO

C:\blob\testblob.fmt es un archivo de formato

En informix era mucho más facil porque tenemos el :

LOTOFILE y con FILETOBLOB



En realidad la manera más facil de todas es por código, sobre todo para un programador
Escribir

Leer





lunes, 26 de noviembre de 2012

Extraño error ( falla en debug no en release)

Tenía una aplicación que cuando compilaba en debug me daba el siguiente error

SGEN : error : No se puede cargar el archivo o ensamblado 'file:///C:\xxx\xxxxx\xxxx.dll' ni una de sus dependencias. Operación no admitida. (Excepción de HRESULT: 0x80131515)


Lo curioso es que en Release funcionaba...

En internet encontré algo pero que no me sirvió, pero lo dejo por si alguno le pasaba temas de seguridad en la librería

En mi caso era por un problema con la configuración avanzada. Con esta daba error


Con está funciona!!!!

miércoles, 3 de octubre de 2012

miércoles, 26 de septiembre de 2012

Agregar Numero de Fila en RowHeader del DatagridView

Agregar Numero de Fila en RowHeader del DatagridView


Super bien y funciona. Origen

Private Sub MiGrid_RowPostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPostPaintEventArgs) Handles MiGrid.RowPostPaint

 Dim grid As DataGridView = DirectCast(sender, DataGridView)
        Dim strRowNumber As String = (e.RowIndex + 1).ToString
        While strRowNumber.Length < grid.RowCount.ToString.Length
            strRowNumber = "0" & strRowNumber
        End While
        Dim size As SizeF = e.Graphics.MeasureString(strRowNumber, Me.Font)
        If grid.RowHeadersWidth < CInt(size.Width + 20) Then
            grid.RowHeadersWidth = CInt(size.Width + 20)
        End If
        Dim bt As Brush = SystemBrushes.ControlText
        e.Graphics.DrawString(strRowNumber, Me.Font, bt, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + ((e.RowBounds.Height - size.Height) / 2))

    End Sub

martes, 25 de septiembre de 2012

Buscar dentro de archivos

Cuando teniamos el XP, para buscar un texto dentro de los archivos, habia una opcion bien visible. El vista y 7, aun está pero no esta a la vista. La solución:

http://geeks.ms/blogs/vista-tecnica/archive/2007/04/30/b-250-squedas-en-windows-vista-i-de-iv-por-alex-refojo.aspx

martes, 11 de septiembre de 2012

Se ha superado el número máximo de advertencias.

He heredado un código que en la ventana de errores sale el mensaje “Se ha superado el número máximo de advertencias.” ( aun me sorprende lo poco se preocupa la gente por tener un código sin advertencias de compilación)
 Casi todos las advertencias son por :
Advertencia    El tipo de parámetro ‘xxx’ no es conforme a CLS.
Hay una forma de evitar estas advertencias al compilar sin tocar nada de código  y consiste en poner en el Assembly. Info 


<Assembly: CLSCompliant(FALSE)>