martes, 25 de noviembre de 2008

Exportar un grid a excel

1 comentario:
Los reportes son un dolor de cabeza siempre una forma de reportar rapidamente es utilizar excel que es un magnifica herramienta, asi que yo lo que hago en los grid de consultas pongo un boton que diga exportar a excel el codigo del mismo deberia ser así(recuerde ya tener llenado el grid):


if (GridView1.Rows.Count == 0)
{
return;
}

if (GridView1.Rows.Count < 65536)
{
GridView1.AllowPaging = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
HtmlForm frm = new HtmlForm();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=ReporteSol.xls");
Response.Charset = "";
EnableViewState = false;
Controls.Add(frm);
frm.Controls.Add(GridView1);
frm.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
llenar(); // aqui tiene que llamar asu llenado del grid de nuevo

}


}


no olvide agregar este using
using System.IO;

Si usan esa cosas que se llama Visual Basic = )

If GridEX1.Rows.Count = 0 Then
Return
End If

If GridEX1.RowCount < 65535 Then
GridEX1.AllowPaging = False
Dim tw As New StringWriter()
Dim hw As New HtmlTextWriter(tw)
Dim frm = New HtmlForm()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=ReporteSol.xls")
Response.Charset = ""
EnableViewState = False
Controls.Add(frm)
frm.Controls.Add(GridEX1)
frm.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
llenar()
End If
Ver

lunes, 17 de noviembre de 2008

Cache en aspnet

No hay comentarios.:
El objeto Cache puede servir para optimizar una Aplicacion Web, antes de desplegarla.

Esto puede funcionar para información de no cambia continuamente, si se estan preguntando que tan continuamente eso es configurable, aqui muestro un ejemplo en c# con oracle aun que bien funciona con sqlserver y visual basic, la cual es un listado de empleados que cumplen años en ese dia. Por lo tanto no tengo que cambiar la información durante 24 horas asi que no tengo que para evitar que la aplicacion haga select por que cada usuario que ingrese al sistema, se utilizar el cache para evitarlo.


OracleConnection cn = new OracleConnection(ConfigurationManager.ConnectionStrings["TEST"].ConnectionString);
DataSet ds = new DataSet();

OracleDataAdapter da = new OracleDataAdapter("", cn);

da.SelectCommand.CommandText = "SELECT NOMBRE,
TO_CHAR(A.F_NACIMI, 'dd') || ' - ' || MESESP(TO_CHAR(A.F_NACIMI, 'mm'))
FROM EMPLEADOS where FECHA_NAC= to_char(sysdate,'mm')";


if (Cache["nombres"] == null)
{
cn.Open();
da.Fill(ds, "cumple");
cn.Close();
Cache.Insert("nombres", ds, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromHours(4));
}

GridView1.DataSource = ((DataSet)Cache["nombres"]).Tables[0];
GridView1.DataBind();


-----------------------------------------
Si les sirve deje comentario.
Ver

jueves, 6 de noviembre de 2008

Microsoft retira el Windows que se ganó al público

No hay comentarios.:

El adiós al mercado del Windows 3.x tras 18 años de vida supone el fin de una era. Desde el pasado 1 de noviembre, Microsoft no permite la concesión de más licencias para el uso de este software 3.x, el primero que gozó de verdadero éxito entre el usuario y el que hizo que el PC se impusiera al Mac de Apple, ya que la mejora de los gráficos era más que evidente.
Y aunque hubo un 1.0 y otro 2.0, para muchos usuarios el 3.x es realmente el primer sistema operativo de Windows. Además, el software fue el responsable de que un icono se convirtiera en sinónimo de Windows: la clásica ventana que deja tras de sí una estela pixelada. Pero hubo más, el 3.x llegó con numerosas mejoras que lo hicieron más agradable para el usuario final, como color en los iconos o la amplia configuración en los sistemas de control.
La competencia tembló entonces, hace 18 años. La historia de este primer sistema operativo se remonta a los años 90. A partir de entonces, la compañía comenzó a sacar diferentes versiones de Windows 3.x y fueron conscientes del enorme éxito que el interfaz gráfico de usuario de Microsoft estaba teniendo a lo largo y ancho del planeta. Esto ayudó a que la compañía se asentase y marcara tendencia hasta llegar al día de hoy en lo que a sistemas operativos se refiere.
Una revolución en los 90
Windows 3.x tenía mejor paleta de colores y ofrecía la posibilidad de usar extras multimedia, como tarjetas de sonido o CD Rom. También reformó los menús desplegables hacia el modelo que los conocemos hoy en día, coloreó los iconos y permitía calibrar el ratón, configurar la pantalla, incorporó salida VGA, y sumó aplicaciones tan populares como 'Paintbrush' o el popular juego 'Solitario'.
Hasta finales de 2001 Microsoft sostuvo el apoyo a Windows 3.x, desde entonces hasta ahora se limitó a mantenerlo con vida como sistema operativo 'embedded', destinado a aplicaciones concretas como los cajeros automáticos o las cuentas de los grandes almacenes. Pero llegó el 1 noviembre pasado: desde ese día Microsoft no permite la concesión de más licencias.

Tras muchas versiones, el futuro es el cuestionado Windows Vista.
Ver

martes, 21 de octubre de 2008

Leer y grabar imagenes en la base de datos- ASPNET

