Página 1 de 1

Sobre ADO

Publicado: Mar Ene 23, 2007 11:15 pm
por pablogarciau
Checando la jerarquia de clases me encuentro con que TODBCDatasource
hereda de TDBFDataSource y a su vez TODBCDataSet hereda de TDBFDataSet,
sin embargo TADODataSource no esta en esa misma linea hereditaria y no
localizo un TADODataSet
Todo esto viene a colacion porque pretendo cambiar mis conexiones
ODBCDataSource por ADODataSource y no se si esto acarreara que tenga que
hacer grandes modificaciones en todos los programas, como cambiar
tambien todos los DataSets
Alguien que me pudiera orientar al respecto ?
Gracias.

Sobre ADO

Publicado: Mié Ene 24, 2007 9:31 am
por Guest
Juan Pablo,
Efectivamente cuando se diseño ADO se tuvo en cuenta la posibilidad que en
el futuro cualquier usuario pudiese cambiar de motor de bases de datos
simplemente cambiando el Datasource, es decir, los Datasets han de ser
únicos, e independientes del Datasource con el que trabajen.
De este enfoque de Dataset camaleónico se excluyo todo el manejo de DBFs ya
que entendemos que iba a salir un Dataset aberrante, y que por otra parte la
forma de programar para DBFs es completamente distinta que para SQL, por lo
que es imposible que una aplicación desarrollada para DBFs se pasa a SQL sin
tocar más que el DataSource.
En definitiva los DBFs se quedan como están, la clase TDataSet pasa a ser
clase de uso final y polivalente para cualquier tipo de base de datos,
actualmente ADO, pero en el futuro habrá más. Y por último ODBC se queda
como está por compatibilidad.
Un saludo
"Juan Pablo Garcia" <pablogarciau@msn.com> escribió en el mensaje
news:[email=45b688dd@news.xailer.com...]45b688dd@news.xailer.com...[/email]
> Checando la jerarquia de clases me encuentro con que TODBCDatasource
> hereda de TDBFDataSource y a su vez TODBCDataSet hereda de TDBFDataSet,
> sin embargo TADODataSource no esta en esa misma linea hereditaria y no
> localizo un TADODataSet
> Todo esto viene a colacion porque pretendo cambiar mis conexiones
> ODBCDataSource por ADODataSource y no se si esto acarreara que tenga que
> hacer grandes modificaciones en todos los programas, como cambiar tambien
> todos los DataSets
>
> Alguien que me pudiera orientar al respecto ?
>
> Gracias.

Sobre ADO

Publicado: Vie Ene 26, 2007 3:35 am
por pablogarciau
Ignacio: Muy agradecido por tu respuesta

Sobre ADO

Publicado: Vie Ene 26, 2007 5:00 am
por pablogarciau
Intento hacer una conexion a un ADODataSource con :
WITH OBJECT oODBCds := TAdoDataSource():New( Application )
y recibo el error anexo
Alguna idea al respecto ?
***************************** Registro de errores
*****************************
Fecha: 25/01/2007
Hora: 20:55:09
Memoria libre: 592552
Area actual: 1
------------------------- Información del compilador
--------------------------
Versión Xailer: Xailer 1.2.1 Version 1.2a
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del error
-----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TAPPLICATION:INSERTCOMPONENT
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TDATASOURCE:CREATE (125)
TADODATASOURCE:NEW (101)
VENTA4WINMAIN (188)
MAIN (14)

Sobre ADO

Publicado: Vie Ene 26, 2007 10:21 am
por ignacio
Juan Pablo,
El constructor New de la clase DataSource sólo admite como parametro
opcional un formulario.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Juan Pablo Garcia" <pablogarciau@msn.com> escribió en el mensaje
news:45b97cd7$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Intento hacer una conexion a un ADODataSource con :
>
> WITH OBJECT oODBCds := TAdoDataSource():New( Application )
>
> y recibo el error anexo
>
> Alguna idea al respecto ?
>
> ***************************** Registro de errores
> *****************************
>
> Fecha: 25/01/2007
> Hora: 20:55:09
> Memoria libre: 592552
> Area actual: 1
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.2.1 Version 1.2a
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1004
> Estado: .F.
> Descripción: Message not found
> Operación: TAPPLICATION:INSERTCOMPONENT
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TDATASOURCE:CREATE (125)
> TADODATASOURCE:NEW (101)
> VENTA4WINMAIN (188)
> MAIN (14)

