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.

DefaultDatabase de Ado

Foro público de Xailer en español
Responder
CapelSoft
Mensajes: 137
Registrado: Vie Jul 29, 2005 8:49 am
Ubicación: Valencia - España
Contactar:

DefaultDatabase de Ado

Mensaje por CapelSoft »

Hola,
Creo que serí­a interesante añadir una propiedad a AdoDatasource que puede llamarse cDefaultDatabase para que, en el momento de la creación, podamos indicar el nombre de la base de datos que se quiere abrir.
A veces la cadena de conexión no contiene ese valor.
Saludos,
José Luis Capel
Por ejemplo, la case podrí­a quedar así­
CLASS tAdoDatasource FROM xAdoDatasource
PROPERTY cDefaultDatabase
METHOD Connect()
ENCLASS
METHOD Connect( cConnect ) CLASS tAdoDataSource
LOCAL oError, oDataLink
UPDATE ::cConnect TO cConnect
::DisConnect()
::OnConnect( ::oConnection )
// Establecemos parametros conexion
TRY
WITH OBJECT ::oConnection
:Attributes := ::nAttributes
:CommandTimeOut := ::nTimeOut
:ConnectionString := ::cConnect
:ConnectionTimeOut := ::nConnTimeOut
:CursorLocation := ::nCursorLocation
:IsolationLevel := ::nIsolationLevel
:Mode := ::nMode
IF !EMPTY(::cDefaultDatabase)
:DefaultDatabase := ::cDefaultDatabase
ENDIF
END WITH
CATCH oError
::NewADOError( "ADODB:oConnection:Params" )
RETURN .F.
END
// Intentamos conectar
TRY
::oConnection:Open( ::cConnect, ::cUser, ::cPassword, ;
IIf( ::lConnectAsync, adAsyncConnect, adConnectUnspecified ) )
CATCH oError
TRY
IF Empty( ::cConnect )
oDataLink := TOleAuto():New( "DataLinks" )
oDataLink:PromptEdit( ::oConnection )
::FcConnect := ::oConnection:ConnectionString
oDataLink := NIL
ENDIF
::Properties( "Prompt" ):Value := 2
::oConnection:Open( ::cConnect, ::cUser, ::cPassword, ;
IIf( ::lConnectAsync, adAsyncConnect, adConnectUnspecified ) )
CATCH oError
::NewADOError( "ADODB:oConnection:Open" )
RETURN .F.
END
END
::FlConnected := ::State() != adStateClosed
::FcConnect := ::oConnection:ConnectionString
::OnConnected()
RETURN .T.
--
--
José Luis Capel
http://www.CapelBlog.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9460
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

DefaultDatabase de Ado

Mensaje por ignacio »

José Luis,
Echale un vistazo al nuevo método TAdoDataSource:ConnectTag.
Espero que te guste ;-)
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - V" <capelsoft@terra.es> escribió en el mensaje news:[email=4ae43e16@svctag-j7w3v3j....]4ae43e16@svctag-j7w3v3j....[/email]
Hola,
Creo que serí­a interesante añadir una propiedad a AdoDatasource que puede llamarse cDefaultDatabase para que, en el momento de la creación, podamos indicar el nombre de la base de datos que se quiere abrir.
A veces la cadena de conexión no contiene ese valor.
Saludos,
José Luis Capel
Por ejemplo, la case podrí­a quedar así­
CLASS tAdoDatasource FROM xAdoDatasource
PROPERTY cDefaultDatabase
METHOD Connect()
ENCLASS
METHOD Connect( cConnect ) CLASS tAdoDataSource
LOCAL oError, oDataLink
UPDATE ::cConnect TO cConnect
::DisConnect()
::OnConnect( ::oConnection )
// Establecemos parametros conexion
TRY
WITH OBJECT ::oConnection
:Attributes := ::nAttributes
:CommandTimeOut := ::nTimeOut
:ConnectionString := ::cConnect
:ConnectionTimeOut := ::nConnTimeOut
:CursorLocation := ::nCursorLocation
:IsolationLevel := ::nIsolationLevel
:Mode := ::nMode
IF !EMPTY(::cDefaultDatabase)
:DefaultDatabase := ::cDefaultDatabase
ENDIF
END WITH
CATCH oError
::NewADOError( "ADODB:oConnection:Params" )
RETURN .F.
END
// Intentamos conectar
TRY
::oConnection:Open( ::cConnect, ::cUser, ::cPassword, ;
IIf( ::lConnectAsync, adAsyncConnect, adConnectUnspecified ) )
CATCH oError
TRY
IF Empty( ::cConnect )
oDataLink := TOleAuto():New( "DataLinks" )
oDataLink:PromptEdit( ::oConnection )
::FcConnect := ::oConnection:ConnectionString
oDataLink := NIL
ENDIF
::Properties( "Prompt" ):Value := 2
::oConnection:Open( ::cConnect, ::cUser, ::cPassword, ;
IIf( ::lConnectAsync, adAsyncConnect, adConnectUnspecified ) )
CATCH oError
::NewADOError( "ADODB:oConnection:Open" )
RETURN .F.
END
END
::FlConnected := ::State() != adStateClosed
::FcConnect := ::oConnection:ConnectionString
::OnConnected()
RETURN .T.
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