No hay comentarios.:
ASP.NET proporciona un mecanismo sencillo para cargar archivos de imagen a una base de datos, como SQL Server. Las imágenes se pueden almacenar en una tabla de base de datos que es atributo de datos de imagen de tipo.

Puede utilizar la siguiente instrucción SQL para crear una tabla que puede almacenar archivos de imagen:

create table myimages
(
imgid int identity(1,1) primary key,
imgname varchar(30) null,
imgfile image not null,
imgtype varchar(30) null
)

En el código anterior, el cuadro atributos son los siguientes:

* imgid: Para almacenar el identificador de la imagen y es la clave principal de la tabla.
* imgName: Para almacenar un nombre de la imagen.
* imgfile: Para almacenar datos de imagen binarios.
* imgtype: Para almacenar el tipo de contenido de la imagen

Las imágenes Web de forma se pueden cargar en la anterior tabla de base de datos. La carga de archivo de imagen desde el formulario de la web se pueden clasificar en las siguientes tareas:

1. Creación de un formulario web para subir los ficheros de imagen.
2. Carga de archivos de imagen a la base de datos.

Creación de la Web de forma para subir los ficheros de imagen

El formulario HTML que se cargan los archivos de imagen a una base de datos debe cumplir los siguientes requisitos:

* Utilice multipart / form-cifrado de datos
* Utilice el método POST.

Puede utilizar el siguiente fragmento de código para crear un formulario para la carga de imágenes:

<form enctype="multipart/form-data" id="Form2" method="post" runat="server">
<h3> Demo on working with image filesh3>
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 120px" runat="server">Enter File nameasp:Label>
<asp:Button id="Button2" style="Z-INDEX: 107; LEFT: 248px; POSITION: absolute; TOP: 264px" runat="server" Text="View images" Width="96px">
<asp:Button id="Button1" style="Z-INDEX: 106; LEFT: 248px; POSITION: absolute; TOP: 216px" runat="server" Text="Upload Me"> <input id="upload_file" type="file" runat="server" style="Z-INDEX: 105; LEFT: 256px; POSITION: absolute; TOP: 160px">
<asp:TextBox id="txtimgname" style="Z-INDEX: 102; LEFT: 256px; POSITION: absolute; TOP: 120px" runat="server">
asp:TextBox>
form>



En el código anterior, el atributo enctype notifica al servidor que los datos binarios se subirán. El formulario tiene un archivo de control sobre el terreno por el nombre upload_file, que puede utilizar para buscar y localizar el archivo. El formulario también tiene dos botones de control, uno para subir y uno para ver. La interfaz se parece a como se muestra en la figura:


Cargar un archivo de imagen a una base de datos

Cuando el usuario hace clic en el botón de subida me, un manejador de evento se invoca. En el evento que usted puede agregar el código siguiente al cargar el archivo en la base de datos:

private void Button1_Click(object sender, System.EventArgs e)
{
Stream img_strm = upload_file.PostedFile.InputStream;
//Retrieving the length of the file to upload
int img_len = upload_file.PostedFile.ContentLength;
//retrieving the type of the file to upload
string strtype = upload_file.PostedFile.ContentType.ToString();
string strname = txtimgname.Text.ToString();
byte[] imgdata = new byte[img_len];
int n = img_strm.Read(imgdata, 0, img_len);
int result = SaveToDB(strname, imgdata, strtype);
}


En el código anterior, hay tres piezas principales de datos que son importantes para cargar la imagen:

Content-Type (strtype)
Name (strname)
ImageData (imgdata)


El código anterior en el archivo para ser cargado en sptored es img_strm, objeto de flujo de la clase. En img_strm el archivo se almacena en formato bimary Usted debe convertir a matriz de bytes antes de cargar en la base de datos. La siguiente declaración de la anterior fragmento de código muestra cómo el archivo se convierte en matriz de bytes:

int n = img_strm.read (imgdata, 0, imglen)

El objeto Stream proporciona la lectura () método para convertir el archivo binario a partir de matriz de bytes. Acepta tres paramters

* búfer: Especifica una matriz de bytes.
* Offset: Especifica el byte en el buffer, desde donde el almacenamiento de datos se iniciará.
* Cuenta: Especifica el número máximo de bytes que se lee desde el actual flujo.

Leer la imagen de la db
El código anterior en el archivo para ser cargado en sptored es el código principal el desempeño de esta función se da a continuación. Su caso manejador de la "opinión de la imagen" evento. El nombre de la imagen que está escrito en el cuadro de texto en la pantalla.

private void Button2_Click(object sender, System.EventArgs e)
{
connection.Open();
SqlCommand command1 = new SqlCommand("select imgfile from myimages where imgname=@param", connection);
SqlParameter myparam = command1.Parameters.Add("@param", SqlDbType.NVarChar, 30);
myparam.Value = txtimgname.Text;
byte[] img = (byte[])command1.ExecuteScalar();
MemoryStream str = new MemoryStream();
str.Write(img, 0, img.Length);
Bitmap bit = new Bitmap(str);
Response.ContentType = "image/jpeg";//or you can select your imagetype from database or directly write it here
bit.Save(Response.OutputStream, ImageFormat.Jpeg);
connection.Close();
}
Ver

lunes, 13 de octubre de 2008

Codigo Biker

1 comentario:
Voy en moto, ùnica y exclusivamente, por que es divertido. Voy en moto porque disfruto de la libertad que siento al star expuesto a los elementos y ser vulnerable al riesgo que implica ir en moto, es decir no monto porque estè de moda.

