Colocar el Contenido Especifico de una Página en otra Página

sábado 7 de noviembre de 2009
<html>
<head>
<title>
</title>
<script src="jquery.js"type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function (){
// Se tiene que esperar a que finalize la carga del iframe.
$('#iPrueba').load(function()
{
// Obtener el codigo html de div2 en el iframe iPrueba.
var htmlIframe = $('#iPrueba').contents().find('#div2').html(); // Asignar el codigo html de Div2 en Div1.
$("#div1").html(htmlIframe);
});
});
</script>
</head>
<body>
<a href="#"> Presioname! </a>
<div id="div1"></div>
<iframe id="iPrueba" src ="Second.html" width="0" height="0">
</iframe>
</body>
</html>

Subir un Proyecto al Subversion de Google Code

1. Crear Proyecto en Google Code
2. Registrar Proyecto

3. Obtener Acceso a Google Code

4. Subir el Proyecto desde Netbeans



5. Obtener pass del Repositorio de Google Code



6. Subir los archivos del Proyecto.




/EOF




Road to MCTS 70-536 - Resumen Capitulo 3

sábado 6 de junio de 2009
Capitulo_3_(2)

BULK INSERT con Archivos de Formato generados por BCP

jueves 29 de enero de 2009
En el post anterior hable sobre el BULK INSERT que permite la carga masiva de archivos planos a una base de datos Sql Server.

-- 1. Creamos una tabla de prueba CREATE TABLE PRUEBA_CARGA ( NOMBRES VARCHAR(50), APELLIDOS VARCHAR(50), CODIGO INT )

-- 2. Definimos el archivo de texto a subir

CARLOSBALBUENA001
CARLOS
BALBUENA001
CARLOSBALBUENA001

-- 3. Ejecutar Sentencia Bulk Insert
BULK INSERT
PRUEBA_CARGA [nombre_tabla]

FROM
'C:\\PruebaBulk.txt'
[ruta_archiv_texto]
WITH
(FIELDTERMINATOR='[Separador de Campos]')

Los pasos funcionan perfectamente si es que los datos del archivo de texto coinciden exactamente con las columnas de la tabla(orden y tipo de datos), pero que sucede si los datos del archivo no respetan el orden de las columnas de las tablas o hay campos que no estan presentes en el archivo de datos. La solución : BCP !!!

BCP(Bulk Copy Program) es un utilitario de microsoft que permite hacer cargas masivas a traves de la linea de comandos sin conocimiento alguno de SQL. Pero en nuestro caso lo vamos a usar como complemento del BULK INSERT, especificamente para generar el archivo de mapeo(formato) para mapear las "columnas" del archivo plano de texto con las columnas de la tabla de base de datos. Para ello seguimos los siguientes pasos :

1. Abrimos la linea de comandos: Run[Ejecutar]->Tipear cmd.
2. Hacemos la llamada a bcp, con los parametros correctos :


3. En la ruta especificada encontramos el archivo Bien.fmt con el siguiente contenido :

9.0 <= Version de Sql Server

60 <= Numero de Columnas

1 SQLINT 0 4 "" 1 IdBien ""

2 SQLNCHAR 2 40 "" 2 CodigoSBN Modern_Spanish_CI_AS

......

La primera columna sombreada corresponde al orden en el cual aparece en el archivo de texto y la segunda columna sombreada corresponde al orden en la tabla destino, con lo cual podemos configurar el orden en que apareceran las columnas en el archivo de texto y su correspondiente columna en la tabla o podemos quitar columnas que existen en la tabla pero no en el archivo de texto.

Mas Info : http://msdn.microsoft.com/en-us/library/aa173859(SQL.80).aspx

4. Finalmente usamos el archivo de formato modificado para nuestras necesidades y ejecutamos el BULK INSERT con la siguiente modificacion :

BULK INSERT [TablaDestino]

FROM [NombreArchivo]

WITH (FIELDTERMINATOR=[Delimitador]

FORMATFILE=[RutaFormatoArchivo])












Encontrando Instancias de SQL Server

En caso se hayan olvidado que nombre le pusieron a la instancia que crearon en Sql Server o deseen saber que instancias de base de datos tienen en sus pcs , se tienen dos modos :

1. RegEdit!!
Se navega en :
HKEY_LOCAL_MACHINE
-->\\Software
------>\\Microsoft\\
----------->Microsoft SQL Server
----------------->\\[Nombre de Instancia]
------------------------------->\\SQL.???