Sobre ADO

Publicado: Sab Ene 27, 2007 12:39 am
por pablogarciau
Ignacio Ortiz de Zúñiga escribió:
> Juan Pablo,
>
> El constructor New de la clase DataSource sólo admite como parametro
> opcional un formulario.
>
> Un saludo
>
Sin embargo, asi:
WITH OBJECT oODBCds := TODBCDataSource():New( Application )
si funciona
según la jerarquia de clases ambas clases heredan de DataSource
???

Sobre ADO

Publicado: Sab Ene 27, 2007 1:38 am
por pablogarciau
> Juan Pablo,
>
> Efectivamente cuando se diseño ADO se tuvo en cuenta la posibilidad que en
> el futuro cualquier usuario pudiese cambiar de motor de bases de datos
> simplemente cambiando el Datasource, es decir, los Datasets han de ser
> únicos, e independientes del Datasource con el que trabajen.
>
> De este enfoque de Dataset camaleónico se excluyo todo el manejo de DBFs ya
> que entendemos que iba a salir un Dataset aberrante, y que por otra parte la
> forma de programar para DBFs es completamente distinta que para SQL, por lo
> que es imposible que una aplicación desarrollada para DBFs se pasa a SQL sin
> tocar más que el DataSource.
>
> En definitiva los DBFs se quedan como están, la clase TDataSet pasa a ser
> clase de uso final y polivalente para cualquier tipo de base de datos,
> actualmente ADO, pero en el futuro habrá más. Y por último ODBC se queda
> como está por compatibilidad.
>
> Un saludo
Ignacio, Segun tus comentarios, cambie el TODBCDataSource por un
TADODataSource y logre hacer la conexion, sin embargo recibo este error
cuando incorporo un TODBCDataSet al TADODataSource
la linea es esta :
WITH OBJECT ::oCveDataSet := TODBCDataSet():New( Self )
***************************** Registro de errores
*****************************
Fecha: 26/01/2007
Hora: 17:30:13
Memoria libre: 596512
Area actual: 1
------------------------- Información del compilador
--------------------------
Versión Xailer: Xailer 1.2.1 Version 1.2a
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del error
-----------------------
Subsistema: XAILER:SetDataSource
Código de error: 0
Estado: .F.
Descripción: Incorrect DataSource type, should be
KindOf('TOdbcDataSource')
Operación:
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TODBCDATASET:SETDATASOURCE (1061)
(b)XDATASET:XDATASET (28)
TODBCDATASET:_ODATASOURCE (0)
FORMLOGIN:FORMINITIALIZE (79)
FORMLOGIN:ONINITIALIZE (0)
FORMLOGIN:NEW (183)
VENTA4WINMAIN (207)
MAIN (14)

Sobre ADO

Publicado: Sab Ene 27, 2007 8:40 pm
por jfgimenez
Juan Pablo,
> Ignacio, Segun tus comentarios, cambie el TODBCDataSource por un
> TADODataSource y logre hacer la conexion, sin embargo recibo este error
> cuando incorporo un TODBCDataSet al TADODataSource
TODBCDataSet sólo se puede usar con TODBCDataSource.
Para TADODataSource debes usar TSQLTable y/o TSQLQuery. De hecho, la idea
que te comentaba Ignacio es conseguir que las mismas clases TSQLTable y
TSQLQuery se puedan usar con ADO y con futuros 'datasources' de motores SQL
(p.ej. SQLite, MySQL, etc.). De esta forma, se podrá cambiar de motor con
sólo cambiar el datasource correspondiente, y no habrá que tocar para nada
los datasets.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info