Conduzco mi màquina, no me la pongo, mi màquina no es un sìmbolo de estatus, existe simplemente para mì y sòlo para mì. Mi màquina no es un juguete, es una extensiòn de mi mismo y la trato en consecuencia con el mismo respeto que me tengo a mì.

Me esfuerzo por compreder el funcionamiento interno de la màquina, desde lo màs bàsico a lo mas complejo. Aprendere todo lo que pueda sobre mi màquina, de manera que pueda confiar solamente en mi mismo para cuidarla conservala.

Me esfuerzo constantemente en mejorar mi dominio sobre mi màquina. Aprenderè sus lìmites y a usar mi habilidad para llegar a ser uno con mi màquina para asì mantenernos a salvo los dos. Yo soy el dueño y ella està a mis òrdenes. Trabajamos juntos en armonìa, en equipo seremos un equipo invencible.

No temo a la muerte, sin embargo harè todo lo posible para evitar que llegue pronto. El miedo en la carretera lleva a la muerte. Por eso no me dejo atemorizar, serè mi dueño, lo dominarè.

Mis màquinas sobreviviràn, por eso seràn mi legado, las cuidarè para futuros bikers que las aprecien como yo las he apreciado, cualesquiera que pueda ser.

No monto en la moto para llamar la atenciòn, respeto o dar miedo a nadie que no ande en moto, ni tampoco deseo intimidar a nunguno de ellos. Para aquellos que no quieran conocerme, todo lo que deseo es que me ignoren. Para los que quieren conocerme, compartirè con ellos la verdad de mi mismo para que puedan comprenderme y no temer a otros como yo.

Nunca serè un agresor en la carretera, sin embargo, si alguien se mete conmigo, su agresiòn serà respondida con los medios legales que tenga a mano.

Mostrarè respeto acea otros bikes màs experimentados y conocerdores que yo. Aprenderè de ellos lo que pueda. No mostrarè desprecio hacia otros bikers menos experimentados y conocedores que yo; les enseñarè lo que pueda.

Serà mi tare ser mentor de nuevos bikers que deseen intruducirse en el modo de vida biker para que la casta continùe. les enseñarè com a mi me han enseñado otros antes.
Preservarè el honor y las tradiciones de bikers anteriores a mì y las pasrè sin alterarlas.

No juzgare a oros bikers por la màquina que elijan, su apariencia o su profesiòn, les juzgare ìnicamente por su conducta como biker.

Estoy orgulloso de mis obligaciones como biker, aunque no se las harè cumplir a otros, si preguntan se las compartirè con ellos. Estarè dispuesto a ayudar a cualquier bikerque realmente necesite mi ayuda. Nunca pedirè otro biker que haga lo que puedo hacer por mi mismo.

Yo no soy un biker de fin de semana, soy un biker cuando y donde voy, es decir, en todo momento. Estoy orgulloso de ser biker y no escondo mi modo de vida a nadie Monto en moto porque amo la libertad, la independencia y el movimiento del suelo bajo mis pies, pero sobre todo, monto para conocerme mejor a mismo, mi màquina, las tierras por donde voy, y buscar y conocer otros bikers como yo.
Ver

lunes, 29 de septiembre de 2008

Crear un Store Procedure en SQL 2005 con Visual Studio

2 comentarios:
Creando Codigo para objetos de Sql server 2005
Pasos.
1.) Inicio Visual Studio
2.) Cree un nuevo projecto de tipo "SQL Server project"
3.) Inmediatemente de Crear el proyecto le pedira connectarse con su servidor. Ingrese la informacion necesaria(usuario,password,servidor)
4.) Inmediatemente Le preguntara que si decea Habilitar el Sql/CLR Debugging, indique que si
5.)Sobre el proyecto presione click derecho busque add y luego elija Store Procedure( en el solution explorer) coloque un nombre a su nuevo store procedure(sp.vb o sp.cs)
6.)En el Sp que acaba de crear asegure de tener las siguientes Imports ó Using
Imports System
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
7.) y de aqui en adelante es una Sub ó Void totalmente Normal, un ejemplo sensillo
Public Shared Sub StoredProcedure1
Dim conn As New SqlConnection("context connection=true")
conn.Open()

Dim cmd As New SqlCommand("SELECT ProductID, Name, ListPrice FROM Production.Product ORDER BY ListPrice DESC", conn)
SqlContext.Pipe.ExecuteAndSend(cmd)
End Sub

8.) Luego f5 y ya esta en sql server, pueder ir a verlo con el Management Studio en la seccion de programacion, Store procedure
puedes ejecutarlo
con un exe. Ejemplo.
exec dbo.StoredProcedure1

si te sale este error
Msg 6263, Level 16, State 1, Line 1Execution of user code in the .NET Framework is disabled. Enable "clr enabled" configuration option.
Tenemos problemas pero es por que no tiene habilitado el .net framework en el sql
corre este script para correjilo.

sp_configure 'clr enabled', 1
go
reconfigure
go
Para Probar el Sp en el mismo .net tiene que hacer los siguiente pasos:

1.) Pon un break point sobre tu Store procedure.
2.)Preciona click derecho sobre tu proyecto y agrega un TEST SCRIPT
agrega el codigo de tu prueba de script que si es al que esta arriba deberia ser asi:
exec dbo.StoredProcedure1
y preciona click derecho sobre su script de prueba en que mi caso se llama test.sql y le dices que sea el default script.
3.) preciona f5 y ahora no solo lo pasara al sql si no que hara una pausa en tu break point.
Ver

