Dec 30 2006

Presentación en el Blog y Updates en SQL

Buenas a todos y todas.
Voy a aprovechar mi primer post, lo primero para presentarme y después para explicar una curiosidad que me encontré hace tiempo con las Updates de SQL Server.

Soy Sergio, un DAI más de Maria Ana Sanz, soy Analista / Programador y llevo en esto como cosa de 6 o 7 años, ya que con el tiempo uno se hace más mayor y va perdiendo memoria. Desarrollo programas con VB6, .NET, tanto VB.NET y C#, ASP.NET, Com+, SQL Server, Crystal Reports, tratamiento de imágenes DICOM, etc., etc., así que a partir de ahora pasaré a escribir cuando pueda curiosidades sobre las marterias que domino.
Bien ahora pasamos a la primera cuestión curiosa que me encontré un día, con mi ya querido SQL Server, digo querido, porque lo único que me está demostrando es que con el exceso de registros en las tablas, dicho SQL Server, pasa a mutar o algo así, en fin que cambia la forma de trabajar que con pocos registros, empieza a utilizar índices que a priori tú sabes que son menos eficientes, pero a el le da por creer que lo son.
Por ello voy a aprovechar a deciros en este post, que siempre que un procedimiento almacenado, empiece a exceder de tiempo, revisemos el plan de ejecución de dicho procedimiento almacenado, en el servidor donde este aumentando de tiempo y veamos que es lo que falla.
Después de semenjante chapa direis, porque el título pone algo de Updates en SQL, y todavía ni las ha nombrado, pues bien el tema es el siguiente. ¿Habeis intentado forzar un índice alguna vez en una Update?.
Yo la única forma que lo conseguí fue haciendo una vista de la tabla, en la que dicha select forzaba ese índice y luego hacer la Update contra la vista. Lo digo porque igual algún día lo necesita alguien.
Un Saludo
Sergio

Dec 28 2006

VB.NET 2005: Casque y cuelgue

La historia es mu simple. Estoy programando una aplicación de escritorio para PDAs con Visual Studio 2005 (sin el SP1 todavía). Por X razones tenía que capturar el keypress de una textbox de cara a convertir el Enter en Tab. Pos bien, la cosa funciona de maravilla… hasta que debugueas.

Este es el código:

Private Sub txtCajaTexto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCajaTexto.KeyPress
If e.KeyChar = vbCr Then
SendKeys.Send(vbTab)
End If
End Sub

Pos bien, si debugueamos, en el momento que saltemos de SendKeys.Send(vbTab) el bitxo peta, se muere y no te queda más remedio que resetear (menos mal que había guardado los cambios). ¿Alguien sabe porqué ocurre esto? ¿Que me se escapa?

Actualización: Fale, el sendkeys.send(vbtab) manda el tabulador, no a la aplicación, sino a la ventana activa, en este caso el visual studio 2005. Esker anitz Elena!, pero… ¿Porqué peta el bitxo (se queda frito) hasta el punto de tener que resetear?

Dec 24 2006

Cadius Iruñea

Pos nada, aquí estoy, en el bar, currando un poco que hay que pagar hipoteca, aunque es la hora de la cena, así que estamos medio desiertos y, navegando pa pasar el rato, me he encontrado con esta agradable noticia.

Se ha formado, o está en proceso, Cadius Iruñea. Cadius se define a si misma como Una comunidad de profesionales dedicados a la usabilidad, la arquitectura de información y el diseño de interacción. La comunidad se estructura en torno a una lista de discusión y encuentros periódicos en varias ciudades. Fundada en 2001, hoy cuenta con más de 1500 miembros de todo el mundo, en especial de España y Latinoamérica..

La quedada es el 4 de enero, en la Bolera de Tajonar, a las 20:30h., más info en la page de Cadius Iruñea.

Por mi parte, Ongi etorria!!! La comunidad informática de Iruñea crece como la espuma jiji

Dec 22 2006

VB6: Controls(propiedad)

Pos nada, que hemos puesto un control de entrada a una aplicación, por lo que, según quien entre en un formulario concreto puede hacer o no puede hacer ciertas cosas. Dicho formulario tiene como cuatrocientosmil objetos entre textbox, checkbox, etc… así que ¿como pongo el enabled=False de todo cristo de una forma rápida y sencilla? Con la propiedad controls del formulario:

For i = 0 To NombreFormulario.Controls.Count - 1
If TypeOf NombreFormulario.Controls(i) Is TextBox Then
NombreFormulario.Controls(i).Text = ""
End If
Next i

Para controlar otros objetos del formulario basta con cambiar TextBox por el objeto que quieras controlar y listo, de una tacada tienes todo con enabled=False.

Dec 21 2006

Zorionak ta urte berri on!!

Pos eso, que con la llegada del solsticio de invierno, que las cenicas, borracheras y demás cosicas os vayan muy bien. ZORIONAK ETA URTE BERRI ON!!

olentzero

… y a ver si el olentzero se porta este año.

Dec 20 2006

[Off-topic]: Cesta de navidad

Hoy voy a recordar viejos tiempos, antes de convertirme en programador, cuando trabajaba en la fábrica y llegadas estas fechas, teníamos la cesta de navidad, usease, turrones, alcoholes varios, jabugo… pero luego, como programador, se acabo la historia… hasta hoy, jeje.

Cesta navidad

