Página 1 de 1

AdoDatasource y cadena conexi

Publicado: Mié Sep 16, 2009 11:52 am
por jose.luis
Hola,
Tengo este código:
WITH OBJECT oConn := TAdoDataSource():New()
:lDisplayErrors := .f.
:cConnect := ::cCadenaConexion
:nMode := adModeRead
:lConnected := .T.
:Create()
END
Que utilizo para comprobar una cadena conexión.
Parece ser que, aunque lDisplayErrors está establecido a .F. Xailer se
empeña en que intente colocar una clave correcta.
Yo no quiero eso y no se como 'evitarlo'.
¿Como?
Saludos y gracias,
José KLuis Capel
PD: en la imagen se ve lo que NO quiero que se muestre.


Attached files

AdoDatasource y cadena conexi

Publicado: Mié Sep 16, 2009 1:32 pm
por miguel
Hola.
Yo también me he peleado con este tema porque hay ocasiones que no interesa
que se vea cierta información de la conexión. Lo deje por imposible. Siempre
he lamentado mis pocos conocimientos de ADO / SQL Server, pero ya veo que
los grandes maestros también padecen algunas de mis carencias, esto me
consuela.
Jose Luis te agradezco que hayas sacado este tema. Alguien habrá que no
ilumine, tratándose de ti; seguro.
Saludos. Miguel A. Torrellas
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje de
noticias:[email=4ab0b549@svctag-j7w3v3j....]4ab0b549@svctag-j7w3v3j....[/email]
> Hola,
>
> Tengo este código:
>
> WITH OBJECT oConn := TAdoDataSource():New()
> :lDisplayErrors := .f.
> :cConnect := ::cCadenaConexion
> :nMode := adModeRead
> :lConnected := .T.
> :Create()
> END
>
>
> Que utilizo para comprobar una cadena conexión.
>
> Parece ser que, aunque lDisplayErrors está establecido a .F. Xailer se
> empeña en que intente colocar una clave correcta.
>
> Yo no quiero eso y no se como 'evitarlo'.
>
> ¿Como?
>
> Saludos y gracias,
> José KLuis Capel
> PD: en la imagen se ve lo que NO quiero que se muestre.
>
>
>

AdoDatasource y cadena conexi

Publicado: Mié Sep 16, 2009 2:06 pm
por jose.luis
Miguel,
> Yo también me he peleado con este tema porque hay ocasiones que no
> interesa que se vea cierta información de la conexión. Lo deje por
> imposible. Siempre he lamentado mis pocos conocimientos de ADO / SQL
> Server, pero ya veo que los grandes maestros también padecen algunas de
> mis carencias, esto me consuela.
Bueno... el problema está en el datasource de ADO de Xailer...
>
> Jose Luis te agradezco que hayas sacado este tema. Alguien habrá que no
> ilumine, tratándose de ti; seguro.
Supongo...
Yo propondría la siguiente solución:
METHOD Connect( cConnect ) CLASS XAdoDataSource
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
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 <<< quitar esta linea
::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.
Creo que comentando esa linea (la del properties) puede que sea la solución.
Falta a ver que dicen en Xailer.
Saludos,
JOsé luis Capel

AdoDatasource y cadena conexi

Publicado: Jue Sep 17, 2009 12:51 pm
por ignacio
Probar con:
oAdoDataSource:oConnection:Properties("PROMPT") := adPromptNever // 4
Saludos
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:[email=4ab0d4a6@svctag-j7w3v3j....]4ab0d4a6@svctag-j7w3v3j....[/email]
> Miguel,
>
>> Yo también me he peleado con este tema porque hay ocasiones que no
>> interesa que se vea cierta información de la conexión. Lo deje por
>> imposible. Siempre he lamentado mis pocos conocimientos de ADO / SQL
>> Server, pero ya veo que los grandes maestros también padecen algunas de
>> mis carencias, esto me consuela.
>
> Bueno... el problema está en el datasource de ADO de Xailer...
>>
>> Jose Luis te agradezco que hayas sacado este tema. Alguien habrá que no
>> ilumine, tratándose de ti; seguro.
>
> Supongo...
>
> Yo propondría la siguiente solución:
>
> METHOD Connect( cConnect ) CLASS XAdoDataSource
>
> 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
> 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 <<< quitar esta linea
> ::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.
>
>
> Creo que comentando esa linea (la del properties) puede que sea la
> solución.
>
> Falta a ver que dicen en Xailer.
>
> Saludos,
> JOsé luis Capel
>
>
>
>

