3284

88
HUGO FRANCESCO MONTERROSO RIVERA DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) .t UTILIZANDO ADO ---- universidad ---- FRANCISCO MARROQUIN Facultad de Ingenierfa de Sistemas, Informatica y Ciencias de la Computacion GUATEMAl,A, 2001 ,,--- --------------

Transcript of 3284

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 1/88

 

HUGO FRANCESCO MONTERROSO RIVERA

DESARROLLO EN VISUAL BASIC 6.0 PARA BASES

DE DATOS RELACIONALES (INFORMIX).t

UTILIZANDO ADO

---- universidad ----

FRANCISCO MARROQU IN

Facultad de Ingenierfa de Sistemas,

Informatica y Ciencias de la Computacion

GUATEMAl,A, 2001

,,--- --------------

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 2/88

 

ESTA TESIS FUE ELABORADA POR LOS AUTORES COMO REQUISITO PREVIO

A OBTENER EL TITULO DE LICENCIADO EN ADMINISTRACI6N DE

SISTEMAS DE INFORMACI6N

GUATEMALA, JUNIO DE 2001

,,----

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 3/88

 

DEDICATORIA

A

Mi esposa, M6nica Patricia,

por el amor que me brinda,

el cual me hace lograr mis metas.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 4/88

 

Guatemala, 20 de julio del 2001.

Doctor

Jose Eduardo Suger Cofifio

Decano de la Facultad de Ingenieria de Sistemas,

De Informatica y Ciencias de la Computacidn

Universidad Francisco Marroquin

Ciudad

Estimado Doctor Suger:

Por medio de la presente, tengo el gusto de informar a usted que he asesorado y

revisado la tesis elaborada por los estudiantes VERONICA CURUMACO

AGUILAR camet 1592269, HUGO FRANCESCO MONTERROSO RIVERA,

camet 1594062, y RICARDO ESTRADA TORAYA, camet 1594335, titulada

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASE DE DATOSRELACIONALES (INFORMIX) UTILIZANDO ADO", en mi criterio cumple

con los requisitos academicos de nuestra facultad, por 10que en mi calidad de asesor

recorniendo su aceptacion.

Deseo aprovechar la oportunidad para agradecer a los estudiantes el empefio en el

trabajo desarrollado, estoy seguro que contribuira como una herrarnienta al servicio dela Universidad..

Atentamente,

: > J ~ ~ v . < c fLic. Saul Pereira

Colegiado No. 5186,

Colegio de Ingenieros de Guatemala.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 5/88

 

UNIVERSIDAD FRANCISCO MARROQUIN

FACULTAD DE INGENIERIA DE SISTEMAS,

INFORMATICA Y CIENCIAS DE LA COMPUTACION

Guatemala, 31 de Julio de 2001

Doctor

E du ar do S ug er C ofiiio

D ecano de la Facu lt ad d e I ng en ie ri a

de S is temas, I nformat ica y Cienciasde fa Computacion

Doctor Suger:

Por este medio, me permito comunicarle que lei la tesis del alumno HUGO

FRAN CESC O MON TERRO SO RIVERA, came 1594062, titulada "D ESA RRO LLO E N

VISU AL BASIC 6.0 PAR4 BASE DE DATOS REL4CIONALES (INFORMIX)

U TIL IZ ANDO ADO " a se so rad a p or e l L ic en ciad a Sou! Pereira.

D espues de revisarla detenidamente y d e h ac er la s re come nd ac io ne s pertinentes,

en m i calidad de revisora de redaccion, estilo y ortografia; Je inform o que dicha tesis

!lena lo s requisitos que e xig e fa Un iv er sid ad :

M e suscribo del Senor D ecano, com o su atenta y s egu ra servido ra .

AJHlbv

c . c. Arch ivo

7a. avenida final (Calle Dr. Eduardo Suger Cofifio), Zona 10, Edificio Dr. Manuel F. Ayau, Guatemala. CA.

PlantaFISICC: 331-4948· 362-2725· 331-4807· 360-1893· 332-2033 • Fax: 331··1645

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 6/88

 

UNIVERSIDAD FRANCISCO MARROQUIN

FACULTAD DE INGENIERlA DE SISTEMAS,

INFORMATICA Y CIENCIAS DE LA COMPUTACION

Guatemala, 6 de agosto de 2001

Senor

Hugo Francesco Monterroso Rivera

Presente

Estimado senor Monterroso:

Tengo mucho gusto en inforrnarle que, despues de haber revisado su trabajo de Tesis, cuyo titulo

es "DESARROLLO EN VISUAL BASIC 6.0 PARA BASE DE DATOS RELACIONALES

(llNFORMIX) UTILIZANDO ADO", Y de haber obtenido el dictamen del asesor especifico,

autorizo la publicaci6n del mismo.

Aprovecho la oportunidad para felicitarlo por el magnifico trabajo realizado, el cual es de

indiscutible beneficio para el desarrollo de las Ciencias de Computaci6n en Guatemala.

Atentamente,

FACU~TAD DE INGENIERIA DE SISTEMAS,

INFORMATI A Y CIENCIAS DE LA COMPUTACION

<,

,

Dr. ger C.

Dec no Cu

ESC/cdec.-

7a. avenida final (Calle Dr. Eduardo Suger Cofifio ). Zona 10, Eclificio Dr. Manuel F Ayuu, Gu.ucmaln, C /\

Planta FISICC: 331-4948· 362-2725 • 331-4807 • 360-1893 • 332-2033 • Fax: : 1 3 1-1(4)

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 7/88

 

AGRADECIMIENTOS

ADios: Por ser mi luz y gUla en el desarrolllo de

mi vida.

Victor Hugo y Ana Maria, por darme la vida

yapoyo incondicional.

Moises y Clemencia, por sus consejos y

apoyo en el inicio de mi carrera.

A mis padres:

A mis abuelitos:

A mi esposa: M6nica, por su apoyo, paci.encia y

A mis suegros:

comprensi6n.

Hugo Rafael y Patricia Amparo, por sus

consejos.

A mis hermanos: Julissa, Hugo, Pablo, por su amor

Al Licenciado:

fraternal.

Saul Pereira por su ejemplo y asesorla para

la elaboraci6n de la tesis.

Al cuerpo Docente de esta Facultad, por sus ejemplos y

ensefianzasen esta noble profesi6n.

A mis amigos y compafieros de estudio con quienes comparti

experiencias que no olvidare jamas.

ii

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 8/88

 

INDICE

INTRODUCCION

CAPITULO I

1. CONCEPTOS GENERALES ••••••••••••••••••••••••••••••••••••• 4

1.1 Ambiente Cliente-Servidor 4

1.2 Bases de Datos Relacionales 4

1.3 Integridad de Datos 7

1 .3 .1. La Llave Primaria 8

1 .3.2. Llave Foranea 9

1.3.2.1. Integridad Referencial 10

1.4. Tipos de Relaciones 11

1.4.1. Uno a muchos 11

1.4 .2. Uno a uno 12

CA.PITULO II

2. EL CLIENTE 14

2 .1. Recursos 14

2.1.1. Visual Basic Versi6n 6.0 14

2.1.1.1. ADO(Objetos de datos ActiveX) 15

2.1.1.1.1. Entorno de datos 16

C:c)nt 1"01 de datos ADO 17

r t - >~j

2.1.1.1.3. Enlace de datos mejorado 17

2.1.1.1.4. Compatibilidad con OLE DB 18

2.1.1.1.5. Integraci6n de las herramientas visuales de

base de datos 18

2.1.1.1.6. Mejoras en los datos del Asistente para

instalar 19

2.1.1.1.7. Informe de datos 19

2.1.1.1.8. Origenes de datos 19

2.1.1.1.9. Vent ana Vista Datos 20

2 .1 .1 .1 .10. Edi tor SQL 20

2.1.1.1.11. Control Hierarchical FlexGrid 20

iii

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 9/88

 

2.1.1.1.12. Control DataRepeater 21

2.1.1.1.13. Pasar Objetos Recordset de ADO 21

2.1.1.1.14. Mejoras del Asistente para formulaci6n de

datos 21

2.1.1.1.15. Asistente para objetos de datos 22

2.1.1.1.16. Objetos del sistema de archivos 22

2.1.1.1.17. Objetos Format 22

2.1.1.1.18. Control DataGrid 23

2.1.1.1.19. Control DataList, controles DataCombo 23

2 .1 .2. ODBC 23

2.1.3. Informix-Cli 24

2.1.3.1. Componentes de Configuraci6n 27

2.1.3.2. ODBC Data Source(Origen de Datos ODBC) 29

2.1.3.3. Services Files(Archivos de Servicios) 30

2.1.3.4. Probando la conexi6n 31

2.1.4. Red 32

CAPITULO III3. EL SERVIDOR ..............••.........•.••.•......•...... 33

3.1 Recursos 33

3 .1.1. Unix 33

3.1.1.1. Antecedentes 33

3.1.1.2. Historia de Unix 35

3.1.1.2.1. Caracteristicas y Mejoras de Unix System V

Release 4 37

3.1.1.3. Conexi6n al Servidor 37

3 .1.2. Informix 39

3.1.2.1. Informix Internet Foundation 2000 40

3.1.2.2. Inforimx Dynamic Server 41

3.1.2.3. Herramientas de desarrollo de aplicacionesInformix 42

3.1.2.3.1. Dynamic 4GL 43

iv

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 10/88

 

CAPITULO IV4. TRABAJANDO CON EL ACCESO A DATOS POR MEDIO DE LA TECNOLOGIA

ADO ••••••••••••••••••••••••••••••••••••••••••••••••••• e· 4 5

4.1 Modelo ADO 45

