lunes, 2 de octubre de 2017

¿QUE ES ODBC?

Open Data Base Conectivity o lo que es lo mismo, conectividad abierta de bases de datos “es un intermediario entre bases de datos y aplicaciones, cuya tarea es sostener una conversación de preguntas y respuestas entre dos “sujetos” que no hablan el mismo idioma y que gestionan sus recursos de forma diferente”. ODBC es entonces un armatoste que alberga controladores. El armatoste sirve para gestionar los controladores, y los controladores son los que saben “hablar” con las bases de datos.
En ODBC no se tiene que hacer gran cosa, es una simple tarea, se llama crear un origen de datos, otros le denominan fuente en vez de origen. Un origen o fuente de datos consiste en el nombre, el controlador y la base de datos. Por ejemplo, si un usuario quiere tener acceso a una base de datos de Access, digamos que se llama Negocio.mdb, desde una hoja de cálculo de Excel para consultar su volumen de ventas por país, este usuario crea un nuevo origen de datos en ODBC llamado Volumen_Ventas (este es, pues, el nombre), después selecciona un controlador para Microsoft Access e indica el archivo de base de datos está en “c:\LaEmpresa\Administración\Negocio.mdb”. Eso es básicamente de lo que se trata.
ODBC asegura una conexión continua desde un cliente, servidor o aplicaciones Web.
ODBC provee una solución completa e independiente para el acceso a datos, porque define estándares para el proceso y acceso físico a las bases de datos. ODBC permite a las aplicaciones cliente desarrollar en una única y común API.
Casi todas las DB actuales tienen un ODBC. Debido a que este elemento impone ciertas limitaciones, ya que no todo lo que la DB sabe hacer es compatible con la aplicación, como velocidad de proceso, tiempos de espera, máxima longitud de registro, número máximo de registros, versión de SQL, etc., está cayendo en desuso a cambio de otras técnicas de programación, pero aún le quedan muchos años de buen servicio.
La tecnología ODBC es utilizada en múltiples plataformas, incluyendo Windows 3.1, Windows NT, OS/2, Macintosh y UNIX, y DBMS´s como DB2, Oracle, SYBASE, INFORMIX, Microsoft SQL Server, DEC, Apple DAL, dBase, Excel, etc.

CARACTERISTICAS

La conectividad de datos para aplicaciones Web y aplicaciones server críticas más escalable y confiable. Connect ODBC 3.5 soporta Microsoft Transaction Server para Oracle 8, SQL Server 7, y los sistemas de bases de datos Sybase Adaptive Server 12.
Es el primer y único ODBC driver para conectividad directa desde aplicaciones UNIX hacia Microsoft SQL Server – Este nuevo soporte permite a las organizaciones desarrollar o desplegar sus datos SQL Server para cliente/servidor y aplicaciones basadas en el Web residiendo sobre UNIX. Cursor scrollable es soportado para todas las bases de datos. Del mismo modo muchas bases de datos y ODBC drivers no soportan cursores de éste tipo. Con Connect ODBC 3.5 usted obtiene soporte para todas sus aplicaciones de ODBC.
DataDirect Connect ODBC libera el ODBC driver para aplicaciones en plataforma Irix y bases de datos como Informix y Sybase.

EN RECURSOS ODBC

A partir de este momento, trabajaremos con nuevos objetos, los cuales nos permiten establecer la comunicación entre el cliente y servidor de bases de datos.
El primero es el Objeto Connection, el cual nos permitirá conectarnos a la base de datos, este objeto tiene una serie de colecciones, propiedad y métodos propios que nos permiten manipular las operaciones con la bases de datos.
Luego tenemos el Objeto Recorset (Conjunto de registros), mediante el cual realizaremos las operaciones sobre las tablas de la base de datos. Además se encuentra el Objeto Error, con el cual podremos controlar los eventos no deseados que ocurran sobre un recordset o una conexión.

CAMPO DE APLICACIÓN Y ALCANCE