AdoDatasource y cadena conexi

Publicado: Jue Sep 17, 2009 3:30 pm
por jose.luis
Ignacio,
Gracias por responder.
¿Harás este comportamiento parametrizable por el usuario?
Saludos,
José Luis Capel
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
mensaje news:[email=4ab214a1@svctag-j7w3v3j....]4ab214a1@svctag-j7w3v3j....[/email]
> Probar con:
>
> oAdoDataSource:oConnection:Properties("PROMPT") := adPromptNever // 4
>
> Saludos
>
> --
> Ignacio Ortiz de Zúñiga
> Xailer support / Soporte de Xailer
> http://www.xailer.com
> http://www.xailer.info
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
> news:[email=4ab0d4a6@svctag-j7w3v3j....]4ab0d4a6@svctag-j7w3v3j....[/email]
>> Miguel,
>>
>>> Yo también me he peleado con este tema porque hay ocasiones que no
>>> interesa que se vea cierta información de la conexión. Lo deje por
>>> imposible. Siempre he lamentado mis pocos conocimientos de ADO / SQL
>>> Server, pero ya veo que los grandes maestros también padecen algunas de
>>> mis carencias, esto me consuela.
>>
>> Bueno... el problema está en el datasource de ADO de Xailer...
>>>
>>> Jose Luis te agradezco que hayas sacado este tema. Alguien habrá que no
>>> ilumine, tratándose de ti; seguro.
>>
>> Supongo...
>>
>> Yo propondría la siguiente solución:
>>
>> METHOD Connect( cConnect ) CLASS XAdoDataSource
>>
>> 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
>> 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 <<< quitar esta linea
>> ::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.
>>
>>
>> Creo que comentando esa linea (la del properties) puede que sea la
>> solución.
>>
>> Falta a ver que dicen en Xailer.
>>
>> Saludos,
>> JOsé luis Capel
>>
>>
>>
>>
>
>

AdoDatasource y cadena conexi

Publicado: Jue Sep 17, 2009 4:22 pm
por ignacio
José Luis,
Me temo que no se puede. Las 'properties' del objeto oConnection son
distintas en cada 'data provider' y esa propiedad 'Prompt' no tiene porque
existir con otros proveedores de datos.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje
news:4ab23a1e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ignacio,
>
> Gracias por responder.
>
> ¿Harás este comportamiento parametrizable por el usuario?
>
> Saludos,
> José Luis Capel
>
> "Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
> mensaje news:[email=4ab214a1@svctag-j7w3v3j....]4ab214a1@svctag-j7w3v3j....[/email]
>> Probar con:
>>
>> oAdoDataSource:oConnection:Properties("PROMPT") := adPromptNever // 4
>>
>> Saludos
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> Xailer support / Soporte de Xailer
>> http://www.xailer.com
>> http://www.xailer.info
>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>> news:[email=4ab0d4a6@svctag-j7w3v3j....]4ab0d4a6@svctag-j7w3v3j....[/email]
>>> Miguel,
>>>
>>>> Yo también me he peleado con este tema porque hay ocasiones que no
>>>> interesa que se vea cierta información de la conexión. Lo deje por
>>>> imposible. Siempre he lamentado mis pocos conocimientos de ADO / SQL
>>>> Server, pero ya veo que los grandes maestros también padecen algunas de
>>>> mis carencias, esto me consuela.
>>>
>>> Bueno... el problema está en el datasource de ADO de Xailer...
>>>>
>>>> Jose Luis te agradezco que hayas sacado este tema. Alguien habrá que no
>>>> ilumine, tratándose de ti; seguro.
>>>
>>> Supongo...
>>>
>>> Yo propondría la siguiente solución:
>>>
>>> METHOD Connect( cConnect ) CLASS XAdoDataSource
>>>
>>> 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
>>> 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 <<< quitar esta linea
>>> ::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.
>>>
>>>
>>> Creo que comentando esa linea (la del properties) puede que sea la
>>> solución.
>>>
>>> Falta a ver que dicen en Xailer.
>>>
>>> Saludos,
>>> JOsé luis Capel
>>>
>>>
>>>
>>>
>>
>>
>
>
>

