Pregunta sobre FW_OpenAdoConnection

Post Reply
User avatar
jose_murugosa
Posts: 1185
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Pregunta sobre FW_OpenAdoConnection

Post by jose_murugosa »

De acuerdo con la documentación, si la entiendo bien si yo quisiera abrir una conexión a una base Mysql, MSSql u Oracle, bastaría con escribir:

oCn2 := FW_OpenADOConnection( "MSSQL,192.168.120.206,Sarubbi,sa,Came0303", .t. )
xBrowse( oCn2 ) //para ver el objeto conexión

Pero cuando intento verr esta conexión recibo este error:

Time from start: 0 hours 0 mins 14 secs
Error occurred at: 05/10/2022, 10:09:54
Error description: (DOS Error -2147352567) WINOLE/1007 Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros. (0x800A0BB9): ADODB.Connection
Args:
[ 1] = C TLINKLIST

Stack Calls
===========
Called from: => TOLEAUTO:ISKINDOF( 0 )
Called from: .\source\function\XBROWSER.PRG => XBROWSE( 101 )
Called from: d:\xbase-proyectos\rendimiento-servicios\source\Cargocajas.prg => CARGOCAJAS( 31 )
Called from: d:\xbase-proyectos\rendimiento-servicios\source\Procesosws.prg => PROCESOSDEWS( 33 )
Called from: d:\xbase-proyectos\rendimiento-servicios\source\Main.prg => MAIN( 40 )

¿Qué puedo estar haciendo mal?

Gracias desde ya por vuestra ayuda.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
xmanuel
Posts: 768
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Been thanked: 5 times
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by xmanuel »

Hola José mira aquí la cadena de conexión apropiada:
https://www.connectionstrings.com/
______________________________________________________________________________
Sevilla - Andalucía
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by leandro »

A nosotros nos funciona de la siguiente manera:

Code: Select all | Expand


oCnEmp := FW_OpenAdoConnection( "Driver={MySQL ODBC 3.51 Driver};Server=127.0.0.1;Port=3306;User=root;Password=tucontrasema;" )
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Pregunta sobre FW_OpenAdoConnection

Post by horacio »

Hola, me parece que los parámetros deberían ser de esta manera

Code: Select all | Expand


oCn2 := FW_OpenADOConnection( { "MSSQL","192.168.120.206","Sarubbi","sa","Came0303" }, .t. )
 


Saludos
User avatar
jose_murugosa
Posts: 1185
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by jose_murugosa »

Gracias xManuel, Leandor y Horacio, he probado 2 modos de conexión sin éxito.
Adjunto el código del prg y la respuesta según la sintaxis utilizada.

Código:

FUNCTION Main()
LOCAL oCn2, oRs2, cSql, oErr

oCn2 := FW_OpenADOConnection( { "MSSQL", "192.168.120.206", "SarubbiAlba", "sa", "Came0303" }, .t., oErr )
xBrowse( oCn2 )
cSql:= "select kxp.corte, k.descripcion, p.id, p.descripcion from P0017 p inner join P0031 kxp on kxp.producto=p.codigo inner join P0029 k on k.codigo=kxp.corte"
oRs2:=oCn2:RowSet( cSql )
xBrowse( oRs2 )

RETURN nil


Error:


Application
===========
Path and name: D:\XBASE-PROYECTOS\RENDIMIENTO-SERVICIOS\RendServ.exe (32 bits)
Size: 4,834,816 bytes
Compiler version: Harbour 3.2.0dev (r2008190002)
FiveWin version: FWH 22.03
C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 10/06/22, 13:28:04
Error description: (DOS Error -2147352567) WINOLE/1007 Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros. (0x800A0BB9): ADODB.Connection
Args:
[ 1] = C TLINKLIST

Stack Calls
===========
Called from: => TOLEAUTO:ISKINDOF( 0 )
Called from: .\source\function\XBROWSER.PRG => XBROWSE( 101 )
Called from: D:\XBASE-PROYECTOS\RENDIMIENTO-SERVICIOS\SOURCE\conexion-ado.prg => MAIN( 8 )

System
======
CPU type: Intel(R) Core(TM) i5-6400T CPU @ 2.20GHz 2208 Mhz
Hardware memory: 12063 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Windows total applications running: 5
1 ,
2 , C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_a8625c
3 Ajustes, C:\Windows\System32\1033\MSOLEDBSQLR.RLL
4 GDI+ Window (RendServ.exe), C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.2006_none_d94bc80de10970
5 Licencia de Deep Freeze, D:\XBASE-PROYECTOS\RENDIMIENTO-SERVICIOS\RendServ.exe

Variables in use
================
Procedure Type Value
==========================
TOLEAUTO:ISKINDOF
Param 1: O Class: ERROR
XBROWSE
Param 1: C "TLINKLIST"
Local 1: U
Local 2: U
MAIN
Param 1: O Class: TOLEAUTO
Local 1: C "TOLEAUTO"
Local 2: L .F.
Local 3: U
Local 4: U
Local 5: U
Local 6: L .T.
Local 7: U
Local 8: U
Local 9: U
Local 10: L .F.
Local 11: U
Local 12: U
Local 13: U
Local 14: U
Local 15: O Class: TFONT
Local 16: O Class: TFONT
Local 17: U
Local 18: U
Local 19: N 1020.00
Local 20: N 384.00
Local 21: U
Local 22: U
Local 23: U
Local 24: U
Local 25: U
Local 26: L .T.
Local 27: U
Local 28: N 1
Local 29: N 1
Local 30: L .F.
Local 31: A Len: 0
Local 32: L .T.

----------------------------------------------------------------------------------------------------

si cambio en el codigo a:

oCn2 := FW_OpenADOConnection( { "MSSQL, 192.168.120.206, SarubbiAlba, sa, Came0303" }, .t., oErr )

