jueves, 27 de diciembre de 2012

JS buenas prácticas

Que cosas hacer para mejorar nuestro código js

1. Comentarios de código

Los programadores tenemos tendencia a comentar poco el código, pero si lo haces en JS, una recomendación comenta siempre, en bloque.
Puedes comentar una líena
// comentario de una línea
O un bloque
/* comentario de varias
líneas */
Hace algunos años, esto me dio un problema. El código estaba bien, sin problemas, pero ie6 en algunas ocasiones me daba un error “Error cargar” y por supuesto no cargaba la página. Lo recuerdo como una locura de error. El problema fue que había comentado el código con //, estaba dentro de un portlet (es equivalente a un modulo dotnetnuke), no era dueño de todos el contenido de la pagina, así que cuando la pagina se renderizaba, había parte quedaban comentadas. Esto producía un error de js.

2. Declara variables con “var”

Necesario declarar las variables en Javascript con el comando var para evitar así que sean inmediatamente globales.

3. Separa el código

Intenta que el código este en js separados de tus asp, o jps.
Es mucho más fácil de mantener. Si tienes que llamar a funciones, ponlo siempre en la parte final del fichero, para que se ejecuten una vez cargada la pagina.

4. Nada document.write

Esto está obseleto…document.write("hello world");
Usa el DOM & innserHTML
document.getElementById('hello').innerHTML('hello world');

5. Un Buena práctica 

Que tus ficheros js siempre comiencen con ; si haces esto, te aseguras que si alguno de los ficheros js cargados previamente no está bien formateado no te afecten a ti.

6. getElementById

Es mejor usar getElementById que mejor que getElementsByName

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