4.2 (_Por que usar ADO? 49

4.3 Comparando ADO con DAO y RDO 50

4.4 Conexi on a la Base de Datos 51

4.5 Consultas a la Base de Datos 52

4.6 Desplegando y editando registros de la Base de Datos.53

4.7 Otros objetos para manipular datos 53

4.7.1. Conex i.on 54

4 .7 .2. Comando 55

4.7.3. Parametro 56

4.7.4. Recordset 56

4 .7 .5. Campo............................................ 57

4 .7 .6. Error 57

4.8. Tutorial ADO 57

4.8.1. Abriendo una conex ion 59

4 .8 .2. Creando un comando 61

4.8.2.1. Comando parametrizado 62

4.8.3. Ejecuc Lon del comando 63

4.8.4. Manipulacion de datos 67

4.8.5. Actualizacion de datos 71

4.8.6. Conclusion de la actualizacion 73

4.8.7. Tutoria ADO en Visual Basic 74

Conclusiones 76

Recomendaciones 77

Bibliografia 78

v

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 11/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

INTRODUCCION

En epoca de cambio, la tecnologfa va mas aILa cada dfa

haciendo al ser humane dependiente de ella. ~ste es un factor

que se debe considerar, puesto que en estos dfas es necesario

para cualquier empresa, tener a su diaposLci.on la tecnologfa

para poder sobrevivir. Lo optimo en este tiempo es utilizar e1

modele C1iente/Servidor, el cual ofrece distintos beneficios a

cualquiera que 10 desee utilizar en su mas mfnimo, como en su

maximo poder. Este modele tiene un ambiente poderoso, donde el

Cliente procesa informacion como tambien el Servidor y dichos

procesos divididos hacen que la informacion que viaja de uno a

otro en fracciones de milisegundos, sea una informacion va1iosa

en tiempo, puesto que no se sobresatura un lado ni el otro,

sino mas bien se guarda un equilibrio para que este beneficia

sea exp1otado al ciento por uno.

Las aplicaciones de software mas comunmente se desarrollan

para permitir el acceso hacia alguna base de datos. Las

aplicaciones distribuidas y basadas en Web no son una

excepci6n. En un escenario distribuido, sin embargo, todo

resulta complicado debido a la posibilidad de que haya

diferentes plataformas de hardware y software 0 mode1os de

objetos.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 12/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

A pesar de todo ello, los datos son s6lo datos y necesitan

ser intercambiados y procesados practicamente en cualquier

lugar.

Con la creaci6n de los Objetos de datos ActiveX® (ADO,

ActiveX Data Objects) se completa una importante misi6n, el

traslado de miles de desarrolladores de Windows del modelo

anticuado cliente / servidor hacia un nuevo mundo de dicho

modelo, con los componentes del acceso a los datos y OLE DB,

considerando que, es un factor que en cualquier empresa rnarca

una diferencia en cuestiones de informaci6n, pues ofrece:

• Multioperabilidad.

• Optimizaci6n de recursos.

• Transparencia de informaci6n.

• Integridad en los datos.

• Multiaccesibilidad.

• Alto rendimiento.

• Seguridad heredada de la base de datos.

En el modelo ADO se necesita no solamente saber como

funciona, sino ademas irnplementarlo, con una herramienta de

programaci6n de cuarta generaci6n como: "Visual Basic".

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 13/88

 

"])ESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII,IZANDO ADO"

El presente trabajo pretende mostrar que este lenguaje

tiene particularidades que hacen de la programaci6n de objetos

una herramienta de facil desarrollo, la cual mezclada con una

buena tactica de programaci6n(ADO) hace programas de alta

durabilidad en cuesti6n del ciclo de vida de los sistemas.

Esta programaci6n por ser desarrollada baj0 la base de

objetos, da la pauta para que en el momento que se quiera, se

inserte mas c6digo, haciendo cada vez al sistema mas poderoso y

exacto; utilizando las bondades de la versi6n seis de Visual

Basic, el acceso a datos por excelencia es ADO(Objetos de Datos

ActiveX), el cual contiene la sintaxis mejorada de sus

antecesores RDO, DAO, Y tiene a sus vez nuevas instrucciones.

Esta nueva tecnologia de acceso a datos proporciona un

modele de objetos mas sencillo, una mejor integraci6n con las

tecnologias de Microsoft y las que no son, una interfaz comun

pa.raacceso a datos locales y remotos, conjuntos de registros

que se pueden controlar en modo remoto y no conectado, una

interfaz de enlace a datos de facil acceso para el usuario.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 14/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

CAPITULO I

1. CONCEPTOS GENERALES

1.1. Ambiente C1iente/Servidor

Es el modele de interacci6n mas comun entre aplicaciones en

una red. No forma parte de los conceptos de la Internet, sin

embargo todos los servicios estandares de alto nivel propuestos

en Internet funcionan segun este modelo.

UnServidor

es un programa que ofrece un servicio en la

red, es decir, que realiza una funci6n especifica. En ciertas

circunstancias, este termino designa a una maqui.na que est.a

dedicada a un servicio particular, por ejemplo:

• Servidor de impresi6n.

• Servidor de archivos.

• Servidor de correo electr6nico.

Un Cliente es un programa que dirige una petici6n

especifica a un servidor que responde a una demanda de

servicios.

1.2. Base de Datos Relacionales

Una base de datos es un lugar donde la informaci6n es

almacenada, es una especie de gabinete electr6nico para

archivar.

4

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 15/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

5

Existen dos formas de guardar informaci6n:

• Archivos pIanos .

• Bases de datos relacionales.

Los archivos pIanos almacenan datos en un simple flujo de

bytes, el cual puede crecer tanto como sea necesario. A causa

de su naturaleza, una simple adici6n a este, requiere una total

actualizaci6n. Eso hace que simplemente, no sean eficientes

en una era moderna de informaci6n.

No obstante se desarrollen sistemas de procesamiento de

archivos, incluso manejadores de bases de datos, que se basan

en la experiencia del equipo de desarrollo de software y que

logran resultados aceptables, siempre se deben considerar

determinados estandares de disefiopara garantizar el nive1 de

eficiencia mas alto acerca del almacenamiento y recuperaci6n de

la informaci6n. De igual manera se obtienen modelos que

optimizan el aprovechamiento secundario, sencillez y

f1exibilidad en las consultas que proporcionan al usuario.

Las bases de datos relacionales no cuentan con las

ineficiencias asociadas a los archivos planos. Una base de

datos relacional posee una 6 mas tablas con columnas y filas,

colocadas en forma de hoja electr6nica.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 16/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADON

6

Las columnas, como c6digo de cliente(ver Figura 1.1, Pagina

12), fecha de orden, son conocidas como campos; las filas, son

las que contienen el detalle de una columna en particular, los

cuales son llamados registros 0tuplas.

El verdadero potencial de las bases de datos relacionales,

es la habilidad para almacenar datos con el minimo de

duplicaciones y para ligar datos desde diferentes fuentes al

mismo tiempo. En una base de datos como esta, dos 0 mas

campos pueden ser ligados, por medio del nombre, en tablas

enteras. A esta acci6n se Ie conoce con el nombre de Relaci6n.

Ejemplo: Clases de relaciones que pueden existir entre dos

tablas en una base de datos:

La tabla Clientes, contiene detalles relevantes de todos

los clientes existentes con los siguientes campos: c6digo,

nombre de la compafif y direcci6n; un campo en particular de

esta tabla, llamado c6digo de cliente, identifica de manera

~ : J unica a cada tupla(fila).

Una segunda tabla llamada Ordenes, contiene un campo que es

multiplicado por el mismo c6digo de cliente, y de esta forma

existe una relaci6n entre las dos tablas. En este ejemplo, cada

registro de la tabla Clientes tiene relaci6n con uno 0 mas

registros de Ordenes y por esto, existe una relaci6n de uno a

muchos entre las dos tablas, Clientes y Ordenes.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 17/88

 

":DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

7

Esto resulta una de las ventajas importantes que ofrecen

las bases de datos rm i Itiples sobre los archivos planos i se

evita la repetici6n de datos. Toda la informaci6n relacionada

con los clientes es almacenada en un s610 lugar (en la tabla

Clientes) . Esta informaci6n sobre el cliente no puede ser

ingresada cada vez que el usuario quiera relacionar a un

cliente con una orden por medio del campo, c6digo de c1iente.

Este campo puede usarse para accesar los registros de la

tabla Clientes. Tiene dos beneficios extras que son:

• El espacio de almacenamiento de datos optimizado.

• Evita la inconsistencia de ingreso de datos.

1.3. Integridad de Datos

Es importante que se mantenga la informaci6n en una base de

datos, 10 mas limpio posible, para el costo de mantener un

ambiente no sea elevado y se obtenga un mayor beneficio.

Considere las siguientes preguntas, con respecto al ejemplo

anterior:

• GC6mo, en la practica, podemos evitar la posibilidad

de ingresar informaci6n sobre un cliente 0una orden

dos veces?

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 18/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

8

• lQU~ pasa si se intenta ingresar detalles de una

orden de un cliente que no existe?

Las respuestas dependen de como se defina las

re1aciones entre las tablas de una base de datos, para

definir la integridad que se aplica.

1.3.1. La L1ave Primaria{PK)

Cuando un campo 0combinacion de campos, en una tabla

es definido como la llave primaria, cada ingreso de datos

debe ser uni.co. Esta se define en cualquier tabla. Un

ejemplo es el campo codigo de la tabla Clientes. La llave

primaria verifica que cada registro de ~sta, sea unico es

decir que no existan valores duplicados. Si se ingresa un

valor repetido en el campo c6digo, no es permitido. El

campo mimero de orden en la tabla Ordenes ejecuta una

accion similar. Una vez la llave primaria sea definida

como un fndice iinico, debe llevar valores. En otros

ejemplos de llaves primarias, estan:

• El numero de seguro social.

• El numero de motor de un vehfculo.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 19/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

9

Como se establece en el primer ejemplo, la llave

primaria c6digo cliente en la tabla Clientes, apunta hacia

un campo en la tabla Ordenes (el campo cliente) el cual se

define como llave foranea. De esta manera, se obtienen

las ordenes hechas por un cliente en particular. Esto no

es un ligamiento fisico entre dos tablas, es solamente una

r el ac ic 5n l c5 gi ca .

No es necesario que los dos campos en las tablas que se

desean ligar 0relacionar deban tener el mismo nombre, sin

embargo para mantener un est.anda.ren la definicion del

disefiode la base de datos se recomienda que los dos campos

que sirven de relacic5n en ambas tablas lleven el mismo

nombre.

1.3.2. Llave Foranea (FK)

€::~,~ La llave foranea (FK por sus siglas en ingles Foreign

Key) es el campo 0combinacion de estos, ligada a la llave

primaria de otra tabla. Un valor ingresado en esta, debe

existir en la tabla donde el valor es referenciado como

llave primaria. En el primer ejemplo, idealmente no se

permite el ingreso de una orden con un c6digo de cliente

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 20/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

10

que no existe en la tabla clientes. Existen maneras de

forzar esta logica, como se ve mas adelante.

1.3.2.1. Integridad Referencial

Para definir las relaciones de la manera como se

expuso anteriormente, se debe informar eficazmente a la

base de datos, que tablas estan relacionadas entre s1 y

cuales 11aves foraneas se relacionan con las distintas

llaves primarias. Una vez se ha considerado esto, se

presenta la posicion de tomar ventaja de la Integridad

Referencial. Con esta definida, seguramente la

informacion en la base de datos es consistente.

Existe un ejemplo un poco mas complicado, con tres

campos que conforman la llave primaria en una tabla de

clientes (primer nombre, primer apellido y numero de

cedula). En la tabla tarjetas enviadas, estos tres campos

pueden ser multiplicados y debe existir una relacion en la

tabla clientes. Si solamente una condicion no se cumple,

ejemplo, numero de cedula, la tarjeta no sera enviada.

La solucion planteada sirve para evitar que las

tarjetas, sean enviadas a un cliente erroneo, pero debe

existir una r'eacLon definida. Esto ya no es sencillo

cuando desea recuperar datos en campos multiples.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 21/88

 

":OESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

1 1

Cuando se principien a construir consultas, es mucho

mas simple armarlas si las llaves primarias y foraneas son

bien definidas al momento de la creaci6n de la base de

datos. En general, una mejor soluci6n puede definirse para

identificar cada cliente con un valor unico, ejemplo

asi.qnandoe un c6digo. Cualquier campo de est.as tablas

puede recuperarse para asegurar que selecciona los datos

correctos.

1.4. Tipos de Relaciones

Las relaciones contienen informaci6n especifica con

respecto a como los datos en una tabla estan relacionados con

los datos de una segunda tabla. Existen dos tipos basicos de

relaciones:

1.4.1. Uno a muchos

Cada valor en el campo de la llave primaria es unico.

Los valores del campo de esta se repiten, cuando existe mas

de un valor en el campo de la llave for-anea, que est.a

relacionado con la llave primaria.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 22/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

12

Figura 1.1 Relacion de uno a muchos

1.4.2. Uno a uno

Cada valor en el campo de la llave primaria

llave foranea son unicos.

y el de

Existe uno 0ningun valor en el

campo llave foranea relacionado con la llave primaria.

Figura 1.2 Relacion de uno a uno

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 23/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

13

Existe un tipo extenso de relaci6n, la de mucho a muchos.

Un ejemplo de esta relaci6n se puede hacer entre autores y

tftulos de libros. Cada autor puede tener muchos libros y cada

libro puede tener muchos autores. La relaci6n muchos a rnuchos

necesita la existencia de una tercera tabla, la cual almacena

la relaci6n entre las dos tablas.

A continuaci6n se presenta unos consejos que se deben

rnanteneren mente al momento de construir relaciones:

• Hacer una oraci6n acerca de la relaci6n. Por

ejemplo si se trabaja con clientes y ordenes, se

enuncia 10 siguiente "Un cliente en particular

puede tener muchas ordenes". No tendrfa sentido

pensar que "una orden puede tener muchos clientes".

• Una parte de la relaci6n siempre es uni.ca.

Generalmente esto es una tabla de apoyo, ejernploen

la tabla de clientes donde el c6digo es unico .

. ._----

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 24/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

CAPITULO II

2. EL CLIENTE

2.1. Recursos

En el Cliente existe diversidad de recursos que son en

definitiva poderosos en su funcionamiento, que manejan la

informacion y la procesan; son aquellos que se necesitan para

que se pueda aplicar la tecnologfa ADO, de acceso a datos, pues

en sus bases esta el usar todo recurso que provea el medio para

generar, y manejar informacion.

2.1.1. Visual Basic Version 6.0

Este es uno de los recursos que tiene disponible el

Cliente, para que desde este lugar tome la programacion de

todo sistema, el cual se incluya con tecnologfa

cliente/servidor. Visual Basic es uno de los programas que

ha revolucionado la manera de programar y desarrollar,

cualquier aplicacion cliente/servidor; este programa es por

excelencia uno de los promotores del concepto cliente

servidor.

Desde su inicio en 1991, se ha ido perfeccionado,

dejando una herencia de tecnologfas a traves del tiempo,

por ejemplo: el acceso de datos p~r medio de DAO(Data

Access Objects), seguidamente de RDO y finalmente ADO.

14

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 25/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII: 'IZANDO ADO"

15

Estas herencias dejan al usuario la libertad segun sea

la necesidad, de programar con la tecnologia que desee.

Visual Basic lleva ciertos patrones desde su inicio en tres

divisiones: Standard, Profesional, Enterprise. Las

divisiones fueron hechas para que el usuario tenga el

acceso realmente necesario y no tener dispositivos extras

que resultan un costa adicional a la empresa. 'Todas las

divisiones, traen la aplicaci6n general de Visual Basic

para compilar en c6digo nativo y acceso a bases de datosj

de esto, la uni.ca diferencia entre cada divisi6n es la

cantidad de objetos disponibles para programar, algunas

utilerias, y el precio. Visual Basic 6.0 ha sido equipado

por sus antecesoresj la tecnologia actual con las ultimas

innovaciones en desarrollo de aplicaciones rapidas, tiene a

su disposici6n wizards que ayuda al desarrollo de rutinas

de mantenimiento de datos 10 cual repercute en tiempo,

costo y beneficio. Algunas novedades de la versi6n seis de

Visual Basic son:

2.1.1.1. ADO (Objetos de datos ActiveX)

Todas las ediciones de esta nueva tecnologia de

acceso a datos, proporciona: un modele de objetos mas

sencillo, una mejor integraci6n con las tecnologias de

Microsoft y las que no son, una interfaz cormin para

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 26/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

16

acceso a datos locales y remotos, conjuntos de

registros que se pueden controlar en modo remoto y en

modo no conectado, una interfaz de enlace a datos de

faciI acceso para el usuario y conjuntos de registros

jerarquicos.

2.1.1.1.1. Entorno de datos

(Edici6n Profesional y Empresarial) . El

Disefiador de entorno de datos proporciona un

entorno interactivo de tiempo de disefiopara crear

objetos de ADO. Es posible usar estos como un

origen de datos para preparar datos en un

formulario 0en un informe, 0se tiene acceso a los

mismos por un programa mediante los metodos y

propiedades expuestos por el objeto

DataEnvironment.

El Disefiador de entorno de datos admite todas

las caracterfsticas del DisefiadorUserConnection de

Visual Basic, asf como caracterfsticas adicionales

como arrastrar y colocar, jerarqufas, agrupaciones

y campos agregados.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 27/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADOn

17

2.1.1.1.2. Control de datos ADO

(Edici6n Estandard, Profesional y Empresarial.

Internet). Un nuevo control de origen de datos

compatible con OLEDB que funciona como los

controles Data y Remote Data, es poderoso al

permitir crear una aplicaci6n de base de datos con

un mlnimo de c6digo.

2.1.1.1.3. Enlace a datos mejorado

(Edici6n Profesional y Empresarial.Internet).

Las versiones anteriores de Visual Basic s610

permiten enlazar controles juntos a un formulario.

Visual Basic 6.0 permite conectar cualquier origen

de datos ADO/OLE DB a cualquier receptor de datos

ADO/OLE DB. Puede establecer la propiedad

DataSource de los controles en tiempo de ejecuci6n

para enlazar dinamicamente a orlgenes de datos.

Permite crear clases que son orlgenes y receptores

de datos, y unirlas mediante el nuevo objeto

BindingsCollection, controles personalizados que

son orlgenes de datos similares al de datos ADO, y

a los personalizados con enlace complejo, similares

al DataGrid.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 28/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

18

2.1.1.1.4. Compatibilidad con OLE DB

(EdicLon Estandard, Profesional y Empresarial.

Internet). OLE DB son un conjunto de interfaces COM

que proporcionan a las aplicaciones un

procedimiento unificado de acceso a los datos

almacenados en diferentes orfgenes de informacion,

tanto relacionales como no relacionales. Estas

interfaces admiten las numerosas prestaciones de

DBMS apropiadas para el origen de datos y permiten

compartir informacion. ADO es el modo en que los

programadores obtienen acceso a OLE DB.

Todos los nuevos controles enlazados a

informacion, el entorno de datos y el disenador de

informes, son compatibles con OLEDB.

2.1.1.1.5. Integracion de las herramientas visuales

de base de datos (Disenador de consultas

y Disenador de bases de datos)

(Edicion Empresarial. Internet) Se puede crear

y modificar visualmente esquemas y consultas de

bases de datos; tablas de bases de datos como SQL

Server y Oracle; tambien se puede utilizar

operaciones de arrastrar y colocar, para crear

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 29/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

19

vistas y cambiar automaticamente los tipos de datos

de las columnas.

2.1.1.1.6. Mejoras en los datos del Asistente para

instalar

(Edici6n Estandard, Profesional y Empresarial.

Internet) . El Asistente de empaquetado y

distribuci6n (antes llamado Asistente para

instalar) incorpora la compatibilidad con ADO, OLE

DB, RDO, ODBC Y DAO.

2.1.1.1.7. Infor.me de datos

(Ediciones Profesional y Empresarial.

Internet). Permite emplear la tecnica de arrastrar

y colocar(drag and drop) para crear rapidamente

informes a partir de cualquier conjunto de

registros.

2.1.1.1.8. Origenes de datos

(Ediciones Profesional y Empresarial.

Internet) Se puede crear controles personalizados

y clases que son origenes de datos a los que se

puede enlazar con otros controles.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 30/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

20

2.1.1.1.9. ventana Vista Datos

(Ediciones Profesional y Empresarial.

Internet). Con la Ventana de Vista de Datos se

examinan todas las bases de datos a las que se

puede conectar y mostrar las tablas, vistas,

procedimientos almacenados.

2.1.1.1.10. Editor SQL

(Edici6n Empresarial. Internet). Permite

agregar nuevos procedimientos almacenados a bases

de datos SQL Server y Oracle existentes. Tambien se

pueden escribir desencadenantes mediante el editor.

2.1.1.1.11. Control Hierarchical FlexGrid

(Edici6n Estandard, Profesional y Empresarial.

Internet). Una versi6n actualizada del control

FlexGrid, que ademas de admitir toda la

funcionalidad, puede mostrar una jerarqufa de

objetos Recordset de ADO. Cada objeto Recordset

devuelto se muestra como una banda separada de la

cuadrfcula y es posible aplicarle formato

independiente.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 31/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

21

2.1.1.1.12. Control DataRepeater

(Ediciones Profesional y Empresarial.

Internet). Con un control de usuario, en el

DataRepeater se crea un vista personalizada de una

base de datos, similar a los formularios de Access.

El control de usuario puede incluir TextBox,

CheckBox, DataGrid u otros enlazados a campos de

datos.

2.1.1.1.13. Pasar objetos Recordset de ADO

(Edici6n Estandard, Profesional y Empresarial.

Internet). Es posible pasar objetos Recordset de

ADO entre procesos e incluso entre equipos

(mediante HTTP 0 DCOM) i esto proporciona un modo

eficiente de mover datos entre los diferentes

niveles de una aplicaci6n multinivel.

2.1.1.1.14. Mejoras del Asistente para for.mularios

de datos

(Ediciones Profesional y Empresarial.

Internet). El asistente ofrece la posibilidad de

generar formularios que contienen solamente c6digo,

donde los controles no estan enlazados a un control

de datos. Permite usar c6digo de ADO.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 32/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIr.IZANDO ADO"

22

El asistente esta integrado con todos los demas

asistentes para: aplicaci6n, cuadricula y control

de FlexGrid.

2.1.1.1.15. Asistente para objetos de datos

(Ediciones Profesional y Empresarial.

Internet). Automatiza la creaci6n de objetos de la

capa media enlazados al entorno de datos 0 a

controles de usuario.

2.1.1.1.16. Objetos del sistema de archivos

(Edici6n Estandard, Profesional y Empresarial.

Internet). Ofrece un conjunto especializado de

subrutinas que permiten desplazarse por el sistema

y crear archivos de texto y directorios.

2.1.1.1.17. Objetos Format

Todas las ediciones. Proporciona la conversi6n

de datos en los dos sentidos entre una base de

datos y un control enlazado: al leer un valor de

una base de datos, los objetos Format agregan el

formato apropiado correspondiente al control

enlazado.

,,-----

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 33/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

23

2.1.1.1.18. Control DataGrid

Todas las ediciones. Esta versi6n del control

DBGrid compatible con OLEDB permite generar

rapidamente una aplicaci6n para mostrar y modificar

conjuntos de registros. Tambien admite el nuevo

control de datos ADO.

2.1.1.1.19. Control DataList, controles DataCombo

Todas las ediciones. Estos controles son

versiones para OLE DB de los controles DBList y

DBCombo. Tambien admiten el nuevo control de datos

ADO.

2.1.2 ODBC

De alguna manera debe de haber una forma de conexi6n

donde se comunique el Cliente con el Servidor y para que

esto suceda, se utiliza un puente de conexi6n que en el

ambiente Cliente-Servidor es ampliamente conocido, "ODBC",

plataforma que integra todo procedimiento necesario para la

comunicaci6n libre y continua del Cliente con el Servidor.

El ODBC(Open DataBase Connectivity), da el paso para que la

tecnologfa ADO sea aplicada eficazmente .

.._----

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 34/88

 

"I)ESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII,IZANDO ADO"

24

2.1.3 Infor.mix-CLI

Hay muchas herramientas en el mercado para desarrollo

de aplicaciones y optimizadores de Consultas(Queries) y de

Reportes para bases de datos de Informix. Herramientas

como Visual Basic habilitan al programador para crear

aplicaciones de acceso hacia bases de datos relacionales.

La conexi6n desde un cliente Windows para un servidor con

una base de datos informix, es archivado utilizando un

ODBC(Open Database Connectivity) . ODBC es un

API(Aplication Program Interface) que habilita el acceso a

multiples bases de datos usando SQL. Con ODBC se refuerza

un estandar que da a las aplicaciones del cliente una

interoperabilidad a traves de diferentes plataformas de

bases de datos, gana acceso hacia base de datos a traves de

un driver especialmente hecho para ODBC. Cada base .de

£':\~..J

datos de diferente marca requiere diferente driver.

Informix provee una suite de productos de conectividad

que son usados para habilitar a los clientes de Microsoft

Windows para que accesen a servidores Informix. Hay dos

principales productos los cuales son: Informix-CLI e

Informix-Connect. En el pasado, cada uno de estos

productos era comprado por separado en instalaciones

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 35/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIl~IZANDO ADO"

25

diferentes. Ahora son integrados en un mismo CD llamado

Informix Client Software Developers Kit for Microsoft

Windows Enviroments, 6 Informix Client-SDK.

El cliente SDK contiene mas que un CLIo un Connect.

Este incluye programas en API para C++, ESQL/C y Java,

conteniendo los ii.ltLmoa drivers de Informix ODBC y dos

versiones del ODBC Driver Manager. Existen muchas

opciones cuando se instala el SDK. Tempranamente en el

proceso de instalaci6n existen las opciones: Tipica,

Compacta, 0 Personalizada; en esta ultima se pueden ver

todos los componentes del SDK. Una instalaci6n Tipica

provee 10 necesario para establecer una configuraci6n ODBC.

Informix-CLI es la implementaci6n Informix del

Estandard, Microsoft ODBC. Esta es una interfase de nivel

de llamada, 0 bien, una herramienta de conectividad que

habilita aplicaciones para accesar dinamicamente hacia los

servidores de bases de datos Informix. CLI esta compuesto

por bibliotecas API, una versi6n del Driver Manager y una

versi6n del driver de ODBC.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 36/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

26

Microsoft ODBC Driver Manager (ODBC DM) es usado para

configurar los orlgenes de datos ODBC. Es tambien conocido

como el administrador de los datos y puede ser encontrado

en el panel de control de Windows. Debe estar ya instalado

en el Cliente 0 ser seleccionado en la instalaci6n tipo

Personalizada.

Intersolv ODBC Driver, es otro componente compartido en

el Cliente SDK. Este es automaticamente instalado; en

algunas versiones mas recientes del CLI(3.0), aparece como

un componente en la lista de instalaci6n del SDK.

Informix Connect posee los componentes de conectividad

de tiempo de corrida. Este viene con casi t.odos los

productos de Cliente Informix para Windows. El producto es

titilporque da a las maquinas de los clientes, informaci6n

completa de conexi6n hacia las bases de datos Informix.

Deapues de que se han instalado los productos del

cliente en Windows, se debe de configurar cada producto

usando el servidor apropiado y la informaci6n de la base de

datos.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 37/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

27

2.1.3.1. Componentes de Configuracion

El primer paso de configuracion es crear una

entrada a un servidor en la maqui.na del Cliente en

Windows, y proveer los valores de las variables de

Informix. Este incluye una utileria en la conectividad

de productos llamado SETNET32. Esta funcion provee al

Cliente en Windows la informacion que necesita para

conectarse al servidor, definiendolo, la maquina

host (anfitriona), el protocolo de red, y la cuenta del

usuario. SETNET32 guarda los datos en el registro de

Windows. Una ventaja de esta utileri.a es tener la

posibilidad de grabar en un archivo y despues ser

cargada en otros clientes para configurarse con la

misma informacion del servidor.

Para usar el SETNET32 en el cliente Windows, se

debe de buscar el grupo en el conjunto de programas

instalados en la maquina del SDK, ingresando el

ambiente de las variables. Algunas de estas son

requeridas y otras opcionales. La mayori.ade ellas en

el cliente son usadas en funciones del CLI.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 38/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII,IZANDO ADO"

28

En la pantalla de ambiente, se debe buscar en la

lista para poder encontrar las dos variables:

INFORMIXDIR, INFORMIXSERVER. INFORMIXDIR es

aut.omati.camente ingresada con el valor del directorio

especificado durante la Lns t.alac Lon del software.

INFORMIXSERVER puede ser ingresada manualmente o

automaticamente con los valores adecuados en la vifieta

de la informacion del servidor.

En la vineta de la Informacion del Servidor se definen

ciertas variables para poder ser ingresadas como:

• Informix Server, se especifica el nombre del

servidor de la base de datos informix.

• HostName, se ingresa el nombre de La maqu i.na

anfitriona donde el servidor de la base de

datos reside.

• Protocolname, el protocolo de cornunicacion de

la red.

• Service Name, el nombre del servicio en el

archivo de servicios que corresponda al puerto

que escucha.

• Options, aqui se definen grupos.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 39/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

29

Despues de ingresar esta informacion se debe de dar

click en "Make Default Server" y la variable

INFORMIXSERVER debe de llevar el valor correspondiente

que aparece en el campo "Informix Server". Se debe de

dar click en "Apply" seguido de "OK" para finalizar.

Se puede definir la cantidad de servidores que se

necesiten.

2.1.3.2. ODBC Data Source(Origen de Datos ODBC)

Un "Data Source" u Origen de Datos, es un driver de

ODBC, que contiene la informacion de la base de datos y

el servidor.

Los datos del servidor es 10 previamente definido

en SETNET32. Un origen de datos es creado usando el

ODBC Driver Manager o el ODBC Data. Source

Administrator; este ultimo se encuentra en el panel de

control de Windows.

En la pantalla inicial, se debe de presionar el

boton "ADD" para crear un nuevo Data Source. Una lista

es desplegada de todos los drivers ODBC instalados en

el cliente de Windows. Desde esta lista se observan

los numeros de version y los actuales nombres de

archivos de los drivers.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 40/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIl,IZANDO ADO"

30

En la vineta general hay que ingresar el nombre del

Data Source, su descripcion y la base de datos. Es

necesario especificar exactamente la base de datos a la

cual se esta conectando.

En la vineta de Connection, la informaci6n del

servidor por default es automaticamente lleno desde su

ingreso y creaci6n en la utileria SETNET32. Una vez

que ya fue ingresada en las vinetas General y

Connection, se debe de presionar OK y el Data Source

esta completo.

2.1.3.3. Services File(Archivo de Servicios)

El final de la confi.quzacLon es agregar un valor

para el archivo de servicios en la maquina del cliente.

Esto es identico al /etc/services en el ambiente UNIX.

El valor consiste en ingresar el nombre del servicio,

el numero y protocolo del puerto que comunica al

servidor con la maquina Cliente. En esta maquina, el

nombre del servicio debe coincidir con el que existe en

el servidor. Tambien el numero del puerto debe ser el

mismo en ambos lados.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 41/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

31

El protocolo para usar TCP/IP serA "tcp". El

archivo de servicios en la m&quina del cliente en

ambiente Windows esta localizado en el directorio

\Windows. De todas maneras, el lugar especifico donde

puede estar depende del Sistema Operativo. Para

Windows 95/98 el archivo esta en C:\windows\services.

Para Windows NT el lugar en donde se encuentra es

en C:\winnt\system32\drivers\etc\services. Se debe de

usar un editor ASCII(Notepad) para abrir el archivo e

insertar la linea que identifique el servicio.

El formato de entrada de valores del servicios est&

documentada en el principio del archivo.

Un ejemplo de la entrada en el archivo de serv:lcioes:

• Informixl 1526/tcp #informixserver

2.1.3.4. Probando la conexi on

Deapues de que el servidor esta definido para el

cliente y el archivo de services, la conexi6n debe

probarse. El programa Ilogin se provee como parte del, .

producto de instalaci6n para ayudar a verificar que

toda la informaci6n es correcta para el cliente para

que este se conecte al servidor.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 42/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII,IZANDO ADO"

32

Para ejecutar esta utileria hay que ir al grupo al

cual pertenece el Informix eLI y desde ahi se debe de

ingresar un usuario valido con su password y con esto

ILogin automaticamente se conecta al servidor por

default corriendo un query en la tabla customer de la

base de datos stores7. Esta herramienta es fitilpara

desplegar problemas de conexi6n en el cliente para el

servidor.

2.1.4 Red

La informaci6n, para que sea pasada de computador a

computador, es necesario el disefioy creaci6n de una Red,

que provea los servicios de comunicaci6n entre maquinas.

El disefiomas comun de hoy en dia es el uso de redes de

10/100 Mbps; este es el mas recomendado para que sea usado

con cableado UTP y conectores RJ45, y asi tener una red que

comunique informaci6n haciendola poderosa desde este

momento.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 43/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

CAPITULO III

3. EL SERVIDOR

3.1 Recursos

En el servidor existen los recursos mas poderosos para

almacenar, y manipular toda clase de informaci6n siendo por

excelencia el lugar mas seguro para realizar toda acci6n con la

informaci6n, aqui la tecnologia de acceso a datos ADO, hace

toda clase de operaci6n para que la informaci6n que procese,

regrese al Cliente con un resultado esperado y asi aplicar esta

tecnologia en el ambiente Cliente-Servidor.

3.1.1 Unix

3.1.1.1. Antecedentes

UNIX naci6 como proyecto universitario y ha llegado a

ser uno de los sistemas operativos mas empleados

actualmente creciendo cada vez mas. A partir del ano 1995,

el 80% de los ordenadores profesionales trabajan

practicamente bajo UNIX. Uno de los tipos mas utilizados es

System V release 4, de Sun MicroSystems, el cual se usa

para el ejemplo, donde incorpora gran variedad de

novedades.

La evoluci6n de UNIX continua hasta la estandarizacion,

que en teoria naci6 con el OSF/1 (95/96).

33

,,-----

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 44/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

34

Existen diferentes versiones de UNIX: IBM - l~IX, HP -

HPUX, pero llevan en si, una estructura similar como la que

se describe a continuacion:

• Hardware

• Nucleo

• Shell

• Aplicaciones de usuario

El Shell es una interfaz de comandos que recibe ordenes

de usuario para el sistema operativo, para que se pueda

administrar todo proceso de manera facil siendo 10

suficientemente potente realizando las operaciones

necesarias.

El Nucleo es la parte del sistema operativo que

interactua con el Hardware de la maquina, recibe llamadas

al sistema en ordenes. Cuando se comunica aLquieri con el

Nucleo realmente 10 hace con cualquier proceso.

Existen caracteristicas notables como es el sistema de

archivos de Unix, el cual explica el concepto de archivo,

que es basico en la organizacion de la informacion en UNIX.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 45/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

35

Todo 10 que se trabaja en Unix toma la estructura de un

archivo. Por Ejemplo: Archivo es una impresora, la

pantalla; estos son considerados devices0

dispositivos.

UNIX se basa en tres puntos:

• Simplicidad

• Generalidad

• Extensibilidad

Cualquier tarea que se realice en UNIX esta formada por

la cornb.nacon de componentes simples. El producto es la

opt.Lm.i zaci.on de recursos 10 cual hace a Unix un sistema

operativo poderoso, uniendo elementos y comandos pequefios

dan la forma del Unix actual.

3.1.1.2. Historia de Unix

Nacio en 1960 en un sistema operativo llamado MULTICS.

Este fue disefiadocomo un sistema interactive multiusuario

que permitia acceder a la misma informacion a muchos

usuarios.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 46/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

36

En 1969 Kemp Thompson continuo desarrollando MULTICS

para una maquina llamada PDP-7, hasta obtener un sistema

llamado UNICS, que incorporaba todas las caracteristicas

del UNIX actual (archivo filosofia de funcionamiento).

El Sistema Operativo Unics continuo evolucionando en

maquinas mas potentes dando lugar en 1970/71 al conocido

UNIX.

A partir de 1970 se empez6 a hablar de el. Cabe destacar

dos sucesos ; en 1973 se unio con el lenguaje C, Y se

escribe nuevamente el c6digo; pero esta union no se hizo

solo para reescribirse, sino que se creara el nuevo UNIX;

de hecho la sintaxis de este y C se asemejan, porque su

creador fue C.

A partir de la 7a edicion de UNIX AT&T, que habia

adquirido los laboratorios BELL, decidio hacerlo

comerciable no distribuyendo el c6digo fuente de las

siguientes variaciones, a 10 que dio el nombre de UNIX

system v.

Versiones de Unix de diferentes casas se desarrollaron y;

comercializaron estando el c6digo disponible para que los

investigadores hicieran sus mejoras.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 47/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADOH

37

3.1.1.2.1. Caracteristicas y Mejoras de Unix System V

Release 4

• Conjunto unificado de 6rdenes (no est&ndar)

• Ofrece un conjunto de Shells est&ndarizados.

Todos ofrecen 10 mismo, pero con unas leves

diferencias: ksh, csh, sh, jsh, rsh (linux bash)

• Sistemas de archivos en red.

• Acceso al sistema m&s sencillo.

• Herramientas de administraci6n.

• Procesamiento en tiempo real.

• Internacionalizaci6n del sistema.

• Conexiones m&s sencillas.

3.1.1.3. Conexion al Servidor

Para que tenga una comunicaci6n plena con un cliente,

el servidor debe dar ciertos pasos para que desde alIi se

encuentre listo y entable un canal para hacer co~tacto con

el cliente. Desde Unix se debe de verificar y seguir los

siguientes pasos:

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 48/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII.IZANDO ADO"

38

Primer paso: existe una entrada en el archivo

/home/informix/sqlhosts, en la que se pone el nombre del

servidor, tipo de red, el nombre de la maquina anfitriona y

por ultimo, el servicio que se va a utilizar para levantar

el acceso hacia Informix.

#servernamenew fha

n et t ype

sesoctcphostnamenew fha

servicenaLInesqlexec

Segundo paso: se debe de definir un numero de servicio

que no este utilizado para que el sqlexec pueda ser

levantado. Ejemplo: Sqlexec 777/tcp.

Tercer paso: despues se levanta el daemon 0 demonio,

para tener un puerto que este siempre listo y vigilante

para verificar el momenta de conexi6n de cualquier cliente.

Ejemplo: /home/informix/lib/sqlexecd new fha.

Cuarto paso: siguiendo la secuencia se pasa al cliente

y se configura el SETNET32, empezando en la vifieta de

Enviroment, la variable DBPATH asi.qriaridoe en path, donde

se encuentre la base de datos. Ejemplo

//new_fha/volul/bdfha.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 49/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTU,IZANDO ADO"

39

Quinto paso: en la vifieta de Server Information, se

llena la casilla de Informix Server con el nombre del

servidor(Ejemplo: new fha), seguido del nombre de la

maquina anfitriona Hostname(ejemplo: new_fha), pasando a

Protocol 0Protocolo(Ejemplo: sesoctcp), Service 0Servicio

(Ejemplo: sqlexec).

Sexto paso: en el archivo \WINDOWS\services se ingresa

y verifica la linea que se cre6 en los servicios del

servidor en este archivo, para que encuentre la relaci6n

que existe entre Cliente y Servidor.

3.1.2 Informix

El software de Informix es abierto, escalable, facil de

administrar y extensible, proporcionando el tipo de

flexibilidad esencial para las organizaciones en desarrollo.

Ya sea para el almacenamiento de datos, el analisis,

soporte de decisiones, entrega de contenidos de Web, difusi6n

de pelfculas, sonido, fotograffas y texto desde una biblioteca

de informaci6n digital. Los productos de Informix estan

disefiadospara permitir a las empresas actuales administrar en

forma eficiente cualquier tipo de informaci6n en todo ~omento.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 50/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

40

3.1.2.1. Infor.mix Internet Foundation 2000

Combina un procesamiento transaccional poderoso con la

capacidad de manejo y administraci6n de toda clase de datos

en Internet, permitiendo a las organizaciones transformar

sus datos de negocios en contenido para aplicaciones y

servicios basados en el Web. Las caracteristicas de

extensibilidad contenidas en Informix Internet Foundation.

2000, permite soportar desde hoy cualquier informaci6n que

la organizaci6n requiera a traves de Internet (video, voz,

imagenes, texto), virtualmente cualquier dato es integrado

en el nucleo del servidor de datos Informix Internet

Foundation 2000.

Basado en estandares de la industria y arquitectura

flexible, este acelera el disefio y distribuci6n de

aplicaciones, asi como reduce el costa de pertenencia.

Esta enfocado a clientes que desean invertir en

infraestructura de aplicaciones de misi6n critica para

Internet y provee los siguientes beneficios:

• Creado para Internet: da un amplio soporte para

estandares de Internet.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 51/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

41

• Reduce el costa de Pertenencia: Arquitectura

flexible y disefio abierto que simplifica la

integraci6n y acelera el disefio y distribuci6n de

aplicaciones.

• Gran Desempeno: Basado en la tecnologia objeto-

relacional de Informix (altamente probada por miles

de clientes alrededor del mundo) , demuestra

considerables beneficios para los usuarios.

• Se adapta al futuro: Informix Internet Foundation

2000 provee la extensibilidad para adicionar tipos

de datos nuevos asi como nuevas rutinas dentro del

servidor de base de datos.

3.1.2.2. Infor.mix Dynamic Server

Informix Dynamic Server es el unico servidor de base de

datos paralelo, totalmente optimizado y completamente

integrado disefiado para ayudar a transformar los recursos

de informaci6n de la compafiia en una fuerza para la

innovaci6n comercial.

Con su combinaci6n de rendimiento avanzado,

escalabilidad sin igual y extensibilidad sin limites

definida por el usuario. Es la unica arquitectura de base

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 52/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTJ:LIZANDO ADO"

42

de datos facilmente personalizable, a nivel de empresa que

cumple las necesidades de las compafiias que buscan un

producto unico de base de datos que se caracteriza por la

confiabilidad, alto rendimiento, escalabilidad y habilidad

para administrar todo tipo de informaci6n, como audio y

video multimedia; datos especiales y alfanumericos

tradicionales.

Informix Dynamic Server tiene la sofisticaci6n y

capacidad para administrar todo tipo de informaci6n

generada y utilizada por las empresas mas exitosas:.

3.1.2.3. Herramientas de desarrollo de aplicaciones

Informix

Informix proporciona un conjunto completo de

herramientas de desarrollo que estan totalmente integradas

con Informix Dynamic Server, que permiten la creaci6n de

aplicaciones comerciales para el entorno de bases de datos

corporativas. Al usar las herramientas de desarrollo

Informix, crea rapi.dament;euna amplia gama de sistemas,

incluyendo la administraci6n dinamica de contenidos,:

preparados para Web y sistemas basados en Java.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 53/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

43

3.1.2.3.1. Dynamic 4GL

Es el nuevo integrante de la familia de productos

INFORMIX-4GL, entrega una soluci6n inmediata y eficaz

en funci6n de los costos para recompilar, como tambien,

ejecutar las aplicaciones existentes de INFORMIX-4GL,

en una variedad de entornos de interface grafica de

usuario (GUI), incluidos en UNIX, Windows y Windows NT.

Informix Dynamic 4GL, permite a los programadores

transformar los programas 4GL existentes, basados en

caracteres en sistemas cliente/servidor IIdelgadosll

basados en GUI, con s610 pulsar un bot6n.

Como resultado, Informix Dynamic 4GL autoriza a las

organizaciones sacar mayor ventaja de sus inversiones

en aplicaciones 4GL, y al mismo tiempo, satisfaciendo

las demandas actuales del mercado para aplicaciones

basadas en GUI, de alto rendimiento.

Beneficios:

• proporciona un desarrollo rapido y flexible a una

variedad de clientes.

• Aumenta el rendimiento y la escalabilidad de

aplicaciones.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 54/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INPORMIX) UTILIZANDO ADOn

