Página 1 de 1

DefaultDatabase de Ado

Publicado: Dom Oct 25, 2009 1:01 pm
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.
--

DefaultDatabase de Ado

Publicado: Lun Oct 26, 2009 4:20 pm
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.
--

DefaultDatabase de Ado

Publicado: Mar Oct 27, 2009 10:20 am
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.
--