“La tecnología ODBC proporciona una interfaz común para acceder a bases de datos SQL heterogéneas”(18). ODBC se basa en SQL como estándar de acceso a los datos. Esta interfaz proporciona una interesante interoperabilidad, ya que gracias a ella una misma aplicación puede acceder a diferentes SGBDs SQL (Sistema de Gestión de Base de Datos) a través de un conjunto común de instrucciones. Esto permite a los desarrolladores construir y distribuir aplicaciones cliente/servidor no ligadas específicamente a una base de datos determinada. Cada usuario añade luego el ‘driver’ correspondiente, el cual se encarga de enlazar la aplicación con el SGBD de su elección. Los drivers aíslan a la aplicación de llamadas específicas para una base de datos determinada, de la misma manera que los drivers de impresora evitan que los procesadores de texto tengan que incorporar comandos específicos de impresión para cada tipo de máquina.
Así pues, ODBC es la especificación de una API para bases de datos, independiente del SGBD y del sistema operativo y, aunque Microsoft presenta la especificación en C, también del lenguaje de programación. ODBC se basa en las especificaciones CLI (Call Level Interface) de ISO y X/Open. ODBC 3.0 implementa completamente estas dos especificaciones públicas (las versiones anteriores de ODBC estaban basadas en versiones preliminares de estas especificaciones pero no las implementaban completamente) y añade algunas prestaciones que normalmente necesitan los desarrolladores como cursores de ‘scroll’ en pantalla.
Las funciones en la API ODBC son implementadas por los desarrolladores de drivers específicos para un SGBD. Las aplicaciones llaman a las funciones contenidas en estos drivers para acceder a la información de una manera no dependiente de la naturaleza específica de la base de datos.


JDBC vs. ODBC

“ODBC(Open DataBase Connectivity:Conectividad abierta de BD) es la interface para conectarse con BD relacionales mas usada por los programadores de aplicaciones”(19).Nos preguntaremos que significado tiene entonces JDBC si ya existe una interficie popular que supuestamente hace lo mismo. La respuesta es que usaremos JDBC por diferentes razones:
ODBC usa una interface escrita con el lenguaje de programación C.Por lo tanto como que C no es un lenguaje portable las aplicaciones JAVA perderían también automáticamente su portabilidad.
ODBC se ha de instalar manualmente en cada máquina, en cambio los drivers de JDBC como están escritos en JAVA son automáticamente instalables, portables y seguros.
Hay que decir también, que existen drivers puente entre JDBC-ODBC. Estos drivers traducen las llamadas de JDBC a ODBC permitiendo comunicarse con BD propietarias que no tienen ni idea de que existe JAVA. De esta manera por ejemplo podemos trabajar con una BD Access de Microsoft que usa ODBC, con el lenguaje JAVA.

PUENTE JDBC/OBDC