miércoles, 10 de septiembre de 2008

Cristobal Colón era soltero !!!!!

No hay comentarios.:
Cristobal Colón era soltero !!!!!

Tenemos que admitir que Cristóbal Colón pudo descubrir América sólo
Porque ¡¡ERA SOLTERO!!
Si Cristóbal Colón, hubiese tenido una esposa, mira todas las
Preguntas que le hubiera hecho:

-¿Y por qué tenés que ir vos?
- ¿Y por qué no mandan a otro?
- ¡Todo lo ves redondo! ¿Estás loco o sos idiota?

- ¡No conocés ni a mi familia y vas a descubrir el nuevo mundo!
- ¿Qué escondés? ¡Ni siquiera sabés adonde vas!
- ¿Y sólo van a viajar hombres? ¿Quién te lo va a creer?

- ¿Y por qué no puedo ir yo si vos sos el jefe?
- ¡Desgraciado, ya no sabés qué inventar para estar fuera de la casa!
- ¡Si cruzás esa puerta yo me voy con mi mamá! ¡Sinvergüenza!

- ¿Y quién es esa tal María? ¿Qué Pinta? ¡Y la muy hija de puta se
Hace la Santa!
- ¿Y decís que es una Niña?... ¡Andá a la mierda....!
- ¡Tenías todo planeado, verdad! Seguro que vas a encontrarte con unas
Indias putas.
- ¿A mí me vas engañar?
- ¿Qué la Reina va a vender sus joyas para tu viajes? ¡Comé mierda!....
- ¿Me tomás por bruta?
- ¿Qué tenés con esa vieja?
!Sos un puto!!!

¿A coger vas a ir, verdad?
- ¡Vos no vas a ir a ningún lado!
- No va a pasar nada si el mundo sigue plano .
Así que ni te vistas que
¡NO vas!
Me escuchaste.......!!!!!!!!!!! !
C O L O N .... VENI PARA ACA!!!!!!
Ver

martes, 2 de septiembre de 2008

TERAPIA DE PAREJA

No hay comentarios.:

Marido y mujer acuden al psicólogo tras 20 años de matrimonio.

Cuando se les pregunta cuál es el problema, la mujer saca una lista larga y detallada de todos los problemas que han tenido durante los 20 años de matrimonio:

...poca atención, falta de intimidad, vací­o, soledad, no sentirse amada, no sentirse deseada...

 La lista es interminable. Finalmente, el terapeuta se levanta, se acerca a la mujer, le pide que se pare y la abraza y besa apasionadamente mientras que el marido los observa con una ceja más alta que la otra. La mujer se queda muda y se sienta en la silla medio aturdida.

 El terapeuta se dirige al marido y le dice 'Esto es lo que su esposa necesita al menos

3 veces por semana. ¿Puede hacerlo?'

 El marido lo medita un instante y responde: Bueno, la puedo traer los lunes y los miércoles, pero los viernes tengo fútbol.

Ver

martes, 12 de agosto de 2008

.........Me compré una nueva Bike!!!!!!

1 comentario:

se trata de esta "belleza" que ven a su izquierda (igualita: mismo modelo, año y color).

Es una Honda "CBX Twister 250".

Ya llevaba varios meses amenazando con comprar otra moto, por que la vento me fregaba mas que mujer o casi igual.

Queria una moto de verdad y esta es la unica que pudo pagar mi billetera.


Es bonita, económica. medio rápida aun que espero tener algo mas rapido en un futuro.


Dicen los mitos que puede llegar a correr hasta 150km por hora pero no he podido probarla aun, Tiene 6 velocidades, en lo personal creo que es una buena maquina, llega hacer 125km por galon asi que medio ahorro algo de dinerito. Muchos tienen miedo de caerse yo tengo un dicho:

Existen 2 tipos de Motociclistas...
los que ya se cayeron
y los que se van a caer
Ver

lunes, 28 de julio de 2008

Lee el relato de los Merodeadores

No hay comentarios.:
Por fin conocemos algo más de la breve historia del relato: Sirius y James se meten en un lío con dos policías muggles, después de ser pillados con una moto a toda velocidad. Después huyen usando sus escobas y un poco de magia. Los hechos suceden tres años antes del nacimiento de Harry.


Rowling ha declarado: "Me lo pasé muy bien escribiendo la tarjeta y estoy absolutamente encantada de que haya recaudado 25.000 libras para dos causas tan dignas".

La espera ya ha terminado y Waterstone's ha publicado el relato de los Merodeadores para gusto de todos. La historia, que se sitúa tres años antes del nacimiento de Harry.




