SlideShare a Scribd company logo
1 of 8
CURSOR ADAPTER
El CursorAdapter no es más que una nueva clase, pero muy importante, ya que con ella se puede gestionar todo acceso a datos, tanto local como remoto, el cursorAdapter soporta diferentes orígenes de datos, los cuales pueden ser aplicados dinámicamente y la compartición de dichos orígenes de datos solamente se encontrará limitada por la propia tecnología.  El cursor adapter soporta los siguientes orígenes de datos: Nativo (Visual Fox Pro) Open Data Connectivity (ODBC) ActiveX Data Object (ADO) Extensible Makup Lenguaje (XML)
Debemos entender, a esta nueva clase como un punto de entrada, ya que como todo tiene sus deficiencias, pero por ello, no deja de ser noble en su propio concepto y mantener su grandeza para el desarrollo. Si sabemos darle este enfoque, se puede obtener unos resultados majestuosos en la capa de acceso a datos, ya sea para aplicaciones cliente/servidor, posibilidades de movernos en multitud de bases de datos, etc. Y todo esto interrelacionado; con que a partir de esta versión podemos crear clases partiendo del contenedor DataEnvironment, se pueden crear verdaderos sistemas, con versatilidad, robustez y potencia en lo que a la capa de acceso a datos se refiere.  Otra de las grandes ventajas que ofrece el CursorAdapter es que mantiene la interacción con los comandos TableUpdate y TableRevert, esto es realmente muy bueno, ya que no perdemos la generosidad y dimensión de dichos comandos, sobre todo cuando queremos dar robustez a la integridad de nuestros datos e independientemente del origen de datos.
Partiendo de la creación de la base de datos lo cual llevará todas las tablas de nuestro sistema, la idea principalmente es heredar de la clase Cursor Adapter, extender su funcionalidad y hacerla genérica, vamos a crear un objeto llamado caBase que implemente esta funcionalidad. La potencia de Cursor Adapter nos permite trabajar con cualquier tipo de conexión (remota, nativa, XML), en este ejemplo nos vamos a concentrar en trabajar con bases de datos remotas, particularmente con mySQL, aunque el ejemplo sirve perfectamente para cualquiera: Ejemplo práctico  de cursor adapter en visual fox pro
Código fuente de la clase caBase   *[ caBase.prg  -  R. Fynn Set2007 *[ Clase base de CursorAdapter *[ Las clases child heredan el tipo de conexión y los datos de la misma DEFINE CLASS caBase AS CursorAdapter *-- más adelante vemos de donde obtenemos el string de conexión en esta variable Tag = cStrCnx Height = 22 Width = 23 Alias = "" BufferModeOverride = 5 DataSourceType = "ODBC" Flags = 0 BreakOnError = .T. Name = "myschema"
PROCEDURE Init() *** Setup code: DO NOT REMOVE local llReturn do case case not pemstatus(This, '__VFPSetup', 5) This.AddProperty('__VFPSetup', 0) case This.__VFPSetup = 1 This.__VFPSetup = 2 case This.__VFPSetup = 2 This.__VFPSetup = 0 return endcase set multilocks on llReturn = dodefault() *** End of Setup code: DO NOT REMOVE *** Select connection code: DO NOT REMOVE ***<DataSource> This.DataSource = sqlstringconnect(cStrCnx) ***</DataSource> *** End of Select connection code: DO NOT REMOVE
*** Setup code: DO NOT REMOVE if This.__VFPSetup = 1 This.__VFPSetup = 2 endif return llReturn *** End of Setup code: DO NOT REMOVE ENDPROC PROCEDURE AutoOpen *** Setup code: DO NOT REMOVE if not pemstatus(This, '__VFPSetup', 5) This.AddProperty('__VFPSetup', 1) This.Init() endif *** End of Setup code: DO NOT REMOVE ENDPROC
PROCEDURE Error LPARAMETERS nError, cMethod, nLine AERROR(z) MESSAGEBOX(&quot;Error en la clase caBase&quot; + CHR(13) + ; TRANSFORM(nError) + CHR(13) + ; cMethod + CHR(13) + ; TRANSFORM(nLine) + CHR(13) + ; z[2] ) ENDPROC ENDDEFINE * *-- EndDefine: camyschema

More Related Content

What's hot

What's hot (13)

Sql ii
Sql iiSql ii
Sql ii
 
Lenguaje Transact SQL
Lenguaje Transact SQL Lenguaje Transact SQL
Lenguaje Transact SQL
 
Conexion Entre Php Y Mysqul
Conexion Entre Php Y MysqulConexion Entre Php Y Mysqul
Conexion Entre Php Y Mysqul
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
 
Resultset
ResultsetResultset
Resultset
 
Resultset
ResultsetResultset
Resultset
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jquery
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Ejercicio generalización
Ejercicio generalizaciónEjercicio generalización
Ejercicio generalización
 
Creacion y utilizacion de consultas simples php
Creacion y utilizacion de consultas simples phpCreacion y utilizacion de consultas simples php
Creacion y utilizacion de consultas simples php
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
80 Php. Campos Y Conexiones
80 Php. Campos Y Conexiones80 Php. Campos Y Conexiones
80 Php. Campos Y Conexiones
 

Similar to Cursor Adapter

Diapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.netDiapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.netTAPIA SILVA EVELINA
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicgerardd98
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAlfredo Joya
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpEdgar Solis
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)Darwin Durand
 
Clase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de SistemasClase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de SistemasJose Bustamante Romero
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de DatosRonny Parra
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en javajent46
 
Portabilidad y transportabilidad
Portabilidad y transportabilidadPortabilidad y transportabilidad
Portabilidad y transportabilidadjuanmanuelsalgado
 
estructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensambladorestructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensambladorGloria Azúa
 

Similar to Cursor Adapter (20)

bd.net.pptx
bd.net.pptxbd.net.pptx
bd.net.pptx
 
Diapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.netDiapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.net
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmp
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Jdbc
JdbcJdbc
Jdbc
 
Clase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de SistemasClase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de Sistemas
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
Portabilidad y transportabilidad
Portabilidad y transportabilidadPortabilidad y transportabilidad
Portabilidad y transportabilidad
 
estructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensambladorestructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensamblador
 
Java con Base de Datos
Java con Base de Datos Java con Base de Datos
Java con Base de Datos
 
Base de datos moviles
Base de datos movilesBase de datos moviles
Base de datos moviles
 

Recently uploaded

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Cursor Adapter

  • 2. El CursorAdapter no es más que una nueva clase, pero muy importante, ya que con ella se puede gestionar todo acceso a datos, tanto local como remoto, el cursorAdapter soporta diferentes orígenes de datos, los cuales pueden ser aplicados dinámicamente y la compartición de dichos orígenes de datos solamente se encontrará limitada por la propia tecnología. El cursor adapter soporta los siguientes orígenes de datos: Nativo (Visual Fox Pro) Open Data Connectivity (ODBC) ActiveX Data Object (ADO) Extensible Makup Lenguaje (XML)
  • 3. Debemos entender, a esta nueva clase como un punto de entrada, ya que como todo tiene sus deficiencias, pero por ello, no deja de ser noble en su propio concepto y mantener su grandeza para el desarrollo. Si sabemos darle este enfoque, se puede obtener unos resultados majestuosos en la capa de acceso a datos, ya sea para aplicaciones cliente/servidor, posibilidades de movernos en multitud de bases de datos, etc. Y todo esto interrelacionado; con que a partir de esta versión podemos crear clases partiendo del contenedor DataEnvironment, se pueden crear verdaderos sistemas, con versatilidad, robustez y potencia en lo que a la capa de acceso a datos se refiere. Otra de las grandes ventajas que ofrece el CursorAdapter es que mantiene la interacción con los comandos TableUpdate y TableRevert, esto es realmente muy bueno, ya que no perdemos la generosidad y dimensión de dichos comandos, sobre todo cuando queremos dar robustez a la integridad de nuestros datos e independientemente del origen de datos.
  • 4. Partiendo de la creación de la base de datos lo cual llevará todas las tablas de nuestro sistema, la idea principalmente es heredar de la clase Cursor Adapter, extender su funcionalidad y hacerla genérica, vamos a crear un objeto llamado caBase que implemente esta funcionalidad. La potencia de Cursor Adapter nos permite trabajar con cualquier tipo de conexión (remota, nativa, XML), en este ejemplo nos vamos a concentrar en trabajar con bases de datos remotas, particularmente con mySQL, aunque el ejemplo sirve perfectamente para cualquiera: Ejemplo práctico de cursor adapter en visual fox pro
  • 5. Código fuente de la clase caBase *[ caBase.prg  -  R. Fynn Set2007 *[ Clase base de CursorAdapter *[ Las clases child heredan el tipo de conexión y los datos de la misma DEFINE CLASS caBase AS CursorAdapter *-- más adelante vemos de donde obtenemos el string de conexión en esta variable Tag = cStrCnx Height = 22 Width = 23 Alias = &quot;&quot; BufferModeOverride = 5 DataSourceType = &quot;ODBC&quot; Flags = 0 BreakOnError = .T. Name = &quot;myschema&quot;
  • 6. PROCEDURE Init() *** Setup code: DO NOT REMOVE local llReturn do case case not pemstatus(This, '__VFPSetup', 5) This.AddProperty('__VFPSetup', 0) case This.__VFPSetup = 1 This.__VFPSetup = 2 case This.__VFPSetup = 2 This.__VFPSetup = 0 return endcase set multilocks on llReturn = dodefault() *** End of Setup code: DO NOT REMOVE *** Select connection code: DO NOT REMOVE ***<DataSource> This.DataSource = sqlstringconnect(cStrCnx) ***</DataSource> *** End of Select connection code: DO NOT REMOVE
  • 7. *** Setup code: DO NOT REMOVE if This.__VFPSetup = 1 This.__VFPSetup = 2 endif return llReturn *** End of Setup code: DO NOT REMOVE ENDPROC PROCEDURE AutoOpen *** Setup code: DO NOT REMOVE if not pemstatus(This, '__VFPSetup', 5) This.AddProperty('__VFPSetup', 1) This.Init() endif *** End of Setup code: DO NOT REMOVE ENDPROC
  • 8. PROCEDURE Error LPARAMETERS nError, cMethod, nLine AERROR(z) MESSAGEBOX(&quot;Error en la clase caBase&quot; + CHR(13) + ; TRANSFORM(nError) + CHR(13) + ; cMethod + CHR(13) + ; TRANSFORM(nLine) + CHR(13) + ; z[2] ) ENDPROC ENDDEFINE * *-- EndDefine: camyschema