Pregunta sobre FW_OpenAdoConnection

Pregunta sobre FW_OpenAdoConnection

Postby jose_murugosa » Wed Oct 05, 2022 1:11 pm

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
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1144
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Pregunta sobre FW_OpenAdoConnection

Postby xmanuel » Thu Oct 06, 2022 5:55 am

Hola José mira aquí la cadena de conexión apropiada:
https://www.connectionstrings.com/
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 756
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: Pregunta sobre FW_OpenAdoConnection

Postby leandro » Thu Oct 06, 2022 11:36 am

A nosotros nos funciona de la siguiente manera:

Code: Select all  Expand view

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1481
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Pregunta sobre FW_OpenAdoConnection

Postby horacio » Thu Oct 06, 2022 2:26 pm

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

Code: Select all  Expand view

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


Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Pregunta sobre FW_OpenAdoConnection

Postby jose_murugosa » Thu Oct 06, 2022 4:35 pm

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
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1144
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Pregunta sobre FW_OpenAdoConnection

Postby horacio » Thu Oct 06, 2022 5:22 pm

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 view

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

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Pregunta sobre FW_OpenAdoConnection

Postby nageswaragunupudi » Fri Oct 07, 2022 4:26 am

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 view
  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 view
  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: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Pregunta sobre FW_OpenAdoConnection

Postby nageswaragunupudi » Fri Oct 07, 2022 4:39 am

Code: Select all  Expand view
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: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Pregunta sobre FW_OpenAdoConnection

Postby nageswaragunupudi » Fri Oct 07, 2022 5:01 am

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 view
oRs := FW_OpenRecordSet( oCn, cSql ) // -> Ado RecordSet object
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Pregunta sobre FW_OpenAdoConnection

Postby jose_murugosa » Fri Oct 07, 2022 12:29 pm

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
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1144
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Pregunta sobre FW_OpenAdoConnection

Postby nageswaragunupudi » Fri Oct 07, 2022 12:46 pm

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
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 85 guests