44

• Activa interfaces visuales mejoradas.

• Disminuye los costos de desarrollo y

distribuci6n.

• Preserva sus inversiones en aplicaciones

actuales, infraestructura computacional y

personal.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 55/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADOn

CAPITULO IV

4. TRABAJANDO CON EL ACCESO A DATOS POR MEDIO DE LA TECNOLOGIA

ADO

4.1 MODELO ADO

El modelo ADO trae palabras nuevas que se explican para que

se comprenda su estudio y asi se entienda, el modele de datos

ADO.

Las siglas ADO significa: ActiveX Data Object(Objeto de Datos

ActiveX). La palabra ActiveX, explica un grupo de herramientas

diferentes a las tradicionales, heredadas de versiones

anteriores de Visual Basic, en las cuales se incorpora la

tecnologia orientada a objetos. Un componente ActiveX es

sin6nimo de un objeto OCX(Objeto Componente), el cual puede ser

vi.stocomo un archivo que posee las caracteristicas propias de

un objeto particular. Este se encuentra despu~s de la

instalaci6n de Visual Basic en el directorio del sistema de

Windows (\WINDOWS\SYSTEM). Parte de estos objetos A.ctiveX se

integran al Modelo Componente (COM), el cual posee todas las

caracteristicas de objetos ActiveX, y son ampliamente