DefaultDatabase de Ado

Mensaje por jose.luis »

Ignacio,
Me gusta :-))
Saludos,
José Luis Capel
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el mensaje news:4ae5be1f$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
José Luis,
Echale un vistazo al nuevo método TAdoDataSource:ConnectTag.
Espero que te guste ;-)
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - V" <capelsoft@terra.es> escribió en el mensaje news:[email=4ae43e16@svctag-j7w3v3j....]4ae43e16@svctag-j7w3v3j....[/email]
Hola,
Creo que serí­a interesante añadir una propiedad a AdoDatasource que puede llamarse cDefaultDatabase para que, en el momento de la creación, podamos indicar el nombre de la base de datos que se quiere abrir.
A veces la cadena de conexión no contiene ese valor.
Saludos,
José Luis Capel
Por ejemplo, la case podrí­a quedar así­
CLASS tAdoDatasource FROM xAdoDatasource
PROPERTY cDefaultDatabase
METHOD Connect()
ENCLASS
METHOD Connect( cConnect ) CLASS tAdoDataSource
LOCAL oError, oDataLink
UPDATE ::cConnect TO cConnect
::DisConnect()
::OnConnect( ::oConnection )
// Establecemos parametros conexion
TRY
WITH OBJECT ::oConnection
:Attributes := ::nAttributes
:CommandTimeOut := ::nTimeOut
:ConnectionString := ::cConnect
:ConnectionTimeOut := ::nConnTimeOut
:CursorLocation := ::nCursorLocation
:IsolationLevel := ::nIsolationLevel
:Mode := ::nMode
IF !EMPTY(::cDefaultDatabase)
:DefaultDatabase := ::cDefaultDatabase
ENDIF
END WITH
CATCH oError
::NewADOError( "ADODB:oConnection:Params" )
RETURN .F.
END
// Intentamos conectar
TRY
::oConnection:Open( ::cConnect, ::cUser, ::cPassword, ;
IIf( ::lConnectAsync, adAsyncConnect, adConnectUnspecified ) )
CATCH oError
TRY
IF Empty( ::cConnect )
oDataLink := TOleAuto():New( "DataLinks" )
oDataLink:PromptEdit( ::oConnection )
::FcConnect := ::oConnection:ConnectionString
oDataLink := NIL
ENDIF
::Properties( "Prompt" ):Value := 2
::oConnection:Open( ::cConnect, ::cUser, ::cPassword, ;
IIf( ::lConnectAsync, adAsyncConnect, adConnectUnspecified ) )
CATCH oError
::NewADOError( "ADODB:oConnection:Open" )
RETURN .F.
END
END
::FlConnected := ::State() != adStateClosed
::FcConnect := ::oConnection:ConnectionString
::OnConnected()
RETURN .T.
--
Responder