La motocicleta de carreras tomó tan rápido la curva afilada en la oscuridad que ambos policías del coche de la persecución gritaron: "¡Guau!". El Sargento Fisher apretó su largo pie en el freno, creyendo que el chico que montaba en el asiento de atrás de la moto volaría bajo sus ruedas. Sin embargo, la moto siguió sin arrojar a ninguno de sus ocupantes, y con un pestañeo de su luz roja trasera, desapareció en la estrecha calle de al lado.
-¡Ya les tenemos! -exclamó con excitación el capitán de policía Anderson-. ¡Esto es un callejón sin salida!
Tomando el volante con determinación y haciendo crujir la maquinaria, Fisher rayó la mitad de la pintura de la chapa del coche en el intento de perseguirlos por el callejón.
Los dos pasajeros estaban atrapados entre una pared de ladrillo y el coche de la policía, que ahora se acercaba hacia ellos como un depredador gruñón de ojos luminosos.
Había tan poco espacio entre las puertas del coche y los muros del callejón que Fisher y Anderson habían salido con dificultad del vehículo. Dañó su dignidad tener que medir pulgada a pulgada, como si se tratasen de cangrejos. Fisher arrastró su generosa panza por el muro, arrancando botones de su camisa por el camino, y finalmente descolocando el retrovisor con su parte trasera.
-¡Bajad de la moto! -bramó a los jóvenes que sonreían con insolencia, que se habían sentados con la luz azul parpadeante como si disfrutasen con ello.
Lo hicieron como se lo habían mandado. Después de librarse del espejo retrovisor roto, Fisher les miró con ferocidad. Parecían tener unos dieciocho años. El que había estado conduciendo tenía una melena larga y negra. Su buen aspecto insolente desagradablemente le recordó a Fisher al novio guitarrista y holgazán de su hija. El segundo chico también tenía cabello negro, aunque era corto e iba en todas las direcciones. Llevaba gafas y una ancha sonrisa. Los dos vestían camisetas con un gran pájaro dorado estampado; un emblema, no había lugar a dudas, de alguna banda de rock sin ritmo y ensordecedora.
- ¡No lleváis cascos! -gritó Fisher, señalando la cabeza desprotegida de uno de ellos-. Excediendo el límite de velocidad con una considerable cifra -(de hecho, la velocidad registrada había sido mayor que la que Fisher estaba preparado para aceptar de una moto que pudiese viajar)-. ¡Ignorar la detención de la policía!
-¡Nos encantaría detenernos para conversar! -dijo el chico con gafas-. Solo intentábamos...
-No te hagas el listillo. ¡Los dos estáis metidos en un buen lio! -gruñó Anderson-. ¡Nombres!
-¿Nombres? -repitió el conductor de cabello largo-. Er... bueno... déjame ver. Está Wilberforce... Bathsheba... Elvendork...
-Y lo que es bonito sobre ese es que puedes usarlo tanto para chico como para chica -dijo el chico con gafas.
-Oh, ¿te refieres a nuestros nombres? -preguntó el primero-. Deberías habérmelo dicho. Éste de aquí es James Potter, y yo soy Sirius Black.
-Las cosas se van a poner verdaderamente negras para ti en un minuto, pequeño descarado...
-Pero ni James ni Sirius estaban prestando atención. De repente estuvieron tan alerta como perros de caza, mirando más allá de Fisher y Anderson, sobre el techo del coche de policía, en la boca oscura del callejón. Entonces, con movimientos idénticos y fluidos, se llevaron la mano a sus bolsillos traseros.
En el espacio de un latido los dos policías imaginaron pistolas saliendo de ellos, pero un segundo después descubrieron que los motoristas no habían sacado otra cosa que...
- ¿Baquetas? -preguntó Anderson-. Sois un par de bromistas, ¿verdad? Está bien, quedáis arrestados bajo los cargos de...
Pero Anderson nunca llegó a decir los cargos. James y Sirius habían gritado algo incomprensible, y los haces de luz del coche se habían movido.
Los policías dieron una vuelta a su alrededor, después miraron a sus espaldas. Tres hombres estaban volando -realmente volaban- en el callejón sobre escobas. Y al mismo tiempo, el coche de policía estaba encabritado sobre sus ruedas traseras.
Las rodillas de Fisher cedieron; cayó sentado. Anderson tropezó con las piernas de Fisher y cayó encima de él, mientras oían flump-bang-cruch escucharon a los hombres de las escobas chocar contra el coche y caer, aparentemente inconscientes, en el suelo, mientras trozos de escoba caían a su alrededor.
La moto había vuelto a rugir de vida de nuevo. Con la boca abierta, Fisher miró atrás para ver a los dos adolescentes.
-¡Muchas gracias! -le dijo Sirius sobre el ruido de la maquinaria-. ¡Os debemos una!
-Sí, ha sido un placer conoceros -dijo James-. Y no lo olvidéis: ¡Elvendork! ¡Es unisex!
Hubo un crujido que sacudió la tierra, y Fisher y Anderson se abrazaron el uno al otro de miedo; su carro acababa de caer de nuevo al suelo. Ahora era el turno de la moto de rugir. Antes de que los policías diesen crédito a lo que veían sus ojos, surgió en los aires: James y Sirius desaparecieron en el cielo nocturno, con la luz trasera parpadeando detrás de ellos como un rubí que desaparecía.
Ver

jueves, 3 de julio de 2008

Operaciones de Acceso a datos Asincronico 2

No hay comentarios.:
Las operaciones asincrónicas no solo nos permiten realizar más un una consulta a la vez, también tenemos la posibilidad de hacer otros comandos y sacarle más provecho a nuestro servidor haciendo varias operaciones al mismo tiempo, en el siguiente ejemplo se puede ver que tiene 3 updates al mismo tiempo.


Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Threading
' Add the remaining code to the form's class:


Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim connection1 As New SqlConnection(GetConnectionString())
Dim connection2 As New SqlConnection(GetConnectionString())
Dim connection3 As New SqlConnection(GetConnectionString())