utilizados en la comunicaci6n de los computadores eri ambiente

Cliente-Servidor. Cabe mencionar que el ODBC utiliza estos

recursos del lade del cliente para poder comunicarse con el

45

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 56/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

46

servidor, llamandose DCOM(Distribuited) , puesto que se

distribuye en las maquinas cliente para su comunicaci6n con el

servidor.

Los objetos ActiveX dan una ventaja la cual hace que, sin

importar el sistema operativo, sean en la operacion,

Multiplataforma. Estos son utilizados en Windows 95, 98, 2000,

NT Y en maquinas Mac.

Se estudia la manera de implementar estos objetos en ambiente

Mainframe en Sistemas Operativos como unix. Otra ventaja de

estos es que pueden ser creados en diferentes programas tales

como C++, Visual Basic, Power Builder; mostrando que son muy

amplios en su programacion y no son restrictivos en su

desarrollo, 10 que es una ventaja.

Los objetos ADO, llevan sus propias caracteristicas, pero se

especializan en los datos. Estos objetos proveen el ambiente

de manipulaci6n de informaci6n de la base de datos del lade del

cliente de una manera mas simple, pues integra una eint.axis

facil de aprender y de utilizar en todo esquema, tambien es un

modele que conjuga cualquier tecnologia, pues los objetos