En la foto podeis ver la cesta que este año nos han dado en Línea Informática: Dos botellas de rioja, dos de cava, una de licor de hierbas (ummmmmm), otra de vino galego, lomo, jamon, queso, atún, pate y bombones.

iujuuuuuu!!!! y sí, soy un capuyo (en respuesta a los pensamientos de l@s compas de CyC, jijijiji ;).

Dec 19 2006

Linux: install.party()

Vía Gruslin me llega el siguiente mail:

Buenas…..
Estoy organizando una pequeña installl-party para los dias de navidades. Serán dos dias, el primero una instalacion guiada, y el segundo configuracion y personalizacion del sistema.
Solo animaros a promocionar el evento. Aunque supongo que de los de la lista no necesitareis aprender nada de lo que pueda contar. Si alguno conoce alguien interesado que le avise. Y si alguien quiere pasar a charlar o colaborar , que lo haga sin miedo.
Lugar: Zandua Etxea (Chalet de Gridillas).
Calle Sanducelay 1. En el barrio de San Jorje.
Fecha: 27 y 28 de Diciembre a las 10 de la mañana.
Tambien llevare algo de soft libre para win.
Saludos
Francisco

Porque tengo que currar, que si no… para rato me la pierdo!! Animaros, seguro que es divertido! Ah! es en Iruñea-Pamplona (Nafarroa).

Dec 18 2006

Crystal Reports: Tablas cruzadas.

La historia es que tenía que hacer un listado de clientes, con el acumulado de facturación por meses, y presentarlo en un crystal, de forma que se viese en una sola línea la facturación del cliente, mes a mes y durante un período de tiempo de x años, así como el subtotal del año y de los meses. Lo que he hecho ha sido crearme una tabla temporal con los campos cliente, año, mes, literalmes y total que vienen de una inner de varias tablas de la BBDD.

Hasta aquí sin problemas (estoy contra Acces97, así que olvidaus de procedimientos almacenados o de fliparla con PL/SQL, además, es más fácil así ;).

Tablas cruzadas en Crystal Reports
La tabla de marras.

La dificultad venía en la forma en que teníamos que presentar los datos, usease, una línea por cliente y año donde apareciesen todos los datos del año, para lo cual, en el crystal hemos hecho tablas cruzadas, donde le indicas que campos de la tabla que me he creado son líneas, cuales columnas y cual el dato o campo resumido, quedando la mar de chulo.

Tablas cruzadas en Crystal Reports
Formulario que presenta el crystal para dar formato a tablas cruzadas.
Tablas cruzadas en Crystal Reports
Resultado del formato anterior en diseño.

[!] Si haceis click encima de los campos con el botón derecho, podemos jugar con ellos, jeje.

La putada era que me ordenaba los campos alfabéticamente y no por el orden natural de los meses, pero visto el problema la solución era fácil. Como podeis ver, le hemos dicho que para las columnas hemos puesto el número de mes, pero luego, seleccionando ese campo y dándole al botoncico de opciones de grupo, se abre un formulario, a través del cual, le hemos puesto una fórmula para que, en vez de mostrar ese campo, muestre el campo del literal del mes y… han cantado línea, señores!

Tablas cruzadas en Crystal Reports
Detalle del informe con los datos cruzados.

Si cuando Mónica dice que crystal está bien es por algo… herejes, que sois unos herejes!

Dec 14 2006

2006/12/13: Los programadores y la seguridad

Ayer se realizó el primer evento de NavarraDotNet, para lo que trajeron a Chema Alonso aka Maligno que nos deleito nuevamente con técnicas varias.

NavarraDotNet 2006-12-13

Al evento asistieron alrededor de 75 personas, y por las caras con las que salieron se puede decir que disfrutaron de la cita. La verdad es que Chema estuvo en su línea, divertido y didactico, muy muy didactico, jeje. Una vez más nos demostro lo fragil que es la web y la poca inversión que se realiza en materia de seguridad.

Despues del evento disfrutamos de un pequeño lunch (nos pusimos las botas) y degustacion de cerveza ecológica, jiji. Agradecer tanto al CES como a Microsoft toda la aportación que han realizado, pues sin ellos no hubiese sido posible la realización de dicho evento, así como a tod@s l@s asistentes, esker anitz guziei!

NavarraDotNet 2006-12-13

Vista general de los asistentes.

NavarraDotNet 2006-12-13

Vista general de los asistentes.

NavarraDotNet 2006-12-13

El staff del NavarraDotNet con Chema y gente de Gruslin y Ricardo del CES.

Dec 13 2006

NavarraDotNet: primer evento

Hoy, 13 de Diciembre, es el día, día D hora H, el gran estreno en público del Grupo de Usuarios de .NET de Nafarroa. Os recuerdo a los miembros del Grupo de Usuarios que a las 18:00h. se realizará en el mismo lugar la tercera reunión interna del grupo previa a la sesión. Luego, ya a las 18:30h., dará cominezo la sesión, el primer evento, nuestro desvirgamiento, iujuuuu!!!!!

La agenda del evento es la siguiente:

18:30: Registro
18:45: Bienvenida y presentación - CES, NavarraDotNet
19:00: “Los programadores y la seguridad”. Chema Alonso (MVP Windows Server Security)
21:30: Cena y cierre

Todo se trealizará en el CES. Más información aquí.

Se ruega puntualidad, tanto para la reunión como para la sesión, además, os puedo asegurar que escuchareis buena música, jiji.