Dim commandText1 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " &_
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:01';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " _
"WHERE ReorderPoint Is Not Null"

Dim commandText2 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " & _
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:05';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " &_
"WHERE ReorderPoint Is Not Null"

Dim commandText3 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " & _
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:10';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " & _
"WHERE ReorderPoint Is Not Null"


Dim waitHandles(2) As WaitHandle
Try
connection1.Open()
Dim command1 As New SqlCommand(commandText1, connection1)
Dim result1 As IAsyncResult = command1.BeginExecuteNonQuery()
waitHandles(0) = result1.AsyncWaitHandle

connection2.Open()
Dim command2 As New SqlCommand(commandText2, connection2)
Dim result2 As IAsyncResult = command2.BeginExecuteNonQuery()
waitHandles(1) = result2.AsyncWaitHandle

connection3.Open()
Dim command3 As New SqlCommand(commandText3, connection3)
Dim result3 As IAsyncResult = command3.BeginExecuteNonQuery()
waitHandles(2) = result3.AsyncWaitHandle
Dim result As Boolean = WaitHandle.WaitAll(waitHandles, 60000, False)
If result Then
    Dim rowCount1 As Long = command1.EndExecuteNonQuery(result1)
    TextBox1.Text = "Completed " & _
   System.DateTime.Now.ToLongTimeString()
   Dim rowCount2 As Long = command2.EndExecuteNonQuery(result2)
   TextBox2.Text = "Completed " & _
   System.DateTime.Now.ToLongTimeString()
   Dim rowCount3 As Long = command3.EndExecuteNonQuery(result3)
   TextBox3.Text = "Completed " & _
   System.DateTime.Now.ToLongTimeString()
Else
     Throw New Exception("Timeout")
End If
Catch ex As Exception
       TextBox4.Text = ex.ToString
End Try

connection1.Close()
connection2.Close()
connection3.Close()
End Sub
Ver

viernes, 30 de mayo de 2008

Operaciones de Acceso a datos Asincronico

1 comentario:
Se han fijado que en los commands tiene nuevos metodos que son parecidos a los que ya conoces pero tienen la palabra Begin ante puesta, como por ejemplo el ExecuteReader tiene
BeginExecuteReader y EndExecuteReader estos son metodos del modelo asincronico, aqui un ejemplo de como utilizarlos.
Solo recuerde que para utilizar sincronia necesita poner la siguiente clausula en el connetion string:
Asynchronous Processing=true

Dim cnstring As String = "user id=sa;" & _
"password=pass;initial catalog=northwind;" & _
" data source=.\sqlexpress;Asynchronous Processing=true"


Dim cn1 As New SqlClient.SqlConnection(cnstring)
Dim cn2 As New SqlClient.SqlConnection(cnstring)
Dim cn3 As New SqlClient.SqlConnection(cnstring)


Dim commandText1 As String = _
"WAITFOR DELAY '0:0:01';" & _
"SELECT * FROM products " & _
" WHERE PRODUCTID=50"


Dim commandText2 As String = _
"WAITFOR DELAY '0:0:05';" & _
"SELECT * FROM products " & _
" WHERE PRODUCTID=50"


Dim commandText3 As String = _
"WAITFOR DELAY '0:0:10';" & _
"SELECT * FROM products " & _
" WHERE PRODUCTID=50"


Dim waitHandles(2) As Threading.WaitHandle
Try
cn1.Open()
Dim command1 As New SqlClient.SqlCommand(commandText1, cn1)
Dim result1 As IAsyncResult = command1.BeginExecuteReader()
waitHandles(0) = result1.AsyncWaitHandle


cn2.Open()
Dim command2 As New SqlClient.SqlCommand(commandText2, cn2)
Dim result2 As IAsyncResult = command2.BeginExecuteReader()
waitHandles(1) = result2.AsyncWaitHandle


cn3.Open()
Dim command3 As New SqlClient.SqlCommand(commandText3, cn3)
Dim result3 As IAsyncResult = command3.BeginExecuteReader()
waitHandles(2) = result3.AsyncWaitHandle


Dim index As Integer
For countWaits As Integer = 1 To 3
index = Threading.WaitHandle.WaitAny(waitHandles, 60000, False)
Select index
Case 0
     Dim reader1 As SqlClient.SqlDataReader
     reader1 = command1.EndExecuteReader(result1)
    If reader1.Read Then
          TextBox1.Text = "Terminado 1 - " & _
          System.DateTime.Now.ToLongTimeString()
    End If
    reader1.Close()

Case 1
     Dim reader2 As SqlClient.SqlDataReader
     reader2 = command2.EndExecuteReader(result2)
     If reader2.Read Then
            TextBox2.Text = "Terminado 2 - " & _
            System.DateTime.Now.ToLongTimeString()
     End If
   reader2.Close()
Case 2
     Dim reader3 As SqlClient.SqlDataReader
     reader3 = command3.EndExecuteReader(result3)
    If reader3.Read Then
        TextBox3.Text = "Terminado 3 - " & _
        System.DateTime.Now.ToLongTimeString()
    End If
    reader3.Close()
 Case Threading.WaitHandle.WaitTimeout
      Throw New TimeoutException("Timeout")
 End Select

  Next
Catch ex As Exception
     TextBox4.Text = ex.ToString
End Try
Ver

martes, 27 de mayo de 2008

Como leer y escribir fotos en una db en .net