JDBC es la API estándar de acceso a Bases de Datos con Java, y se incluye con el Kit de Desarrollo de Java (JDK) a partir de la versión 1.1. Sun optó por crear una nueva API, en lugar de utilizar APIs ya existentes, como ODBC, con la intención de obviar los problemas que presenta el uso desde Java de estas APIs, que suelen ser de muy bajo nivel y utilizar características no soportadas directamente por Java, como punteros, etc. Aunque el nivel de abstracción al que trabaja JDBC es alto en comparación, por ejemplo, con ODBC, la intención de Sun es que sea la base de partida para crear librerías de más alto nivel, en las que incluso el hecho de que se use SQL para acceder a la información sea invisible.
Para trabajar con JDBC es necesario tener controladores (drivers) que permitan acceder a las distintas Bases de Datos: cada vez hay más controladores nativos JDBC. Sin embargo, ODBC es hoy en día la API más popular para acceso a Bases de Datos: Sun admite este hecho, por lo que, en colaboración con Intersolv (uno de principales proveedores de drivers ODBC) ha diseñado un puente que permite utilizar la API de JDBC en combinación con controladores ODBC. Un último detalle: algunos fabricantes, como Microsoft, ofrecen sus propias APIs, en lugar de JDBC, como RDO, etc. Aunque estas APIs pueden ser muy eficientes, y perfectamente utilizables con Java, su uso requiere tener muy claras las consecuencias, sobre todo la pérdida de portabilidad.
JDBC-ODBC bridge plus ODBC driver (tipo 1): este driver fue desarrollado entre Sun e Intersolv y permite al programador acceder a fuentes de datos ODBC existentes mediante JDBC. El JDBC-ODBC Bridge (puente JDBC-ODBC) implementa operaciones JDBC traduciéndolas a operaciones ODBC, se encuentra dentro del paquete sun.jdbc.odbc (que se encuentra incluido dentro del JDK a partir de la versión 1.1) y contiene librerías nativas para acceder a ODBC. Se debe señalar que en cada máquina cliente que utilice el driver es necesaria una configuración previa, es decir, deberemos definir la fuente de datos utilizando para ello el gestor de drivers ODBC que los podemos encontrar dentro del Panel de Control de Windows. Debido a esta configuración en las máquinas clientes, este tipo de driver no es adecuado para utilizarlo dentro de applets, su utilización está más encaminada a aplicaciones Java dentro de pequeñas intranets en las que la instalaciones en los clientes no sean un gran problema o para aplicaciones Java que pueden actuar de capa intermedia dentro de un modelo de tres capas, como se veía anteriormente. Además debido a que el puente JDBC-ODBC contiene parte de código nativo, no es posible utilizarlos dentro de applets, debido a las restricciones de seguridad de éstos. Desde Javasoft (una división de Sun) nos sugieren que el uso del puente JDBC-ODBC se limite al tiempo que tarden en aparecer drivers JDBC de otro tipo para la base de datos a la que queremos acceder, esta advertencia es debida a que muchos drivers ODBC no están programados teniendo en cuanta la programación multiproceso (multithreading), por lo que se pueden producir problemas a la hora de utilizar el puente JDBC-ODBC.

domingo, 1 de octubre de 2017

