Hola a todos,
Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo que
no es recomendable hacer esta conexion en cada Formulario sobretodo si la
conexión es a la misma base de datos, ¿como se maneja una sola conexión para
todo un proyecto?, supongo que de forma analoga se manejarian los DataSet?
Estos componentes (DataSource, DataSet) los estaba manejando con variables
publicas y declarandolos desde codigo y si funcionan, pero al querer
aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi ya que use
controles TBEdit y no supe como declarar las porpiedades oDataFiled y
oDataSet.
De antemano gracias.
Saludos,
Mario Dávalos
México, D.F.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Un solo oDataSource para todo el proyecto...
-
- Mensajes: 190
- Registrado: Mar Ago 19, 2008 12:38 am
-
- Mensajes: 620
- Registrado: Jue Mar 23, 2006 2:39 am
Un solo oDataSource para todo el proyecto...
MARIO:
Se define el DataSource en el formulario principal, luego se pasa como
parametro a los otros fomularios, usando el evento OnInitialize se
asigna al DataSet.
Saludos
Rene Flores
http://www.ciber-tec.com
DAVALOS escribió:
> Hola a todos,
>
> Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo
> que no es recomendable hacer esta conexion en cada Formulario sobretodo
> si la conexión es a la misma base de datos, ¿como se maneja una sola
> conexión para todo un proyecto?, supongo que de forma analoga se
> manejarian los DataSet?
>
> Estos componentes (DataSource, DataSet) los estaba manejando con
> variables publicas y declarandolos desde codigo y si funcionan, pero al
> querer aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi
> ya que use controles TBEdit y no supe como declarar las porpiedades
> oDataFiled y oDataSet.
>
> De antemano gracias.
>
> Saludos,
> Mario Dávalos
> México, D.F.
>
>
>
>
Se define el DataSource en el formulario principal, luego se pasa como
parametro a los otros fomularios, usando el evento OnInitialize se
asigna al DataSet.
Saludos
Rene Flores
http://www.ciber-tec.com
DAVALOS escribió:
> Hola a todos,
>
> Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo
> que no es recomendable hacer esta conexion en cada Formulario sobretodo
> si la conexión es a la misma base de datos, ¿como se maneja una sola
> conexión para todo un proyecto?, supongo que de forma analoga se
> manejarian los DataSet?
>
> Estos componentes (DataSource, DataSet) los estaba manejando con
> variables publicas y declarandolos desde codigo y si funcionan, pero al
> querer aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi
> ya que use controles TBEdit y no supe como declarar las porpiedades
> oDataFiled y oDataSet.
>
> De antemano gracias.
>
> Saludos,
> Mario Dávalos
> México, D.F.
>
>
>
>
-
- Mensajes: 190
- Registrado: Mar Ago 19, 2008 12:38 am
Un solo oDataSource para todo el proyecto...
Gracias Rene.
Saludos,
"Rene Flores" <"rflores[nospam]"@ciber-tec.com> escribió en el mensaje de
noticias news:[email=48c5f28c@ozsrv2.ozlan.local...]48c5f28c@ozsrv2.ozlan.local...[/email]
> MARIO:
>
> Se define el DataSource en el formulario principal, luego se pasa como
> parametro a los otros fomularios, usando el evento OnInitialize se asigna
> al DataSet.
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
> DAVALOS escribió:
>> Hola a todos,
>>
>> Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo
>> que no es recomendable hacer esta conexion en cada Formulario sobretodo
>> si la conexión es a la misma base de datos, ¿como se maneja una sola
>> conexión para todo un proyecto?, supongo que de forma analoga se
>> manejarian los DataSet?
>>
>> Estos componentes (DataSource, DataSet) los estaba manejando con
>> variables publicas y declarandolos desde codigo y si funcionan, pero al
>> querer aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi
>> ya que use controles TBEdit y no supe como declarar las porpiedades
>> oDataFiled y oDataSet.
>>
>> De antemano gracias.
>>
>> Saludos,
>> Mario Dávalos
>> México, D.F.
>>
>>
>>
Saludos,
"Rene Flores" <"rflores[nospam]"@ciber-tec.com> escribió en el mensaje de
noticias news:[email=48c5f28c@ozsrv2.ozlan.local...]48c5f28c@ozsrv2.ozlan.local...[/email]
> MARIO:
>
> Se define el DataSource en el formulario principal, luego se pasa como
> parametro a los otros fomularios, usando el evento OnInitialize se asigna
> al DataSet.
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
> DAVALOS escribió:
>> Hola a todos,
>>
>> Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo
>> que no es recomendable hacer esta conexion en cada Formulario sobretodo
>> si la conexión es a la misma base de datos, ¿como se maneja una sola
>> conexión para todo un proyecto?, supongo que de forma analoga se
>> manejarian los DataSet?
>>
>> Estos componentes (DataSource, DataSet) los estaba manejando con
>> variables publicas y declarandolos desde codigo y si funcionan, pero al
>> querer aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi
>> ya que use controles TBEdit y no supe como declarar las porpiedades
>> oDataFiled y oDataSet.
>>
>> De antemano gracias.
>>
>> Saludos,
>> Mario Dávalos
>> México, D.F.
>>
>>
>>
-
- Mensajes: 190
- Registrado: Mar Ago 19, 2008 12:38 am
Un solo oDataSource para todo el proyecto...
Rene,
Parecia sencilla tu recomendación, pero no supe como cachar el parametro
pasado, yo tengo:
WITH OBJECT oFrm := TForm4():New( Self, oDataSource1 )
:cText := "Alta de Clientes..."
:ShowModal()
:End()
END WITH
Pero al crear el formulario no se donde recibo el oDataSource1, o como
manipularlo:
CLASS TForm4 FROM TForm
COMPONENT oGroupBox1
COMPONENT oLabel1
COMPONENT oLabel2
COMPONENT oLabel3
METHOD CreateForm()
.
.
.
ENDCLASS
Gracias por la ayuda.
Saludos,
"Rene Flores" <"rflores[nospam]"@ciber-tec.com> escribió en el mensaje de
noticias news:[email=48c5f28c@ozsrv2.ozlan.local...]48c5f28c@ozsrv2.ozlan.local...[/email]
> MARIO:
>
> Se define el DataSource en el formulario principal, luego se pasa como
> parametro a los otros fomularios, usando el evento OnInitialize se asigna
> al DataSet.
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
> DAVALOS escribió:
>> Hola a todos,
>>
>> Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo
>> que no es recomendable hacer esta conexion en cada Formulario sobretodo
>> si la conexión es a la misma base de datos, ¿como se maneja una sola
>> conexión para todo un proyecto?, supongo que de forma analoga se
>> manejarian los DataSet?
>>
>> Estos componentes (DataSource, DataSet) los estaba manejando con
>> variables publicas y declarandolos desde codigo y si funcionan, pero al
>> querer aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi
>> ya que use controles TBEdit y no supe como declarar las porpiedades
>> oDataFiled y oDataSet.
>>
>> De antemano gracias.
>>
>> Saludos,
>> Mario Dávalos
>> México, D.F.
>>
>>
>>
Parecia sencilla tu recomendación, pero no supe como cachar el parametro
pasado, yo tengo:
WITH OBJECT oFrm := TForm4():New( Self, oDataSource1 )
:cText := "Alta de Clientes..."
:ShowModal()
:End()
END WITH
Pero al crear el formulario no se donde recibo el oDataSource1, o como
manipularlo:
CLASS TForm4 FROM TForm
COMPONENT oGroupBox1
COMPONENT oLabel1
COMPONENT oLabel2
COMPONENT oLabel3
METHOD CreateForm()
.
.
.
ENDCLASS
Gracias por la ayuda.
Saludos,
"Rene Flores" <"rflores[nospam]"@ciber-tec.com> escribió en el mensaje de
noticias news:[email=48c5f28c@ozsrv2.ozlan.local...]48c5f28c@ozsrv2.ozlan.local...[/email]
> MARIO:
>
> Se define el DataSource en el formulario principal, luego se pasa como
> parametro a los otros fomularios, usando el evento OnInitialize se asigna
> al DataSet.
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
> DAVALOS escribió:
>> Hola a todos,
>>
>> Estoy usando la clase TAdoDataSource para conectarme a SQL 2005, supongo
>> que no es recomendable hacer esta conexion en cada Formulario sobretodo
>> si la conexión es a la misma base de datos, ¿como se maneja una sola
>> conexión para todo un proyecto?, supongo que de forma analoga se
>> manejarian los DataSet?
>>
>> Estos componentes (DataSource, DataSet) los estaba manejando con
>> variables publicas y declarandolos desde codigo y si funcionan, pero al
>> querer aprovechar los metodos oDataSet:AddNew, oDataSet:New me confundi
>> ya que use controles TBEdit y no supe como declarar las porpiedades
>> oDataFiled y oDataSet.
>>
>> De antemano gracias.
>>
>> Saludos,
>> Mario Dávalos
>> México, D.F.
>>
>>
>>
Un solo oDataSource para todo el proyecto...
Saludos, yo lo hago asi. En AppData, creo todos los datasources y
datasets que voy a utilizar en el proyecto, de esta manera.
Esto es un procedure del primer modulo ejecutable de mi aplicación.
------------------------------------------------------------ -------
Procedure VariablesPublicas()
AppData:AddData("oDataSource",TCdxDatasource():Create())
AppData:AddData("oDataSourceImgVo",TCdxDatasource():Create())
AppData:AddData("oDataSourceImgDni",TCdxDatasource():Create())
AppData:AddData("oDataSetClientes",TDbfDataset():Create())
AppData:AddData("oDataSetHistorico",TDbfDataset():Create())
AppData:AddData("oDataSetVo",TDbfDataset():Create())
AppData:AddData("oDataSetGastos",TDbfDataset():Create())
AppData:AddData("oDataSetImagenes",TDbfDataset():Create())
AppData:AddData("oDataSetImagenesVo",TDbfDataset():Create())
Return
Aquí inicio los datasources/datasets, pero aun están "en blanco".
Después, tengo otro PRG aparte, para las inicializaciones de los
datasets cuya parte del código es:
#include "Xailer.ch"
FUNCTION InicializaDataSource
WITH OBJECT AppData:oDataSource
:cConnect:=".DBF"
END WITH
WITH OBJECT AppData:oDataSourceImgDni
:cConnect:=".IMGDNI"
END WITH
WITH OBJECT AppData:oDataSourceImgVo
:cConnect:=".IMGVO"
END WITH
RETURN NIL
FUNCTION InicializaDatasetClientes
WITH OBJECT AppData:oDatasetClientes
IF(:lOpen == .T.)
:lOpen:= .F.
END IF
:cName:="BD.DBF"
:oDataSource:=AppData:oDataSource
IF (FILE("BD.CDX"))
FERASE("BD.CDX")
END IF
IF (:lOpen := .T.)
:Pack()
INDEX ON _FIELD->DNICIF TAG iBdDniCif UNIQUE FOR !DELETED()
INDEX ON _FIELD->APELNOM TAG iBdApelnom UNIQUE FOR !DELETED()
ELSE
MSGINFO("Error abriendo base de datos")
END IF
END WITH
RETURN NIL
Ya después en cada OnInitialize de los formularios, solo hay que llamar
a la funciónes que previamente hemos creado para iniciar los datasets.
METHOD FormInitialize( oSender ) CLASS FrmClientes
InicializaDatasetClientes()
RETURN Nil
Espero que te sirva, un saludo.
datasets que voy a utilizar en el proyecto, de esta manera.
Esto es un procedure del primer modulo ejecutable de mi aplicación.
------------------------------------------------------------ -------
Procedure VariablesPublicas()
AppData:AddData("oDataSource",TCdxDatasource():Create())
AppData:AddData("oDataSourceImgVo",TCdxDatasource():Create())
AppData:AddData("oDataSourceImgDni",TCdxDatasource():Create())
AppData:AddData("oDataSetClientes",TDbfDataset():Create())
AppData:AddData("oDataSetHistorico",TDbfDataset():Create())
AppData:AddData("oDataSetVo",TDbfDataset():Create())
AppData:AddData("oDataSetGastos",TDbfDataset():Create())
AppData:AddData("oDataSetImagenes",TDbfDataset():Create())
AppData:AddData("oDataSetImagenesVo",TDbfDataset():Create())
Return
Aquí inicio los datasources/datasets, pero aun están "en blanco".
Después, tengo otro PRG aparte, para las inicializaciones de los
datasets cuya parte del código es:
#include "Xailer.ch"
FUNCTION InicializaDataSource
WITH OBJECT AppData:oDataSource
:cConnect:=".DBF"
END WITH
WITH OBJECT AppData:oDataSourceImgDni
:cConnect:=".IMGDNI"
END WITH
WITH OBJECT AppData:oDataSourceImgVo
:cConnect:=".IMGVO"
END WITH
RETURN NIL
FUNCTION InicializaDatasetClientes
WITH OBJECT AppData:oDatasetClientes
IF(:lOpen == .T.)
:lOpen:= .F.
END IF
:cName:="BD.DBF"
:oDataSource:=AppData:oDataSource
IF (FILE("BD.CDX"))
FERASE("BD.CDX")
END IF
IF (:lOpen := .T.)
:Pack()
INDEX ON _FIELD->DNICIF TAG iBdDniCif UNIQUE FOR !DELETED()
INDEX ON _FIELD->APELNOM TAG iBdApelnom UNIQUE FOR !DELETED()
ELSE
MSGINFO("Error abriendo base de datos")
END IF
END WITH
RETURN NIL
Ya después en cada OnInitialize de los formularios, solo hay que llamar
a la funciónes que previamente hemos creado para iniciar los datasets.
METHOD FormInitialize( oSender ) CLASS FrmClientes
InicializaDatasetClientes()
RETURN Nil
Espero que te sirva, un saludo.
-
- Mensajes: 190
- Registrado: Mar Ago 19, 2008 12:38 am
Un solo oDataSource para todo el proyecto...
Angel, agradezco tu ayuda estoy haciendo pruebas.
Saludos,
"íngel Fernández" <angel@agelso.com> escribió en el mensaje de noticias
news:[email=48c8c3db@ozsrv2.ozlan.local...]48c8c3db@ozsrv2.ozlan.local...[/email]
> Saludos, yo lo hago asi. En AppData, creo todos los datasources y datasets
> que voy a utilizar en el proyecto, de esta manera.
>
> Esto es un procedure del primer modulo ejecutable de mi aplicación.
> ------------------------------------------------------------ -------
>
> Procedure VariablesPublicas()
> AppData:AddData("oDataSource",TCdxDatasource():Create())
> AppData:AddData("oDataSourceImgVo",TCdxDatasource():Create())
> AppData:AddData("oDataSourceImgDni",TCdxDatasource():Create())
> AppData:AddData("oDataSetClientes",TDbfDataset():Create())
> AppData:AddData("oDataSetHistorico",TDbfDataset():Create())
> AppData:AddData("oDataSetVo",TDbfDataset():Create())
> AppData:AddData("oDataSetGastos",TDbfDataset():Create())
> AppData:AddData("oDataSetImagenes",TDbfDataset():Create())
> AppData:AddData("oDataSetImagenesVo",TDbfDataset():Create())
> Return
>
> Aquí inicio los datasources/datasets, pero aun están "en blanco".
>
> Después, tengo otro PRG aparte, para las inicializaciones de los datasets
> cuya parte del código es:
>
> #include "Xailer.ch"
> FUNCTION InicializaDataSource
> WITH OBJECT AppData:oDataSource
> :cConnect:=".DBF"
> END WITH
>
> WITH OBJECT AppData:oDataSourceImgDni
> :cConnect:=".IMGDNI"
> END WITH
>
> WITH OBJECT AppData:oDataSourceImgVo
> :cConnect:=".IMGVO"
> END WITH
>
> RETURN NIL
>
> FUNCTION InicializaDatasetClientes
> WITH OBJECT AppData:oDatasetClientes
> IF(:lOpen == .T.)
> :lOpen:= .F.
> END IF
>
> :cName:="BD.DBF"
> :oDataSource:=AppData:oDataSource
>
> IF (FILE("BD.CDX"))
> FERASE("BD.CDX")
> END IF
>
> IF (:lOpen := .T.)
> :Pack()
> INDEX ON _FIELD->DNICIF TAG iBdDniCif UNIQUE FOR !DELETED()
> INDEX ON _FIELD->APELNOM TAG iBdApelnom UNIQUE FOR !DELETED()
> ELSE
> MSGINFO("Error abriendo base de datos")
> END IF
> END WITH
> RETURN NIL
>
> Ya después en cada OnInitialize de los formularios, solo hay que llamar a
> la funciónes que previamente hemos creado para iniciar los datasets.
>
> METHOD FormInitialize( oSender ) CLASS FrmClientes
> InicializaDatasetClientes()
> RETURN Nil
>
> Espero que te sirva, un saludo.
>
Saludos,
"íngel Fernández" <angel@agelso.com> escribió en el mensaje de noticias
news:[email=48c8c3db@ozsrv2.ozlan.local...]48c8c3db@ozsrv2.ozlan.local...[/email]
> Saludos, yo lo hago asi. En AppData, creo todos los datasources y datasets
> que voy a utilizar en el proyecto, de esta manera.
>
> Esto es un procedure del primer modulo ejecutable de mi aplicación.
> ------------------------------------------------------------ -------
>
> Procedure VariablesPublicas()
> AppData:AddData("oDataSource",TCdxDatasource():Create())
> AppData:AddData("oDataSourceImgVo",TCdxDatasource():Create())
> AppData:AddData("oDataSourceImgDni",TCdxDatasource():Create())
> AppData:AddData("oDataSetClientes",TDbfDataset():Create())
> AppData:AddData("oDataSetHistorico",TDbfDataset():Create())
> AppData:AddData("oDataSetVo",TDbfDataset():Create())
> AppData:AddData("oDataSetGastos",TDbfDataset():Create())
> AppData:AddData("oDataSetImagenes",TDbfDataset():Create())
> AppData:AddData("oDataSetImagenesVo",TDbfDataset():Create())
> Return
>
> Aquí inicio los datasources/datasets, pero aun están "en blanco".
>
> Después, tengo otro PRG aparte, para las inicializaciones de los datasets
> cuya parte del código es:
>
> #include "Xailer.ch"
> FUNCTION InicializaDataSource
> WITH OBJECT AppData:oDataSource
> :cConnect:=".DBF"
> END WITH
>
> WITH OBJECT AppData:oDataSourceImgDni
> :cConnect:=".IMGDNI"
> END WITH
>
> WITH OBJECT AppData:oDataSourceImgVo
> :cConnect:=".IMGVO"
> END WITH
>
> RETURN NIL
>
> FUNCTION InicializaDatasetClientes
> WITH OBJECT AppData:oDatasetClientes
> IF(:lOpen == .T.)
> :lOpen:= .F.
> END IF
>
> :cName:="BD.DBF"
> :oDataSource:=AppData:oDataSource
>
> IF (FILE("BD.CDX"))
> FERASE("BD.CDX")
> END IF
>
> IF (:lOpen := .T.)
> :Pack()
> INDEX ON _FIELD->DNICIF TAG iBdDniCif UNIQUE FOR !DELETED()
> INDEX ON _FIELD->APELNOM TAG iBdApelnom UNIQUE FOR !DELETED()
> ELSE
> MSGINFO("Error abriendo base de datos")
> END IF
> END WITH
> RETURN NIL
>
> Ya después en cada OnInitialize de los formularios, solo hay que llamar a
> la funciónes que previamente hemos creado para iniciar los datasets.
>
> METHOD FormInitialize( oSender ) CLASS FrmClientes
> InicializaDatasetClientes()
> RETURN Nil
>
> Espero que te sirva, un saludo.
>