AdoDatasource y cadena conexi

Publicado: Jue Sep 17, 2009 5:39 pm
por jose.luis
Ignacio,
Gracias por tu respuesta.
>
> oAdoDataSource:oConnection:Properties("PROMPT") := adPromptNever // 4
>
No consigo que ese formulario no salga.
Este es mi código:
WITH OBJECT oAdoDS := TAdoDataSource():New( oForm )
:cConnect := ::cCadenaConexion
:nMode := adModeReadWrite
:oConnection:Properties("PROMPT") := adPromptNever // 4
:lConnected := .T.
:Create()
END
Y sigue saliendo el formulario.
¿Qué estoy haciendo mal?
Saludos y gracias,
José Luis Capel

AdoDatasource y cadena conexi

Publicado: Jue Sep 17, 2009 7:31 pm
por ignacio
José Luis,
He visto que ya estabamos usando la propiedad 'Prompt' (por lo que debe estar presente para todos los ADO providers) y he modificado la clase de la siguiente forma:
Nueva propiedad lPromptIfError:
PROPERTY lPromptIfError INIT .T.
Y el método Connect quedarí­a así­:
METHOD Connect( cConnect ) CLASS XAdoDataSource
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
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
IF ::lPromptIfError
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
ELSE
::NewADOError( "ADODB:oConnection:Open" )
RETURN .F.
ENDIF
END
::FlConnected := ::State() != adStateClosed
::FcConnect := ::oConnection:ConnectionString
::OnConnected()
RETURN .T.
Te importarí­a probarlo. Gracias.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje news:4ab25840$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ignacio,
>
> Gracias por tu respuesta.
>
>>
>> oAdoDataSource:oConnection:Properties("PROMPT") := adPromptNever // 4
>>
>
> No consigo que ese formulario no salga.
>
> Este es mi código:
>
> WITH OBJECT oAdoDS := TAdoDataSource():New( oForm )
> :cConnect := ::cCadenaConexion
> :nMode := adModeReadWrite
> :oConnection:Properties("PROMPT") := adPromptNever // 4
> :lConnected := .T.
> :Create()
> END
>
> Y sigue saliendo el formulario.
>
> ¿Qué estoy haciendo mal?
>
> Saludos y gracias,
> José Luis Capel
>
>
>
--

AdoDatasource y cadena conexi

Publicado: Jue Sep 17, 2009 7:59 pm
por jose.luis
Ignacio,
Eso es!!
Funciona 100x100.
Gracias!
José Luis Capel
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el mensaje news:[email=4ab2725b@svctag-j7w3v3j....]4ab2725b@svctag-j7w3v3j....[/email]
José Luis,
He visto que ya estabamos usando la propiedad 'Prompt' (por lo que debe estar presente para todos los ADO providers) y he modificado la clase de la siguiente forma:
Nueva propiedad lPromptIfError:
PROPERTY lPromptIfError INIT .T.
Y el método Connect quedarí­a así­:
METHOD Connect( cConnect ) CLASS XAdoDataSource
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
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
IF ::lPromptIfError
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
ELSE
::NewADOError( "ADODB:oConnection:Open" )
RETURN .F.
ENDIF
END
::FlConnected := ::State() != adStateClosed
::FcConnect := ::oConnection:ConnectionString
::OnConnected()
RETURN .T.
Te importarí­a probarlo. Gracias.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje news:4ab25840$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ignacio,
>
> Gracias por tu respuesta.
>
>>
>> oAdoDataSource:oConnection:Properties("PROMPT") := adPromptNever // 4
>>
>
> No consigo que ese formulario no salga.
>
> Este es mi código:
>
> WITH OBJECT oAdoDS := TAdoDataSource():New( oForm )
> :cConnect := ::cCadenaConexion
> :nMode := adModeReadWrite
> :oConnection:Properties("PROMPT") := adPromptNever // 4
> :lConnected := .T.
> :Create()
> END
>
> Y sigue saliendo el formulario.
>
> ¿Qué estoy haciendo mal?
>
> Saludos y gracias,
> José Luis Capel
>
>
>
--