ActiveX son multiplataforma, el modele de datos ~)O 10 es

tambien. Por medio del lenguaje de programaci6n que utiliza,

como Visual Basic, se tiene una interface cormin de acceso a

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 57/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII,IZANDO ADO"

47

datos de forma local y remota, pues por medio del lenguaje de

programaci6n se incorpora esta tecnologia pudiendo trabajar del

lade del cliente y del servidor i hay libertad de elecci6n

donde ejecutar todo procedimiento. Cuando se trabaja con

objetos ADO se puede trabajar de modo Online y Offline,

retiri.endoae con la comunicaci6n hacia el servidor i al modo

Offline se Ie conoce como Disconnect puesto que no esta

conectado con el servidor y de esta manera los set de registros

captados antes de la desconexi6n, se usan para su proceso.

El modele de datos ADO, tiene la siguiente forma

jerarjica(Figura 4.1 pagina 48), en 10 cual convie:ne hacer

enfasis que, el uso en su orden repercute en el buen

funcionamiento de cualquier aplicaci6n, el no llevar este orden

resultaria un bajo rendimiento de esta tecnologia:

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 58/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

48

Figura 4.1 Modelo de Datos ADO(Jerarjico)

Por medio del objeto Connection se habilita la conexion hacia

el servidor; con el uso de este no hay que conectarse de alguna

