sábado, 11 de octubre de 2014

IBAN y BIC, validación con SQL Server y .NET

Recientemente en la zona SEPA (Single Euro Payments Area)  se han establecido nuevos formatos para las cuentas bancarias. El antiguo código  de cuenta corriente CCC ha sido sustituido por el nuevo International Bank Account Number, IBAN. Además se ha creado un nuevo código Bank Identification Code BIC.

Voy  a describir cómo implementar dos funciones de SQL Server para que validen ambos códigos y luego estas funciones se puedan utilizar desde .Net, para los ejemplos de .Net voy  a utilizar Visual Basic.

Validador de IBAN y BIC
Imagen de gophoto.

sábado, 4 de octubre de 2014

C++, punteros, templates (plantillas)

Operaciones con punteros.
Tipos genéricos. Plantillas. ( Templates ).
Typedef.
El operador sizeof.
Constructores. Objetos de la clase.

Operaciones con punteros


El lenguaje C++ ofrece cinco operaciones básicas con punteros.
1- Asignación: Consiste en asignar una dirección a un puntero. Normalmente se empleará el nombre de un array o con el operador dirección (&). En el siguiente ejemplo, se asigna a punt1 la dirección del inicio de un array llamado arr. En la variable punt2 colocamos la dirección del tercer y último elemento, arr[2].
static int arr[] = { 10,20,30};
int *punt1, *punt2;
punt1 = arr// asigna una dirección al puntero

punt2 = & arr[2];


sábado, 27 de septiembre de 2014

SQL Server, tablas temporales

Algunas veces puede ser interesante, sobre todo para un programa informático, crear una tabla temporal en SQL Server  utilizarla para un propósito determinado y eliminarla.
Las tablas  temporales son como las tablas normales y corrientes de SQL Server pero al apagar el equipo desaparecen pues sólo existen en la memoria RAM.
Estas tablas se nombran con el símbolo # delante del nombre.


Para crear una tabla temporal basta con hacer una select o una vista de la tabla o tablas de la que queramos manejar los datos y tomar sólo los campos que nos interesan. Los ejemplos que voy a mostrar son muy sencillos pero se pueden complicar todo lo que queramos.

SQL Server, tablas temporales

sábado, 20 de septiembre de 2014

SQL Query analycer. Depurar un procedimiento almacenado (SP)

Introducción

En esta ocasión voy a explicar como ver lo que hace exactamente un sp utilizando el Query analycer de SQL SERVER. En vez de seguir la ejecución del sp paso a paso como si fuera un programa, lo que hacemos es convertirla en una consulta de SQL SERVER y ejecutarla para que devuelva el mismo resultado que si fuera una consulta más simple.

En muchas ocasiones los procedimientos almacenados (sp) contienen variables que comienzan por @ y no permiten su ejecución directa desde el analizador de consultas. Pero el método de depuración paso a paso con VS2005 puede ser demasiado tedioso o incluso no darnos la información que necesitamos.
Una forma más sencilla de ejecutar un sp rápidamente consiste el convertir en código ejecutable por SQL SERVER el sp a analizar y ejecutarlo directamente para ver el resultado.

Este ejemplo es tan sencillo que parecerá una perogrullada por que la salida será igual que la entrada. Pero en procedimientos muy complejos puede ser imposible su ejecución directa y tendremos que retraducir el procedimiento de este modo que se explicará a continuación. Por motivos didácticos no he considerado poner un sp más complejo.

Análisis del Procedimiento Almacenado



Para empezar abrimos en una nueva ventana el código del sp que deseamos depurar. Para ello, situados sobre el explorador de objetos de SQL SERVER desplegamos la lista de procedimientos almacenados y con el botón derecho del ratón elegimos la opción  Incluir procedimiento almacenado como-> CREATE To -> Nueva Ventana del editor de consultas.

Analizar un procedimiento almacenado complejo

sábado, 13 de septiembre de 2014

C++, Puntero implícitoTHIS, friend

El puntero implícito this
Saltar el sistema de protección. ( Friend )
Miembros static de una clase
Funciones virtuales

El puntero implícito this


Cada objeto de una determinada clase mantiene su propia copia de los datos miembro de la clase, pero no de las funciones miembro, de estas sólo existe una copia para todos los objetos de la clase; es decir, cada objeto tiene su propia estructura de datos, pero todos comparten el mismo código para cada función miembro. De este modo si necesitamos que una función miembro conozca la identidad de cada objeto para el que ha sido llamada, en C++ debemos invocar un puntero al objeto denominado this. Así por ejemplo, si declaramos un objeto.


Empleado.set_empleado( );

Puntero This, C++

sábado, 6 de septiembre de 2014

C++, funciones sobrecargadas, referencias

Funciones sobrecargadasPaso de parámetros por referenciaReferencia como valor retornadoClases con miembros que son punterosArrays de objetos y de punteros a objetosPunteros a miembros de una clasePunteros como argumentos de funciones


Funciones sobrecargadas

Se dice que una función está sobrecargada cuando se declara una función previamente declarada con distinto número y/o tipo de parámetros pero con el mismo nombre. Es un concepto de programación orientada a objetos llamado polimorfismo. (Muchas declaraciones de una misma función).

Cada función suele tener un nombre que la distingue de las demás. Pero se pueden presentar casos en los que varias funciones ejecuten la misma tarea sobre objetos de diferentes tipos, y puede ser interesante que dichas funciones tengan el mismo nombre. Por ejemplo podemos definir una función Mover para cada tipo de movimiento de una pieza distinta de ajedrez y llamar a todas las funciones con el nombre mover pero distinguirlas por el número y/o el tipo de los parámetros sean diferentes.

C++, funciones sobrecargadas, referencias