2. Utilitario : Sql Ping

El utilitario SQL Ping te da la posibilidad de escanear una ip para buscar instancias Sql Server :





3. Abrir el Administrador Corporativo de SQL Server :D.

Perlas del SQL

miércoles 28 de enero de 2009
En algún proyecto de software siempre nos tocara hacer una carga masiva de archivos a una base de datos. Y para no caer en la "complejidad" de los DTS u otros mecanismos, podemos optar por aquellas perlas escondidas que nos ofrece el Sql Server(2000->).

Bulk Insert : Archivos de Texto

-- 1. Creamos una tabla de prueba
CREATE TABLE PRUEBA_CARGA
(
NOMBRES VARCHAR(50),
APELLIDOS VARCHAR(50),
CODIGO INT
)

-- 2. Definimos el archivo de texto a subir
CARLOS|BALBUENA|001
CARLOS|BALBUENA|001
CARLOS|BALBUENA|001

-- 3. Ejecutar Sentencia Bulk Insert
BULK INSERT
PRUEBA_CARGA [nombre_tabla]
FROM
'C:\\PruebaBulk.txt'
[ruta_archiv_texto]
WITH

(FIELDTERMINATOR='|[Separador de Campos]')

OpenRowSet : Archivos Excel ...

--1. Crear archivo excel con estructura de tabla

-- 2. Ejecutar Sentencia OpenRowSet

insert into
prueba_Carga[Nombre tabla]
select * FROM OPENROWSET
(
\'Microsoft.Jet.OLEDB.4.0\',
\'Excel 8.0;DATABASE=C:\\CBALBUENA\\PruebaCarga.xls\[Ruta Archivo Excel]',
\'SELECT * FROM [Clientes$][Nombre de Hoja Excel]\'
)


El Combo de 2.5 MB -Parte I (Problema)

lunes 8 de diciembre de 2008
Al finalizar un aplicativo Web en ASP .Net y al momento de hacer la instalación en una maquina de pruebas me di con la sorpresa de que la página se demoraba cerca de 1 min en cargar cuando se accedia de forma remota. Despues de mirar el screensaver de la pc por un par de minutos pude pensar en los posibles culpables :

1- Culpar al Ajax Control Toolkit que habia usado para los calendarios y validaciones y por lo tanto generan un viewstate gigantesco.
2- Culpar a la otra maquina poniendo en duda si es una core-duo y que estaba mal configurado su IIS.
3- Culpar al speedy de la empresa por el poco ancho de banda, y solicitar que pongan como requerimiento no funcional del sistema : Speedy de 1GB.
4- No culpar a nadie y decir 'En mi maquina funciona' ;).

Descartada la razón (4) que todo informatico sin excepción ha usado una vez en su vidad :D, opte por descartar una por una las razones :

2. La maquina si era core-duo, tenia espacio en disco y el IIS estaba bien configurado y además tenia otra aplicación que funcionaba en forma correcta.

1. Quite todo el Ajax de la aplicación y volvi a publicar, pero la aplicación seguia con la misma latencia en la carga de la página, entonces esta vez no era Microsoft el culpable.

3. Hice una prueba de velocidad de internet, y si tenia una velocidad aceptable. Luego procedi a instalar la aplicación Fiddler para ver el trafico HTTP a la hora de llamar la aplicación y obtuve las siguientes sorpresas :

- Habia llamadas a a japon que hacia el sistema y que aún ahora son un misterio de el porque las hace.

- El Viewstate de la aplicación era gigantescto, a pesar de ya no tener componente ajax alguno.

- Y la sorpresa final era que la página pesaba un total de 2.5 MB y el transmitir tremenda cantidad de bytes por el ancho de banda disponible de la empresa era la causa de ver a la página cargarse en forma tan lenta que hasta se podia ver como se dibujaban pixel por pixel los combos.

Detectada la causa ahora era momento de determinar en que parte de la página se producía tremenda cantidad de código, por lo que procedi a quitar uno a uno los controles con datos, hasta que finalmente quite un combo que cargaba cierto número de empresas. Despúes de remover el combo la página pesaba 15kb para mi asombro.
La razón era que el número de items de ese combo habia crecido hasta 13000 elementos lo cual generaba un viewstate y un html renderizado de tags "select" y " option.." gigantescos.

En el siguiente post mostrare que solución aplique para este problema tan peculiar y divertido :).