otra manera, pero el uso desconsiderado puede repercutir en

excesivo consumo de recursos de rnaqui.na, un peligro para la

aplicacion en funcionamiento. Ya habilitado la conexion

necesaria, se utiliza el objeto Command para relizar un comando

de datos que va a traer 0 manipular informacion en forma de

insercion 0actualizacion. Tambien, en una conexion no hay un

limite para su uso.

Despues de hacer la operacion, con el objeto Command se tiene

a disposicion el objeto Recordset en donde la informacion llega

dependiendo del comando utilizado.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 59/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII.IZANDO ADO"

49

Los objetos Field y asf como los anteriores poseen una

caracterlstica comtin: las propiedades, que muestran 10

referente al objeto.

Este es el modele de datos ADO en forma general en donde se

dan todos los eventos de los objetos.

4.2 lPOR QUE USAR ADO?

El modelo ADO desde sus inicios fue creado facil de usar, ya

sea desde su usa, funcionamiento y de su sintaxis como tal, que

brinda al programador una manera facil y versatil de program~r.

El usar ADO no se limita a ciertas bases de datos ya sea

relacional 0no. Cualquiera de estas bases de datos provee un

alto rendimiento para ser utilizado; las no relacionales es

por ejemplo Excel, que no tiene forma de base de datos y por 10

consiguiente no cumplen con las reglas de CODD. ADO trae una

herencia que no deja en el olvido: sus antecesores DAO, y RDO

que tienen un rico pasado de experiencias en bases de datos,

dando como resultado, el utilizar en ADO convenciones y

caracterlsticas de DAO y RDO, pero no exactamente sino,

extrayendo 10 bueno y desechando 10 malo de dichas tecnologlas.

El c6digo tiene su versatilidad en su manejo parametrLzado,

caracteristica que deja al programador la facilidad de escoger

dentro de una serie de opciones el mejor camino pa.ra poder

llegar; esto se puede ver como ventaja 0desventaja dependiendo

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 60/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII.IZANDO ADO"

50

del punto de vista, puesto que a veces se espera que la misma

tecnologia haga el trabajo de selecci6n y el programador

dandole la libertad de escoger su camino, usando su

experiencia, para mejor funcionamiento del sistema.

4.3 COMPARANDO ADO CON DAO Y RDO

ADO incorpora la funcionalidad de DAO y RDO, sus

antecesores, pero deja en el mismo pasado los posibles errores

de estas tecnolog1.as. DAO Y RDO surgieron de la siguiente

manera:

DAO constituye la primer interface Orientada a Objetos.

DAO(Direct Access Object), es decir "Objeto de Acceso Directo",

fue disenada principalmente para un manejador de base de datos

llamado Access, en donde se nota que su uso no es para

almacenar una gran cantidad de informaci6n y su manipulaci6n,

puesto que Access fue hecho para crear aplicaciones pequenas y

no grandes de sistemas convencionales, por ello su uso es solo

para bases de datos realizadas en Access.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 61/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

51

RDO (Remote Data Objects), incorpora en su funcionamiento el

acceso hacia bases de datos relacionales, innovando con este

paso el uso de objetos de forma remota; tiene como cualquiera

propiedades, pero vienen a ser complejas comparadas con ADO y

su acceso a bases de datos Jet 0Isam no es muy confiable pues

no los accesa con la nitidez necesaria.

ADO como sucesor de DAO y RDO hereda las tecnologias

descritas pero de forma optimizada, menos objetos, mas

propiedades, y eventos. ADO posee fuerza en relaci6n al acceso

a datos con respecto a sus antecesores, y no por ser una

tecnologia nueva hay que temerle, como profesional de sistemas

se debe verificar y analizar los resultados de ella

dependiendo de esto se implanta 0no. Se debe de desechar toda

resistencia al cambio porque es una obstrucci6n hacia el

desarrollo.

4.4 CONEXION A LA BASE DE DATOS

La conexi6n a la base de datos por medio de ADO, se

realiza con la ayuda de "ODBC" el cual se conecta hacia la base

de datos, Informix. En el ejemplo siguiente se explica como

hacer la conexi6n ADO hacia la base de datos, estctbleciendo

primeramente la declaraci6n de variables y posteriormente el

proceso de conexi6n:

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 62/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

52

Dim cnnl As ADODB.Connection

Dim strCnn As String

'Open connection.

strCnn = "driver={Informix};server=srv;" &

"uid=sa;pwd=;database=pubs"

Set cnnl = New ADODB.Connection

cnnl.Open strCnn

La primera variable que se declara, se refiere a la que

tiene almacenada la informacion de conexi on y seguidamente la

segunda(strCnn) sirve como puente de enlace entre el cliente y

el servidor creando a nivel logico y ffsico la conexion.

Despues se Ie asignan las variables correspondientes a.l formato

de conexi on y como tercera Lnat.rucc ion se abre la conex i.on

definida anteriormente.

4.5 CONSULTA A LA BASE DE DATOS

La consulta de la base de datos se puede realizar de

diferentes formas de extraccion de datos, 10 mas comtin es

utilizando la sintaxis de SQL(en espafiol: Lenguaje Estructurado

de Consulta), que es el estandard en diferentes tipos de bases

de datos relacionales. Esta se utiliza asignando el Query

creado a una variable tipo string, de la siguiente manera:

Set rsl = new recordset

Texto = select ...

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 63/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

53

4.6 DESPLEGANDO Y EDITANDO REGISTROS DE LA BASE DE DA'TOS

El despliegue de los registros de la base de datos llevan

consigo la consulta de los mismos, y estos se deben de guardar

en estructuras como: Snapshots 6 Dynasets, dependiendo del uso

que se vaya a dar con la informaci6n se elige una estructura.

Los Snapshots se usan cuando en el manejo de informaci6n no

existe ningun tipo de modificaci6n y estos datos a su vez, son

desplegados en los objetos propios de Visual Basic. Para un

uso diferente estan los Dynasets los cuales permiten que los

registros que se almacenen en esta estructura (Dynaset), se

modifique, en otras palabras, un cambio en aLqiin campo de la

estructura, afecta la base de datos, puesto que acepta

modificar e insertar.

4.7 OTROS OBJETOS PARA MANIPULAR DATOS

Para entender como funciona el modelo de programaci6n ADO, es

necesario saber como se relaciona cada objeto de este tipo de

programaci6n y sus principales caracteristicas.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 64/88

 

~DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

54

Command

(Optional) P a r a m e t e r s

Co l lect ion

E x e c u t e

E x e c u t e ParameterConnection

(Optional)

S o u r c e

E r ro r s C o l le c t io n(Op t iona l )

RecordsetAct ive F ie lds

Connect ion Co l lect ion

ErrorField

(Optional)

Figura 4.2 Relaci6n entre Objetos de Datos ADO

En el modele de programaci6n ADO existen los objetos que

utilizan esta tecnologia al 100%. Estos son:

4.7.1. Conexi6n: representa una comunicaci6n hacia el

origen de los datos, y permite al usuario ejecutar

comandos, dado que existe comunicaci6n entre el cliente y

el servidor. Para ejecutar cualquier tipo de comando, se

puede utilizar el metodo Execute del objeto Conexi6n. Si

el comando returna tuplas(filas, registros), un objeto

recordset es creado para que este almacene la informaci6n

traida desde el servidor.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 65/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIL:IZANDO ADO"

55

Para especificar aLqdn objeto recordset mas complejo,

se debe de crear uno nuevo de estos, asoc iandolo con la

conexi6n, y abrir el cursor.

4.7.2. Comando: es una sentencia de SQL a ej ecutar, que

puede ser procesado por el origen de datos i retornando

varias tuplas 0ninguna, donde si la base de datos tiene la

capacidad, se puede manejar paremet ros . El comando es

actualmente opcional en el modele de datos ADOporque

algunas bases de datos no pueden ejecutarlo, pero el objeto

es soportado si la base de datos 10 puede manejar.

Los comandos pueden ser tan simples como instrucciones

de SQL0 aLqiin otro lenguaj e que el proveedor de datos

reconozca) 0 llamadas a procedimientos almacenados (stored

procedures) en la base de datos. Pueden ser ej ecutados

usando el metodo del comando Execute, 0se crea un objeto

recordset y asociarlo cuando se abre el cursor.

El objeto comando incluye una colecci6n de Parametros,

que se explican en el parrafo siguiente.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 66/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

56

Si el proveedor posee comandos con parametros, las

colecciones de estos contienen individualmente objetos de

tipo parametro. Opuestamente a otros modelos, se puede

crear objetos Parametro y agregarlos a la colecci6n de

estos, de esa manera permitiendo usar comandos

parametrizados bien conocidos, para prevenir algunas veces,

operaciones costosas por parte del proveedor.

4.7.3. Parametro: este objeto representa un valor que

recibe dentro de un Comando. Como se not6 en la

descripci6n de est.e, se crea un objeto Parametro y se

agrega a la colecci6n de estos para prevenir muchas veces

innecesarias y cuantiosas tareas.

4.7.4. Recordset: es el mas complej0 (los dernas son

simplificados considerablemente). La funcionalidad de un

cursor esta representada en este objeto. Este se ve como

existente en los modelos de hoy, en el se han hecho un buen

numero de mejoramientos, tal como remover elementos

innecesarios, agregar argumentos opcionales que reducen el

numero de 1ineas de c6digo para escenarios comunes, y

cambios que se han hecho en los defaults, porque no tienen

sentido en la teconlogia actual.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 67/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

57

4.7.5. Campo: esta interfase representa una colurrmaen un

Recordset que se puede usar para obtener, modificar

valores, y un aprendizaje acerca de columnas meta-data.

Este objeto es casi Lderrt i.coen los modelos pasados, pero

incluye funcionalidad nueva.

4.7.6. Error: representa un error regresado del origen de

los datos. Este objeto es actualmente opcional porque es

solamente necesario cuando los origenes de los datos(Data

Source) pueden regresar mUltiples errores para un simple

metoda de Call. Si el proveedor no regresa los errores

para una simple llamada{Call) de funci6n, el proveedor s610

levanta el error a traves de los mecanismos normales COM

que todos esto hacen cuando llaman desde lenguajes como

Visual Basic.

4.8 TUTORIAL ADO

El siguiente tutorial presenta de una manera consecuente

los pasos principales para llevar a cabo la LmpLemerit.acon de

la teconlogia ADO, entre estas cabe destacar:

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 68/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

58

• Racer una conexi6n a una fuente de datos (Connection)