¿QUE ES VISUAL BASIC?



Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre los programadores de PCs, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo (comparado con lo que cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones.

Visual Basic 6.0 es un lenguaje de programación visual, también llamado lenguaje de 4ª generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla.

Visual Basic 6.0 es también un programa basado en objetos, aunque no orientado a objetos como C++ o Java. La diferencia está en que Visual Basic 6.0 utiliza objetos con propiedades y métodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++.

En este primer capítulo se presentarán las características generales de Visual Basic 6.0, junto con algunos ejemplos sencillos que den idea de la potencia del lenguaje y del modo en que se utiliza.
Objetos y Propiedades
Los formularios y los distintos tipos de controles son entidades genéricas de las que puede haber varios ejemplares concretos en cada programa. En programación orientada a objetos (más bien basada en objetos, habría que decir) se llama clase a estas entidades genéricas, mientras que se llama objeto a cada ejemplar de una clase determinada. Por ejemplo, en un programa puede habervarios botones, cada uno de los cuales es un objeto del tipo de control command button, que sería la clase.

TEXTBOX:


Text: texto que aparecerá en el control.

Name: nombre del control.

Multiline: nos permite introducir varias lineas de texto.

Alignment: Alineación que tendrá el texto dentro del control que puede ser izquierdo, derecho, centrado.

Visible: si esta propiedad esta en falso la caja de texto no sera visible cuando este en ejecución el programa. si está en verdadero si se podrá ver.

Maxlength: numero máximo de caracteres que tendrá el control.

Looked: Con esta propiedad podemos bloquear el control para que el usuario no pueda escribir ni modificar.

Backolor: Color que tendrá el fondo de la caja de texto.

Forecolor: Es el color de la letra que tendrá el control.

Font: tipo y tamaño que contendrá el control.

Height,Left,Top,Width : Se refieren al tamaño del Espacio reservado para las Text Box.


lABEL:


Caption: texto que contendrá el control.

BorderStyle: borde al rededor del texto.

BackStyle: borde transparente o no transparente.

Backcolor: Para cambiar color del fondo.

Visible : Si está en True el control está visible si está en False está oculto.

Name: es el nombre del control y sirve para hacer referencia al mismo en el código, como todos los controles.

Enabled: Si está en True (Verdadero) el control está activado y se puede utilizar normalmente, si se encuentra en False, el control está desactivado.

FontName: El nombre de la fuente que utilizará el texto del control. Podemos elegir las que tengamos instaladas en el sistema.

Forecolor: indica el color del Texto.

Height y Width: Ancho y alto del Label.

ToolTipText: muestra el mensaje de descripción cuando pasamos el mouse por encima del control.


COMMANDBUTTON:

Caption: texto para el usuario.
Enable: Inhavilita o habilita el control con el fin de que ese disponible para el usuario.

Style: cuando esta en 1 habilita al backcolor y cuando esta en 0 lo deshabilita.


PICTURE E PICTURE:

Name: Especifíca el nombre del control para poder referenciarlo e identificarlo.
Appearance: Esta propiedad determina si el Image posee o no efecto 3d con respecto a su apariencia. Los valores son: 1 - 3D y 0 - None. Para que esta propiedad se pueda utilizar, la propiedad BorderStyle debe estar con el valor 1.

BorderStyle: Determina si el control Image posee o no un borde. Al igual que el anterior tiene dos posibles valores, 0 sin borde o 1 con borde.

Picture: Esta es la propiedad principal del control, que también es la propiedad por defecto o default. Picture es la que establece la imagen o gráfico que mostrará el control.

Stretch: Esta es una de las propiedades mas importantes. Si está en True la imagen se ajustará al tamaño que posea el control Image, si está en False el control Image es el que se adaptará al tamaño y dimensiones de la imagen.

Las demás propiedades son las clásicas y comunes para la mayoría de los controles, como la propiedad Index, Visible, Enabled, ToolTipText, Width, Height, etc...

FRAME:


Name : Este es el nombre como se le reconocera al objeto durante el programa, se acostumbra escribir frm antes del nombre para saber que es un Frame (Ej: frmFondo)..

Caption : Este es el mensaje que se quiere que aparesca en el Frame.

Height,Left,Top,Width : Se refieren al tamaño del Espacio reservado para los Frames.

Font : Permite escoger el tipo de letra, tamaño y estilo de la letras a usar.
BorderStyle: si esta en 0 no dibuja el recuadro.

CHECKBOX Y OPTIONBUTTON :

Name : Este es el nombre como se le reconocera al objeto durante el programa, se acostumbra escribir chk o rdb antes del nombre para saber que es un check box o radio Button (Ej: chkop1 o rdbop1).

Enable : Este parametro permite que el Boton este habilitado o deshabilitado.

Value : Indica si esta precionado o no el boton.

Height,Left,Top,Width : Se refieren al tamaño del Espacio reservado para los Check box y los option Button.

Caption : Este es el mensaje que se quiere que aparesca a la par del radio Button o del Check Box.

LITSBOX:

Name : Este es el nombre como se le reconocera al objeto durante el programa, se acostumbra escribir lst antes del nombre para saber que es un List Box (Ej: lstLista).

List : Aqui podemos ingresar los elementos nuevos al List Box.

Font : Permite escoger el tipo de letra, tamaño y estilo de la letras a usar.

sorted: si el valor es verdadero la lista aparecera en orden alfabetico.

Height,Left,Top,Width : Se refieren al tamaño del Espacio reservado para los List Box.


SCROLL BAR:

Name : Este es el nombre como se le reconocera al objeto durante el programa, se acostumbra escribir scb antes del nombre para saber que es un Scroll Bar (Ej: scbFila).

Max : Este indica el valor maximo que puede alcanzar el Scroll al moverse.

Min : Es el valor minim con el cual empieza la barra de Scroll.

Height,Left,Top,Width : Se refieren al tamaño del Espacio reservado para los Scroll Bar.


SHAPE:

Shape: esta propiedad es la forma que tomara nuestro control.
Bordercolor: color del borde.
Borderstyle: estilo del borde.
Border whidth: ancho del borde.
Fillcolor: este es el fondo, esta funciona si filestyle en opaco.


Características

Visual Basic 6.0 soporta la abstracción, la encapsulación, el poliformismo y la reutilización del código.

            Los objetos de Visual Basic están encapsulados; es decir, contienen su propio código y sus propios datos.

            Los objetos de Visual Basic tienen propiedades, métodos y eventos. Las propiedades son los datos que describen un objeto. Los eventos son hechos que pueden ocurrir sobre un objeto (un clic sobre un botón es un evento que produce un mensaje). Un método agrupa el código que se ejecuta en respuesta a un evento.

            Al conjunto de propiedades y métodos se le llama interfaz. Además de su interfaz predeterminada, los objetos pueden implementar interfaces adicionales para proporcionar poliformismo. El poliformismo le permite manipular muchos tipos diferentes de objetos sin preocuparse de su tipo.

            Las interfaces múltiples son una característica del modelo de objetos componente (COM) y permiten que los programas evolucionen con el tiempo, agregando nueva funcionalidad sin afectar al código existente.

            La reutilización del código es la capacidad de trasladar características de un objeto a otro, lo que se logra con alguna forma de herencia. Existen principalmente dos formas de reutilización del código: binario y fuente. La reutilización del código: binario y fuente. La reutilización de código fuente se consigue mediante la creación y uso de un objeto, mientras que la reutilización de código fuente se consigue por herencia, lo que no se permite en Visual Basic. En una jerarquía de clases, la herencia muestra cómo los objetos que se derivan de otros objetos más simples heredan su comportamiento. Por el contrario, los modelos de objetos son jerarquías que describen la contención. Es decir, muestran cómo objetos complejos como una hoja de cálculo, contienen colecciones de otros objetos, como botones o imágenes. Un control activo normalmente opera como un componente software reutilizable, que se incorpora en una aplicación como Microsoft Excel, en una página Web, o en cualquier otra aplicación Visual Basic o visual C++.
 

Objetos de bases de datos


Constructores

Nombre
Descripción
ADODC()
Inicializa una nueva instancia de la clase ADODC.



 
Propiedades


Nombre

Descripción



AccessibilityObject

Obtiene AccessibleObject asignado al control.(Heredado de Control).



AccessibleDefaultActionDescription

Obtiene o establece la descripción de la acción predeterminada del control que usan las aplicaciones cliente de accesibilidad.(Heredado de Control).



AccessibleDescription

Obtiene o establece la descripción del control que las aplicaciones cliente de accesibilidad utilizan.(Heredado de Control).



AccessibleName

Obtiene o establece el nombre del control que las aplicaciones cliente de accesibilidad utilizan.(Heredado de Control).



AccessibleRole

Obtiene o establece el rol accesible del control. (Heredado de Control).



ActiveControl

Obtiene o establece el control activo en el control contenedor.(Heredado de ContainerControl).



AllowDrop

Obtiene o establece un valor que indica si el control puede aceptar los datos que el usuario arrastra al mismo.(Heredado de Control).



Anchor

Obtiene o establece los bordes del contenedor al que está enlazado un control y determina cómo se cambia el tamaño de un control con su elemento primario.(Heredado de Control).



AutoScaleDimensions

Obtiene o establece las dimensiones a las que se diseñó el control.(Heredado de ContainerControl).



AutoScaleFactor

Obtiene el factor de escala entre las dimensiones de escala automática actuales y en tiempo de diseño.(Heredado de ContainerControl).



AutoScaleMode

Obtiene o establece el modo de escala automática del control.(Heredado de ContainerControl).



AutoScroll

Obtiene o establece un valor que indica si el contenedor permitirá que el usuario se desplace a los controles situados fuera de los límites visibles.(Heredado de ScrollableControl).



AutoScrollMargin

Obtiene o establece el tamaño del margen de desplazamiento automático.(Heredado de ScrollableControl).



AutoScrollMinSize

Obtiene o establece el tamaño mínimo del desplazamiento automático.(Heredado de ScrollableControl).



AutoScrollOffset

Obtiene o establece a dónde se desplaza este control en ScrollControlIntoView.(Heredado de Control).



AutoScrollPosition

Obtiene o establece la ubicación de la posición de desplazamiento automático.(Heredado de ScrollableControl).



AutoSize

Esta propiedad no es relevante para esta clase.(Heredado de UserControl).



AutoSizeMode

Obtiene o establece cómo el control cambiará su tamaño.(Heredado de UserControl).



AutoValidate

Obtiene o establece cómo realiza el control la validación cuando el usuario cambia el foco a otro control.(Heredado de UserControl).



BackColor

Obtiene o establece el color de fondo de ADODC.(Invalida Control.BackColor).



BackgroundImage

Obtiene o establece la imagen de fondo que se muestra en el control.(Heredado de Control).



BackgroundImageLayout

Obtiene o establece el diseño de imagen de fondo como se define en la enumeración ImageLayout.(Heredado de Control).



BindingContext

Obtiene o establece la plantilla BindingContext para el control.(Heredado de ContainerControl).




Obtiene un valor que indica si la posición de la fila actual está delante de la primera fila de un objeto Recordset.




Obtiene o establece un valor que indica la acción que el control ADODC lleva a cabo cuando la propiedad BOFes true.




Obtiene o establece el estilo de borde del control de usuario.(Heredado de UserControl).




Obtiene la distancia, en píxeles, que existe entre el borde inferior del control y el borde superior del área cliente de su contenedor.(Heredado de Control).




Obtiene o establece el tamaño y la ubicación del control incluyendo sus elementos no cliente, en píxeles, con respecto al control primario.(Heredado de Control).




Obtiene o establece el número de registros que se almacenan en la memoria caché local para el objeto Recordset actual.

 

 
 




 
Ventajas

-Es un lenguaje RAD.
-Posee una curva de aprendizaje muy rápida.
-Integra el diseño e implementación de formularios de Windows.
-Permite usar con suma facilidad la plataforma de los sistemas Windows.
-El código en Visual Basic es fácilmente migrable a otros lenguajes.
-Acostumbra a los desarrolladores a programar con eficiencia.

Desventajas

-Sin soporte de Microsoft desde el 4 de Abril de 2008 (Pero el  MSDN es muy completo).
-No es multiplataforma (Sin embargo se pueden usar emuladores e interpretes para correrlos en otras plataformas).
-Por defecto permite la programación sin declaración de variables. (que puede ser sencillamente corregida escribiendo la frase Option Explicit en el encabezado de cada formulario, en cuyo caso -será menester declarar todas las variables a utilizar, lo que a la postre genera código más puro).
-No permite programación a bajo nivel ni incrustrar secciones de código en ASM
-Sólo permite el uso de funciones de librerías dinámicas (DLL) stdcall.
-Algunas funciones están indocumentadas (Sin embargo esto ocurre en muchos lenguajes).
-Es un lenguaje basado en objetos y no orientado a objetos.
-No maneja muy bien los apuntadores de memoria.
-No soporta tratamiento de procesos como parte del lenguaje.
-No incluye operadores de desplazamiento de bits como parte del lenguaje.
-No permite el manejo de memoria dinámica, punteros, etc. como parte del lenguaje.
-No avisa de ciertos errores o advertencias (se puede configurar el compilador para generar ejecutables sin los controladores de desbordamiento de enteros o las comprobaciones de límites en matrices entre otros, dejando así más de la mano del programador la tarea de controlar dichos errores)
-No tiene instrucciones de preprocesamiento.
-El tratamiento de mensajes de Windows es básico e indirecto.
-La gran gama de controles incorporados son, sin embargo en algunos casos, muy generales, lo que lleva a tener que reprogramar nuevos controles para una necesidad concreta de la aplicación. -Esto cambia radicalmente en Visual Basic .NET donde es posible reprogramar y mejorar o reutilizar los controles existentes.
-Los controles personalizados no mejoran la potencia de la API de Windows, y en determinados casos acudir a ésta será el único modo de conseguir el control personalizado deseado.