El error da:

Application
===========
Path and name: D:\XBASE-PROYECTOS\RENDIMIENTO-SERVICIOS\RendServ.exe (32 bits)
Size: 4,834,816 bytes
Compiler version: Harbour 3.2.0dev (r2008190002)
FiveWin version: FWH 22.03
C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 4 secs
Error occurred at: 10/06/22, 13:31:35
Error description: Error BASE/1004 No exported method: ROWSET
Args:
[ 1] = U
[ 2] = C select kxp.corte, k.descripcion, p.id, p.descripcion from P0017 p inner join P0031 kxp on kxp.producto=p.codigo inner join P0029 k on k.codigo=kxp.corte

Stack Calls
===========
Called from: => ROWSET( 0 )
Called from: D:\XBASE-PROYECTOS\RENDIMIENTO-SERVICIOS\SOURCE\conexion-ado.prg => MAIN( 10 )

System
======
CPU type: Intel(R) Core(TM) i5-6400T CPU @ 2.20GHz 2208 Mhz
Hardware memory: 12063 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Windows total applications running: 5
1 ,
2 , C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_a8625c
3 Ajustes, C:\Program Files (x86)\Common Files\System\Ole DB\MSDASQLR.DLL
4 GDI+ Window (RendServ.exe), C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.2006_none_d94bc80de10970
5 Licencia de Deep Freeze, D:\XBASE-PROYECTOS\RENDIMIENTO-SERVICIOS\RendServ.exe

Variables in use
================
Procedure Type Value
==========================
ROWSET
Param 1: O Class: ERROR
MAIN
Param 1: C "select kxp.corte, k.descripcion, p.id, p.descripcion from P0017 p inner join P0031 kxp on kxp.producto=p.codigo inner join P0029 k on k.codigo=kxp.corte"
Local 1: U
Local 2: U

----------------------------------------------------------------------------------------------------


Agradezco desde ya vuestra ayuda
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Pregunta sobre FW_OpenAdoConnection

Post by horacio »

Hola José, Verificaste si los parámetros que le pasas a la función son los correctos? El modelo que te mandé es el que me sugirió Mr Rao. Si te fijas en adofuncs.prg que se encuentra en \source\function allí podés ver como funciona Fw_OpenAdoConnection. Yo lo uso tal cual el modelo que te mandé.

Code: Select all | Expand


Fw_OpenAdoConnection(  { ""MSSQL", "Host", "BBDD", "user", "passw" }, lOnOff )

Saludos
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by nageswaragunupudi »

jose_murugosa wrote:De acuerdo con la documentación, si la entiendo bien si yo quisiera abrir una conexión a una base Mysql, MSSql u Oracle, bastaría con escribir:

oCn2 := FW_OpenADOConnection( "MSSQL,192.168.120.206,Sarubbi,sa,Came0303", .t. )
xBrowse( oCn2 ) //para ver el objeto conexión

Pero cuando intento verr esta conexión recibo este error:


Here, the problem is not with ADO connection.
The real problem is with the function XBrowse(...) (or XBROWSER command).

We sincerely regret this inconvenience.

Due to a bug we introduced inadvertently in the recent versions, XBrowse( <anyOleObject> ), including RecordSet objects is failing with the above runtime error.

We suggest you to fix the bug.
Open fwh\source\function\xbrowser.prg
You will find this code near line no. 101 depending on your FWH version.

Code: Select all | Expand

  if ValType( uData ) == "H" .or. ( ValType( uData ) == "O" .and. uData:IsKindOf( "TLINKLIST" ) )
      lAutoFit    := .t.
   endif
 


Either you comment out these 3 lines of code entirely or replace them with the following lines of code.

Code: Select all | Expand

  if ValType( uData ) == "H" .or. ( ValType( uData ) == "O" .and. ;
      __ObjHasMethod( uData, "ISKINDOF" ) .and. uData:IsKindOf( "TLINKLIST" ) )
      lAutoFit    := .t.
   endif
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by nageswaragunupudi »

Code: Select all | Expand

oCn := FW_OpenADOConnection( "MSSQL,192.168.120.206,Sarubbi,sa,Came0303", .t. )
oCn := FW_OpenADOConnection( { "MSSQL","192.168.120.206","Sarubbi","sa","Came0303" }, .t. )
oCn := FW_OpenADOConnection( cConnectionString, .t. )
 


All the above are correct.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by nageswaragunupudi »

cSql:= "select kxp.corte, k.descripcion, p.id, p.descripcion from P0017 p inner join P0031 kxp on kxp.producto=p.codigo inner join P0029 k on k.codigo=kxp.corte"
oRs2:=oCn2:RowSet( cSql )
xBrowse( oRs2 )


ADO connection object has no method RowSet.

Use:

Code: Select all | Expand

oRs := FW_OpenRecordSet( oCn, cSql ) // -> Ado RecordSet object
Regards

G. N. Rao.
Hyderabad, India
User avatar
jose_murugosa
Posts: 1185
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by jose_murugosa »

Mr. Rao

Thanks a lot for your help, I'm starting with ado connections and your feedback is really appreciated.

Muchas gracias por su ayuda, estoy comenzando con las conexiones ado y su devolución es muy apreciada.

Thanks a lot,
Muchas gracias.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Pregunta sobre FW_OpenAdoConnection

Post by nageswaragunupudi »

jose_murugosa wrote:Mr. Rao

Thanks a lot for your help, I'm starting with ado connections and your feedback is really appreciated.

Muchas gracias por su ayuda, estoy comenzando con las conexiones ado y su devolución es muy apreciada.

Thanks a lot,
Muchas gracias.

We assure our full support.
Regards

G. N. Rao.
Hyderabad, India
Post Reply