Opcionalmente, comenzando una transacci6n.

• Opcionalmente, crear un objeto para representar un comando

SQL (Command).

• Opcionalmente, especificar columnas, tablas y valores

dentro del comando SQL con parametros variables

(Parameter).

• Ejecutar el comando (Command, Connection 0Recordset) .

• Si el comando regresa filas, almacenar las filas en un

objeto de almacenamiento(Recordset).

• Opcionalmente, crear una vista del objeto de

almacenamiento de forma que se pueda navegar, ordenar y

filtrar los datos (Recordset)

• Editar los datos, ya sea afiadiendo,eliminando 0cambiando

( filas 0columnas (Recordset).

• Si es apropiado, actualizar la fuente de datos con los

cambios desde el objeto de almacenamiento (Recordset).

• Si se utiliza una transacci6n, aceptar 0rechazar los

cambios hechos durante la transacci6n y finalice

(Connection).

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 69/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

59

4.8.1. Abriendo una conexi6n.

Se requiere de medios para establecer las condiciones

necesarias para intercambiar datos, es decir, una conexi6n

(connection). La fuente de datos a la que se conecte, esta

especificada en una cadena de conexi6n, aunque los

parametros especificados pueden diferir para cada proveedor

y fuente de datos.

La manera principal en la que ADO abre una conexi6n es

con el metodo Connection. Open. Alternativamente, se invoca

el metoda abreviado, Recordset .Open, tanto para abrir una

conexi6n, enviando un comando en una sola operaci6n. La

siguiente es la sintaxis para cada metodo en Visual Basic:

Connection. Open Cadena De Conexion, ID Usuario, Contrasena, Opciones De

Apertura Recordset.Open Fuente, Conexion activa, Tipo De Cursor, Tipo

De Bloqueo, Opciones

El comparar estos dos met.odos se hacen not.abLes algunas

caracteri.sticas utiles de los parametros de los met.odos ADO

en general.

Un paxame tro de met.odo puede ser especificado .de varias

maneras. Por ejemplo, Recordset.Open, utiliza un parametro

Conexi6n activa, el cual podri.a ser una cadena de

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 70/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTII.IZANDO ADO"

60

Li,terales, una variable que representa una cadena 0 un

objeto Connection que representa una conexi6n abierta.

Este tutorial utiliza la cadena de literales de

conexi6n, "DSN=pubsiuid=saiPwd=i". (Las fuentes de datos

son indirectamente especificadas p~r la palabra clave

"DSN=". Vea la secci6n de "Cadenas de conexi6n tipicas" en

"Microsoft OLE DB Provider for ODBC" para mas informaci6n

en Internet)

Muchos objetos tienen propiedades que pueden

proporcionar un argumento si un paramet.ro de met.odo es

omitido. Por ejemplo, provea la informaci6n de la cadena de

conexi6n para el metodo Connection.Open al establecer la

propiedad Cadena De Conexi6n (ConnectionString) del objeto

Connection, luego omita el parametro de la Cadena del

metodo Open.

Este tutorial utiliza la siguiente declaraci6n del

t _ _ _ objeto Connection y el metodo Open:

Dim ann As New ADODB.Conneation

ann.Open "DSN=pubs;uid=sa;pwd=;"

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 71/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

61

4.8.2. Creando un comando.

Un comando es una instruccion entendida por el

proveedor de datos que modifica, administra 0 manipula la

fuente de datos. Los comandos son tipicamente escritos en

SQL, aunque no se requiere un lenguaj e en particular. Un

comando de petici.on (query) requiere que el proveedor de

datos regrese un obj eto Recordset que contiene filas de

informacion.

Especificar un comando como cualquiera de los siguientes:

• Texto comando, esto es, una cadena de literales 0 una

variable que representa la cadena.

• Un obj eto que representa al comando. En este caso , es el

valor de una propiedad Comando (Command) de un obj eto

CommandText establecido como el texto del comando.

Hacer peticiones de toda la informacion en la tabla de

authors en la base de datos pubs. EI obj eto Command es

declarado, establecido con el objeto abrir Connection y el

texto de comando; el codigo luce como este:

Dim cmd As New ADODB.CommandSet cmd.ActiveConnection = cnn

cmd.CommandText = "SELECT * from authors"

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 72/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

62

4.8.2.1. Comandos parametrizados

Uno de estos consiste en un texto de comando que

puede ser modificado con un valor especificado por el

usuario cada vez que el comando es invocado.

Un comodin (II? II), indica la parte del texto de

comando que es modificado. Cada uno de estos en el

texto de comando reemplaza con el valor del obj eto

Parameter correspondiente en la colecci6n Parameters,

cuando el comando sea ejecutado.

Hay dos maneras de crear un obj eto Parameter y

agregarlo a la colecci6n Parameters del objeto Command.

La primera manera es crear un objeto Parameter,

establecer sus propiedades Nombre (Name), Tipo (Type),

Direcci6n (Direction), 'I'arnafio (Size) y Valor (Value)

individualmente, y luego agregarlo a la colecci6n

Parameters. La segunda manera es crear y establecer las

propiedades del objeto Parameter con el metodo

CreateParameters del objeto Command, y luego agregar el

objeto Parameter recien creado; todo en un solo

estatuto.

Finalmente, llamar a los met.odos Command-Sxe.cu t.e 0

Recordset. Open para susti tuir los parametros por los

comodines y obtener un Recordset. Cambiar la propiedad

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 73/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

63

Value del obj eto Parameter po r otro nornbre. Entonces

llamar al met.odo Execute 0 Recordset. Close u Open de

nuevo para obtener un Recordset de otro autor.

Optimizar el desempefio del comando parametrizado

con la propiedad Prepared. Notar que el metodo Execute

no puede especificar las de CursorType 0 LockType del

objeto Recordset.

Aqui hay un breve ejemplo:

Public Sub mai n()

Dim c nn As New ADODB.Co nne ctio n

Dim c md As New ADODB.Command

Di m p r.m A s AD OD B.P arame te r

Dim strCmd As Stri ng

strCmd = "SELECT * FROM authors WHERE au lname = ?"

cmd.CommandText = strCmd

c md.Parame te rs.Ap pe nd _

c md.C re at eParame te r(lIlast n ame ", adV arC har, adP aramIn put :, 4 0, "" )

c n n . Op e n " ds n=p ub siu id= sa ,p wd =; "

cmd.Acti ve Co nn ec tio n = c nn

c m d.Pa ra me t e rs (l Il as t n a me " ) = "Ringer"

D isp la yR st c md .E xe c ut e

c md .P ara me t e rs (" las t n ame ") = "Karsen"

D isp la yR st c md .E xe c ut e

cnn.Close

End Sub

Pri vat e Sub Di sp lay Rst (rst As ADODB.Re co rdse t)

If rst.EOF = True Then

Debug.Prin t "No reco rdse t returne d for Name = I";

rst.ActiveCommand.Parameters(O); "I"End If

Whi le rst .EOF = False

De bug.Pri nt "Name = III; rst tau_fn ame ; " "; rst tau_llo .ame i

rst.MoveNext

Wend

End Sub

11'11

4.8.3. Ejecucion del comando

Los tres metodos que regresan un Recordset son

Connection. Execute, Command. Execute y Recordset. open. Esta

es su sintaxis en Visual Basic:

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 74/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILlCZANDO ADO"

64

connection. Execute (TextoComando, RegistrosAfectados,

Opciones)

command. Execute(RegistrosAfectados, Parametros, Opciones)

Recordset.Open Fuente, Conexi6n activa, TipoDeCursol~,

TipoDeBloqueo, Opciones

Estos metodos son optimizados para aprovechar las

ventajas de sus objetos particulares. Antes de enviar un

comando se debe, explicitamente, abrir una conexi6n. Cada

metodo que envia un comando representa la conexi6n de

manera diferente:

• El metoda Connection.Execute utiliza la conexi6n

expresada por el objeto Connection en si mismo ..

• El metoda Command.Execute utiliza el objeto Connection

establecido en su propiedad Conexi6n Activa

(ActiveConnection)

• El metodo Recordset.Open utiliza una cadena de

conexi6n, su parametro Conexi6n Activa 0 el, objeto

Connection establecido en su propiedad Conexi6nActiva., .

Otra diferencia es la manera en que el comando es

especificado en los tres metodos:

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 75/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIL:rZANDO ADOn

65

• En el metoda Connection. Execute, el comando es texto.

• En Command. Execute, este no es visible, est a

especificado en la propiedad Command.CommandText.

Ademas, puede ser parametrizado.

• En el metodo Recordset.Open, el comando es el argumento

Fuente, el cual puede ser texto, 0 un objeto Command.

(El argumento Fuente puede ser tambien una cadena que

especifique un nombre de tabla, un procedimiento

almacenado 0 el nombre de archivo de un Recordset

persistido. )

Cada metodo tiene un balance diferente entre

funcionalidady

desempefio:

• El metoda Execute esta hecho para ejecutar comandos que

no regresan datos.

• Ambos metodos Execute regresan objetos de s610 lectura

y Recordset uni-direccionales.

• El metoda Command. Execute Ie permite utilizar comandos

parametrizados que pueden ser reutilizados

eficientemente.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 76/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADOW

66

• El metoda Open Ie permite especificar el tipo de cursor

(estrategia y objeto utilizado para accesar los datos)

y de bloqueo (especifica el grado de aislamiento de

otros usuarios y si el cursor debe de aceptar

actualizaciones en los modos inmediato 0 por lotes

(batch)

Estas opciones, representan la mayor parte de la

funcionalidad de un Recordset.

En el tutorial se hace cambios al Recordset en modo por

lotesj Por tanto se especifica un tipo de bloqueo

adLockBatchOptimistic (bloqueo por lotes optimista). El

procesamiento requiere el Servicio de Cursor, asf que la

propiedad de localizaci6n de cursor (Cursorlocation)

t.ambien est.a especificada. Dado que el objeto Command ya

esta establecido a una conexi6n abierta, e1 parametro

conexi6n activa no puede ser especificado en el met.odo

Open.

El Recordset se declara y utiliza como:

Dim rs As New ADODB.Recordset

rst.CursorLocation = adUseClient

rst.Open cmd, , adOpenStatic, adLockBatchOptiuistic

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 77/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

67

4.8.4. Manipulacion de datos.

La mayor parte de los m~todos y propiedades del objeto

Recordset son dedicados a examinar, navegar y manipular los

datos Recordset.

El Recordset puede verse como un arreglo de filas, que

se examina y manipula en un momento dado en la fila actual

(current row) y su 10calizaci6n dentro del Recordset es la

posici6n de la fila actual (current row position). Cada vez

que se mueva a otra fila, esa se convierte en una nueva.

Varios metodos explicitamente mueven 0 "navegan" a

trav~s del Recordset (los m~todos Move). Algunos (el m~todo

Find) 10 hacen como un efecto colateral de su operaci6n.

Ademas , el ajustar ciertas propiedades (la propiedad

Bookmark) puede tambien cambiar su posicion de fila. La

propiedad tipo de cursor (CursorType) del objetos Recordset

o el mismo pa.ramet.rodel met.odo Open, determinan si se

puede navegar hacia delante y atras a trav~s del Recordset.

La propiedad Filter (filtro) controla los renglones a

los que se puede accesar (esto son los "visibles"). La

propiedad Sort (ordenamiento) controla el orden en donde se

navegan las filas del Recordset.

Se puede crear nuevas filas con el met.odo AddNew 0

eliminar filas existentes con el m~todo Delete.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 78/88

 

ftDESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADOn

68

Un Recordset tiene una colecci6n de campos (f i.eLds) que

es un conjunto de objetos Field que representan cada campo

o columna en una fila. Se obtiene despues los datos de un

campo con la propiedad Value del objeto Field. se puede,

accesar campos de datos en bloques con el metoda GetRows.

Despues de que se ha modificado el Recordset, se propagan

los cambios a la fuente de datos utilizando los met.odos

Update.

En este tutorial, se:

• Establece la propiedad Optimize en la colecci6n

Properties del objeto Field au_lname para mejorar el

desempefio del ordenamiento y filtrado.

• Ordena el Recordset por el apellido de cada autor.

• Filtra el Recordset de forma que las unicas filas sean

aquellas donde el mimero de t.el.efono del aut or tengan

el c6digo de area "415" y el conmutador comience con

"5".

• Cambia los nrimeros telef6nicos filtrados al c6digo de

area "777."

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 79/88

 

"DESARROLLO EN VXSUAL BASXC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

69

Se utiliza los metodos Move para navegar desde el

principio del Recordset filtrado y ordenado hasta el final.

Det.entendose cuando la propiedad EOF (Fin de Archivo) del

objeto Recordset indique que se alcanza la ultima fila. Al

moverse a 10 largo del Recordset, se visualiza el nombre y

apellido del autor, el numero de telefono original y luego

se cambia el c6digo de area en el campo del t.eefono a

1 1 7 7 71 1

• (Los numeros telef6nicos en el campo de se formatean

como lIaaaxxx-yyyyll donde aaa es el c6digo de area y xxx es

el conmutador.)

Al ir cambiando cada fila, ya no cumple el criterio

especificado por el filtro, de modo que ya no es visible en

el Recordset. Todos los renglones reaparecen cuando el

filtro es borrado.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 80/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIL,IZANDO ADOn

70

El c6digo luce como este:

rstlau_lname.Properties("Optimize") = True

rst.Sort = "au lname"

rst.Filter = "phone LIKE '415 5*'"

rst.MoveFirst

Do While Not rst.EOF

Debug.Print "Name .. H; rstlau_fname; " "; rstlau_lname;

", Phone .."; rstlphone

rstlphone = "777" & : Mid(rstlphone, 4)

rst.MoveNext

Loop

rst.Filter ..adFilterNone

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 81/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

71

4.8.5. Actualizacion de los datos.

Se acaba de cambiar los datos de varias filas del

Recordset. ADO utiliza dos nociones basi.ca relacionadas

con la adici6n, eliminaci6n 0modificaci6n de renglones de

datos.

La primera noci6n es que los cambios no son

inmediatamente hechos al Recordsetj en vez de eso, se hacen

a una memoria intermedia de copia (copy buffer). Si se

decide que no, entonces las modificaciones en La memoria

intermedia son descartadas. Si se decide mantener 10

modificado, entonces los datos en la memoria intermedia son

aplicados al Recordset.

La segunda noci6n es que los cambios pueden ser

propagados a la fuente de datos tan pronto como se declare

completo el trabajo en una fila, (esto es, modo inmediato).

o todo 10 modificado a un conjunto de renglones son

recogidos hasta que se declare que el trabajo para el

conjunto esta completo (esto es, modo por lotes). Estos

modos estan gobernados por las propiedades CursorLocation y

LockType.

En el modo inmediato, cada invocaci6n del metoda Update

propaga los cambios a la fuente de datos. En lotes, cada

invocaci6n de Update 0el movimiento de la posicion de fila

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 82/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIL:IZANDO ADO"

72

actual guarda los cambios a la memoria intermedia, pero

solo el metodo Updatebatch propaga las modificaciones a la

fuente de datos. El Recordset fue abierto en modo por lotes

(adLockBatchOptimistic) asf que las actualizaciones son

hechas en modo por lotes.

Opcionalmente, las actualizaciones pueden ser

realizadas en una transacci6n esta se establece en un

ambiente donde las operaciones dentro de la transacci6n son

todas exitosas 0sus efectos son cancelados.

Un ejemplo corminde una transacci6n es una aplicaci6n

bancaria, donde una operaci6n para deducir una cantidad de

una cuenta y otra para depositar la misma cantidad en otra

cuenta, ambas deben de ser exitosas. Si una falla, entonces

la otra debe de ser deshecha, de otra manera Las cuentas

estaran fuera de balance.

Las transacciones generalmente asignan y mantienen

recursos limitados en las fuentes de datos por largos

perfodos de tiempo. Por esta raz6n, es recomendable que una

transacci6n exista por perfodos tan cortos como sea

posible. (Esta es la raz6n por la cual este tutorial no

comienza la transacci6n tan pronto como la coriex.i on se

hace) .

Hablando pr act.Lcement;e I este tutorial no requiere una

transacci6n, pero se incluye una para prop6sitos

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 83/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIL,IZANDO ADO"

73

ilustrativos. El c6digo para comenzar una transacci6n y

realizar una actualizaci6n por lotes luce como este:

cnn.BeginTransrst.updateBatch

4.8.6. Conclusion de la actualizacion.

Si la actualizaci6n por lotes concluye con errores. El

c6mo se resuelva estos errores depende de la naturaleza y

la severidad de los errores y la 16gica de su aplicaci6n.

Sin embargo, si la base de datos es compartida con otros

usuarios, un error tfpico es que alguien modific6 el campo

antes de que uno 10 hiciera. Este tipo de error es llamado

conflicto. El ADO detecta esta situaci6n y reporta un

error.

Este paso del tutorial tiene dos partes: Si no hay

errores de actualizaci6n, entonces la fuente de datos

refleja los cambios actualizados. La transacci6n se ha

realizado. Al realizar la transacci6n se finaliza y termina

la transacci6n.

El c6digo para aceptar la actualizaci6n luce como este:

cnn.ConunitTrans

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 84/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

74

Si existen errores de actualizaci6n, son interceptados

en una rutina de manejo de errores, filtrando el Recordset

con la constante adFilterConflictingRecords de forma que

solo los renglones en conflicto sean visibles. La

estrategia de resoluci6n de errores es meramente imprimir

el nombre y apellido del autor (au fname y au_lname), luego

regresar (roll back) (esto es, deshacer) la transacci6n. Al

regresar la transacci6n se descarta cualquiera

actualizaci6n exitosa y finaliza la transacci6n.

El c6digo para rechazar la actualizaci6n luce como

este:

rst.Filter = adFilterConflictingRecords

rst.MoveFirst

Do While Not rst.EOF

Debug.Print "Con flict: Name =rstlau ln ame

rst.MoveNext

Loopcnn.RollbackTrans

"; rst 1au__fn ame ;" ";

()

Deapties de que concluye la actualizaci6n, los objetos

Recordset y Connection son cerrados y el ejemplo termina de

ejecutarse.

rst.Close

cnn.Close

4.8.7. Tutoria ADO en Visual Basic

Este tutorial de ADO, esta escrito en Microsoft Visual

Basic y para integrar todo concepto aqu f explicado se

present a el siguiente programa.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 85/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

75

Public Sub Main() , Tutorial in VB

Dim cnn As New ADODB.Connection

Dim cmd As New ADODB.Command

Dim rst As New ADODB.Recordset

, Paso 1 - Abrir Conexi6n

cnn.Open "DSN=pubs;uid=sa;pwd=;"

, Paso 2 - Crear un Comando

Set cmd.ActiveConnection = cnn

cmd.CommandText = "SELECT * from authors"

, Paso 3 - Ejecutarlo

rst.CursorLocation = adUseClient

rst.Open cmd, , adOpenStatic, adLockBatchOptimistic

, Paso 4 - Manipular la informaci6n

rst!au_lname.Properties("Optimize")

rst.Sort = "au lname"rst.Filter = "phone LIKE '415 5*'"

rst.MoveFirst

Do While Not rst.EOF

Debug.Print "Name = "; rst!au_fname; " "; rst!au_lname;

", Phone = "; rst!phone

rst!phone = "777" & Mid(rst!phone, 4)

rst.MoveNext

Loop

True

rst.Filter = adFilterNone

, Paso 5 - Actualizar la informaci6n

cnn.BeginTransOn Error GoTo ConflictHandler

rst.UpdateBatch

'Paso 6, parte A - Concluir el Update (Aceptar cambios)

cnn.CommitTrans

ExitTutorial:

On Error GoTo 0

rst.Close

cnn.Close

Exit Sub

'Paso 6, parte B - Concluir el Update (Cancelar cambios)

ConflictHandler:rst.Filter = adFilterConflictingRecords

rst.MoveFirst

Do While Not rst.EOF

Debug.Print "Conflict: Name

rst.MoveNext

Loop

cnn.RollbackTrans

Resume ExitTutorial

End Sub

"; rst!au_fname; " "; rst!au lname

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 86/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTJ:LIZANDO ADO"

76

CONCLUSIONES

1. La tecnologia esta siempre avanzando, 10 cual implica

desechar toda idea de resistencia al cambio, dando como

resultado el estar a la vanguardia del ramo tecno16gico y

aprovechamiento de los ultimos recursos informaticos.

2. El modele de datos ADO, ofrece mayores ventajas a los

anteriores modelos(DAO y RDO), porque ademas de ofrecer su

tecnologia, hereda de ellos sus caracteristicas.

3. La sintaxis que se utiliza para ADO es de facil comprensi6n

para todo programador, esto se resume en mejor

entendimiento del c6digo, para tener la productividad

deseada en toda programaci6n.

4. El uso de esta tecnologia no cerrada permite aprovechar

lenguajes propietarios como SQL, el cual es un lenguaje

para manipulaci6n de datos en bases de datos relacionales.

5. Para llegar a tener toda la funcionalidad del modelo de

datos ADO, es necesario que se tenga un buen Back End que

10 respalde en el manej0 de datos, una "Base de Datos

Relacional" que lleve a cabo sus funciones y que cumpla

. .

toda RegIa de Codd para que este modele sea aprovechado al

100 por ciento.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 87/88

 

"DESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTIL.IZANDO ADO"

77

RECOMENDACIONES

1. Cuando se implemente cualquier cambio tecnologico, se

evalua el impacto que vaya a tener, poniendo en la balanza

de un lado las ventajas y del otro desventajas de

implementarlo.

2. No mentalizar la prcqramaci.on en un nivel personal, sino

mas bien tener una mente cambiante para adecuar y

aprovechar en gran manera cualquier tecnologia.

3. Usar bases de datos relacionales de gran fortaleza, en

seguridad y consistencia de datos, para que sea una arma y

ventaja, en el desarrollo de aplicaciones ADO.

4. Implementar Procedimientos Almacenados siempre y cuando la

base de datos relacional 10 permita, para dejar al modele

ADO utilizar estas ventajas y asi reducir el codigo en la

i:";\._ ~

aplLcacLon del cliente como aumento de velocidad en el

servidor.

5/17/2018 3284 - slidepdf.com

http://slidepdf.com/reader/full/3284 88/88

 

UDESARROLLO EN VISUAL BASIC 6.0 PARA BASES DE DATOS RELACIONALES (INFORMIX) UTILIZANDO ADO"

78

BIBLIOGRAFIA

I. POR INTERNET

1. www.microsoft.com

2. www.informix.com

3. www.microsoft.com/latam/msdn

4. Ayuda en Linea de Microsoft Visual Basic 6.0