No hay comentarios.:
Manejar objetos de gran tamaño en .net es sumamente facil, cuando me refiero a objetos grandes me refiero a Fotos o textos grandes.
aqui doy un ejemplo de como guardar fotos en la base de datos:

Guardar fotos


Tabla del sql server
CREATE TABLE fotos(
[codigo] [int] primary key IDENTITY (1, 1),
[nombre] [varchar](50) NULL,
[foto] [image] NULL
)



Tu formulario tiene que estar de la siguiente manera:


-- Codigo del boton Imagen
(despliega la ventan para seleccionar la imagen)


OpenFileDialog1.ShowDialog()
txtruta.Text = OpenFileDialog1.FileName


-- codigo del boton grabar

Dim cn As New SqlClient.SqlConnection("user id=sa;password=pass;initial" & _ "catalog=northwind;data source=.\sqlexpress")

'lectura de la foto de imagen a binario
Dim filePath As String = txtruta.Text
Dim stream As IO.FileStream = New IO.FileStream(filePath, _
IO.FileMode.Open, IO.FileAccess.Read)
Dim reader As IO.BinaryReader = New IO.BinaryReader(stream)
Dim foto() As Byte = reader.ReadBytes(stream.Length)
reader.Close()
stream.Close()

'guardado de la fot en la db
Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand( _
"INSERT INTO fotos( nombre, foto) " & _
"Values(@nombre, @foto)", _
cn)
cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 50).Value = txtnombre.Text
cmd.Parameters.Add("@foto", SqlDbType.Image, foto.Length).Value = foto


cn.Open()
cmd.ExecuteNonQuery()
cn.Close()


Lleer fotos
Tu formulario tiene que estar de la siguiente manera:

-- Codigo del boton buscar(busca el codigo del textbox y despliega la imagen)
nota: no usen * en el select, es mas eficiente poner los campos.

Dim cn As New SqlClient.SqlConnection("user id=sa;" & _
"password=pass;initial catalog=northwind;data source=.\sqlexpress")
Dim cmd As New SqlClient.SqlCommand("", cn)
Dim dr As SqlClient.SqlDataReader
Dim sql As String
sql = "select nombre, foto from fotos where codigo=@codigo"
cmd.CommandText = sql
cmd.Parameters.Add("@codigo", SqlDbType.Int, 4).Value = txtcodigo.Text
cn.Open()
dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess _
Or CommandBehavior.CloseConnection)
If dr.HasRows Then
While dr.Read()
'nombre de la foto
lblnombre.Text = Convert.ToString(dr!nombre)
'
If (dr.IsDBNull(1)) Then
MessageBox.Show("No hay imagen", "", _
MessageBoxButtons.OK, MessageBoxIcon.Stop)
Else
Dim bytes As SqlTypes.SqlBytes = dr.GetSqlBytes(1)
PictureBox1.Image = Image.FromStream(bytes.Stream)
'PictureBox1.Image=bytes.Write
End If
End While
Else
MessageBox.Show("Codigo no existe", "", _
MessageBoxButtons.OK, MessageBoxIcon.Stop)
End If
cn.Close()

Cambien la propiedad SizeMode a StretchImage para que la imagen se adapte al control.
Ver

miércoles, 26 de marzo de 2008

Tres metros sobre el cielo

1 comentario:
Hace poco vi un video con una trama interesante y busque cual era la película y adivinen que, tiene libro!!!!, así que aproveche a buscar información sobre el libro, el nombre del libro es "A tres metros sobre el cielo", 100% recomendado, la trama del libro es una historia romántica de 2 jóvenes, el autor del libro se llama Federico Moccia, la historia se desarrolla en Italia, de hecho la película, es italiana pero el libro está traducido al castellano, aquí un par de videos para que se animen a leer el libro, uno de los videos tiene la canción de Peces e Iguanas. Espero les guste.

Ver

lunes, 18 de febrero de 2008

NO SOY DE LA LANDIVAR

No hay comentarios.:
Allá entre Cuatro Caminos y Alaska se encontraba un hombre
viendo pastar a su rebaño de ovejas, cuando de repente aparece
por el inhóspito camino una camioneta Navigator 4x4 Full Size
de 5000 kilómetros , con su juego de neblineras como para iluminar
el Mateo Flores prendidas, a pesar de no haber tal niebla.

Se detiene frente al viejito y se baja un tipo de no más de 30 años.
Traje negro, camisa blanca "ARMANI" y zapatos BOSTONIAN". ( sin nombre claro,
Porque le gusta que le digan licenciado)
Se acerca al viejo y le dice:

Ala señor, si yo le adivino cuántas ovejas tiene usted en su
rebaño, ¿será que me regala una? Es que están réquete.

El viejo responde con algo de asombro: Sí, cómo no".

Entonces el joven vuelve a su 4x4 y saca una Sony Vaio,
Core 2 Extream 5.0 Ghz con 4GB de RAM,
se conecta a la red por medio de su Motorola Razor V,
baja una base de datos de 1 GB.
Entra a una página de la NASA , mediante un satélite
identifica la zona exacta de donde está el rebaño,
calcula el promedio histórico del tamaño de una oveja
tipo "MERINO" mediante una tabla dinámica de Excel y
con la ejecución de algunas macros personalizadas en Visual
Basic, logra completar el diagrama de flujo.

Luego de tres horas le responde al viejo:

Usted tiene 1347 ovejas, 256 machos y 1091 son hembras y
4 pueden estar embarazadas, o sea pues, de las hembras".

El viejo asintió y le dijo que efectivamente, así era y que se
podía llevar una oveja.

El joven tomó una y la cargó en su 4 x 4 y estaba por irse,
cuando el viejo lo detuvo y le preguntó:

"Y si yo llegase adivinar en donde
estudió, ¿Usted me devuelve mi oveja?

El joven le dijo sonriendo "Seguro, hombre," mientras abría
la puerta de su camioneta para marcharse. El viejo entonces contestó:

"Usted estudió en la Landivar !!!" El joven, sorprendido completamente, dijo:
Ala...! o sea y ¿Cómo se dio cuenta?"

El viejo le respondió: Por cuatro razones:
Primero, por lo mamón que es usted;
segundo, vino sin que yo le hablara;
tercero, me cobró por decirme algo que yo ya sé;
y cuarto, se nota que no tiene ni puta idea del negocio.

Así que ya devuélvame a mi perro! pendejo.
Ver

lunes, 7 de enero de 2008

COMO SON LOS SIGNOS

No hay comentarios.:
ARIES: El Mentiroso (21 Mar - 20 Abr.)
Extrovertido, amable, espontáneo, no puedes andar jugando con este tipo de personas. Chistoso, excelente besador y EXTREMADAMENTE adorable, cree en las relaciones, dictivo y ruidoso.

TAURO: El Vagabundo ( 21 Abr. - 20 May.)
Le gustan las relaciones largas, le gusta luchar por lo que quiere. Extremadamente extrovertido, le gusta ayudar a la gente cuando lo necesitan, buena personalidad, buen besador, un poco necio, cuidadoso y son las personas más atractivas de esta tierra.

GÉMINIS: El Irresistible (21 May. - 21 Jun.)
Lindos. Su amor es único. Les gusta escuchar, muy buenos para ya sabes qué...buenos amantes, no les gusta pelear pero pueden noquearte si lo quieren. Confiable, felices, comunicativos, extrovertidos, SIEMPRE PERDONAN. Tienen una linda sonrisa, generosos y fuertes. EL MÁS IRRESISTIBLE.

CÁNCER: El Lindo (22 Jun.- 21Jul.)
Asombroso besador. Muy atractivos, El amor es lo mas importante. Muy románticos, La persona que siempre cuidara de usted. Nunca conocerá a alguien igual! Eternamente creativo. Extremadamente suertudo y orgulloso de el. Espontaneo. Gran contador de historias. No es un peleador PERO PUEDE LLEGAR a knockearte, si lo sacas de el.

LEO: El León (22 Jul. - 23 Ago.)
Gran comunicador. Atractivo y apasionado. Sabe como divertirse. Es muy bueno para casi todo. Gran besador, impredecible, extrovertido, adictivo, Atractivo pero cuidado, no saben lo que quieren. Les gusta andar de Relación en relación, les gusta jugar. Raro de encontrar, bueno cuando lo Hallas.

VIRGO: El que espera (24 Ago. - 23 Sep.)
Dominante en las relaciones. Siempre tienen alguien que los ame. Siempre tienen la última palabra. Cuidadosos, carismáticos, inteligentes, leales, Les gusta hablar. Lo que siempre habías estado buscando, fácil de Complacer y le gusta ser el primero y el único.

LIBRA: El Pobre (24 Sep. - 23 Oct.)sol
Agrada a todo el que lo conoce. Su amor es único. Un poco tonto, divertido Y dulce. Tiene un encanto único. Es una de las personas más protectoras que conocerás pero que no la querrás nunca de enemigo pues podrías Terminar llorando.

ESCORPIÓN: El Adicto (24 Oct. - 22 Nov.)
EXTREMADAMENTE adorable, inteligente, le encanta bromear, tiene muy buen sentido del humor, enérgico, predice el futuro, GRAN besador. Siempre Consiguen lo que quieren. Atractivos, fáciles de tratar, les gusta estar en relaciones largas, comunicativo, romántico ycuidadosos.

SAGITARIO: El Promiscuo (23 Nov. - 22 Dic.)
Espontáneo, gran carisma, difícil de encontrar pero fabuloso cuando lo encuentran. Le gusta ser generoso, lindos, románticos, no lo quieres de enemigo, es bueno con todas las personas que conoce.

CAPRICORNIO: El Amante (23 Dic. - 20 Ene)
Lindo, ama coquetear, y, inteligente, muy ual, predice el futuro, Irresistible. Un loco... muy bueno para ya sabes qué... le gusta estar en relaciones largas. Gran conversador, siempre consigue lo que quiere, divertido, le gusta bromear.

ACUARIO: Como pez en al agua (21 Ene - 19 Feb.)
Confiable, atractivo, buen besador, único en su tipo, le gusta las relaciones a largo plazo, extremadamente enérgico e impredecible. Sobrepasará tus expectativas. No es un luchador pero podría dejarte tirado En el suelo.

PISCIS: El Pasable (20 Feb. - 20 Mar)
Cuidadoso y noble, inteligente, el centro de atención, gran carisma, tiene la última palabra. Es bueno de hallar pero difícil de conservar. Le gusta viajar muchísimo, extremadamente raro pero en el buen sentido de la palabra. Gran sentido del humor! Analítico. Siempre consigue lo que se propone, le gusta bailar, muy popular, tonto, divertido y dulce.
Ver