Nuevo AdoRDD (libre)
-
- Posts: 551
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Been thanked: 2 times
- Contact:
-
- Posts: 551
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Been thanked: 2 times
- Contact:
Una primera consulta, ADO necesita que se instale primero el conector ODBC de la Base de Datos que vamos a usar, es correcto ???
Si es asi, la libreria dara algun mensaje de alerta/error cuando no se encuentre instalado el Conector ODBC ???
Gracias
Si es asi, la libreria dara algun mensaje de alerta/error cuando no se encuentre instalado el Conector ODBC ???
Gracias
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrique.ç:
Depende del tipo de servidor al que te quieras conectar, los que proveen de un "ADO PROVIDER" nativo no necesitan que instales el ODBC, por ejemplo ADS, SQL Server y Access tienen provider nativo, solo tienes que instalar el provider en tu cliente y listo.
MySQL en cambio no tiene provider nativo y la conexion tiene que hacerse por ODBC, en este caso tienes que instalar el controlador MyODBC 3.51 y trabajar ado atravez de ODBC.
Depende del tipo de servidor al que te quieras conectar, los que proveen de un "ADO PROVIDER" nativo no necesitan que instales el ODBC, por ejemplo ADS, SQL Server y Access tienen provider nativo, solo tienes que instalar el provider en tu cliente y listo.
MySQL en cambio no tiene provider nativo y la conexion tiene que hacerse por ODBC, en este caso tienes que instalar el controlador MyODBC 3.51 y trabajar ado atravez de ODBC.
Saludos
R.F.
R.F.
Para los que estan usando xHarbour y tengan el siguiente problema :
Se resuelve agregando la librería usrrdd en su ambiente de compilación.
Además si estan usando Microsoft SQL Server 2005 , y desean usar el rdd , deben hacer una pequeña modificación al programa adordd.prg
Además de que también deben de modificar la siguiente linea de Adordd.ch
Y la forma de llamar una tabla seria la siguiente :
Y finalmente cómo dice Rene, SQL no necesita de ODBC.
Fernando y Antonio...¡¡ felicitaciones por este aporte !!
Por cierto.... las conexiones remotas con SQL y MySQL funcionan perfectamente.
Code: Select all | Expand
Error: Unresolved external '_HB_FUN_USRRDD_RDDDATA' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_AREADATA' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_ID' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_ERROR' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_SETFIELDEXTENT' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_ADDFIELD' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_OPEN' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_CLOSE' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_GETFUNCTABLE' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Se resuelve agregando la librería usrrdd en su ambiente de compilación.
Además si estan usando Microsoft SQL Server 2005 , y desean usar el rdd , deben hacer una pequeña modificación al programa adordd.prg
Code: Select all | Expand
case s_cEngine == "SQL"
oAdo:CursorType = adOpenStatic
oAdo:CursorLocation = adUseClient
oAdo:LockType = adLockPessimistic
oAdo:Open( "SELECT * FROM " + s_cTableName,;
"Provider=SQLOLEDB;" + ;
"server=" + s_cServer + ;
";database=" + aOpenInfo[ UR_OI_NAME ] + ;
";uid=" + s_cUserName + ;
";pwd=" + s_cPassword, adOpenKeyset, adLockOptimistic )
Además de que también deben de modificar la siguiente linea de Adordd.ch
Code: Select all | Expand
[ <dbEngine: ACCESS, MYSQL, ORACLE, INFORMIX, SQL> ];
Y la forma de llamar una tabla seria la siguiente :
Code: Select all | Expand
USE northwind VIA "ADORDD" TABLE "Customer" SQL ;
FROM "ServerSql2005" USER "sa" PASSWORD "super"
Browse()
Y finalmente cómo dice Rene, SQL no necesita de ODBC.
Fernando y Antonio...¡¡ felicitaciones por este aporte !!
Por cierto.... las conexiones remotas con SQL y MySQL funcionan perfectamente.
Vikthor
Aquí les dejo una pequeña modificación al rdd.
Realmente es algo muy sencillo pero desde mi punto de vista demasiado practico.
El cambio consiste en agregar la claúsula QUERY para de esta forma poder crear consultas más dínamicas.
En el adordd.ch
y en adordd.prg agregar la variable STATIC s_Query y este trozo de código
¡¡¡ y listo el pollo !!!!
Realmente es algo muy sencillo pero desde mi punto de vista demasiado practico.
Code: Select all | Expand
USE northwind VIA "ADORDD" TABLE "Customer" SQL ;
FROM "ServerSql2005" USER "sa" PASSWORD "Super" QUERY "Select Contact,Phone FROM "
Browse()
USE
El cambio consiste en agregar la claúsula QUERY para de esta forma poder crear consultas más dínamicas.
En el adordd.ch
Code: Select all | Expand
#command USE <(db)> [VIA <rdd>] [ALIAS <a>] [<nw: NEW>] ;
[<ex: EXCLUSIVE>] [<sh: SHARED>] [<ro: READONLY>] ;
[CODEPAGE <cp>] [INDEX <(index1)> [, <(indexN)>]] ;
[ TABLE <cTable> ] ;
[ <dbEngine: ACCESS, MYSQL, ORACLE, INFORMIX, SQL> ];
[ FROM <cServer> ] ;
[ QUERY <cQuery> ] ;
[ USER <cUser> PASSWORD <cPassword> ]=> ;
[ HB_AdoSetQuery( <cQuery> ) ; ] ;
[ HB_AdoSetTable( <cTable> ) ; ] ;
[ HB_AdoSetEngine( <(dbEngine)> ) ; ] ;
[ HB_AdoSetServer( <cServer> ) ; ] ;
[ HB_AdoSetUser( <cUser> ); HB_AdoSetPassword( <cPassword> ) ; ] ;
dbUseArea( <.nw.>, <rdd>, <(db)>, <(a)>, ;
if(<.sh.> .or. <.ex.>, !<.ex.>, NIL), <.ro.> [, <cp>] ) ;
[; dbSetIndex( <(index1)> )] ;
[; dbSetIndex( <(indexN)> )]
y en adordd.prg agregar la variable STATIC s_Query y este trozo de código
Code: Select all | Expand
* Vikthor 27.Abr.2007
#xcommand DEFAULT <uVar1> := <uVal1> ;
[, <uVarN> := <uValN> ] => ;
<uVar1> := If( <uVar1> == nil, <uVal1>, <uVar1> ) ;;
[ <uVarN> := If( <uVarN> == nil, <uValN>, <uVarN> ); ]
function HB_AdoSetQuery( cQuery )
DEFAULT cQuery := "SELECT * FROM "
s_Query = cQuery
return nil
¡¡¡ y listo el pollo !!!!
Vikthor
- Antonio Linares
- Site Admin
- Posts: 42454
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 20 times
- Been thanked: 58 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42454
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 20 times
- Been thanked: 58 times
- Contact:
Code: Select all | Expand
2007-04-27 19:33 UTC+0100 Antonio Linares (alinares@fivetechsoft.com)
* contrib/adordd/adordd.ch
* contrib/adordd/adordd.prg
* QUERY support and MS SQL support (thanks to Vikthor!)
Vikthor already successfully tested the ADORDD on Microsoft SQL server and added a new clause QUERY :-)
Regards,
Antonio
- Antonio Linares
- Site Admin
- Posts: 42454
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 20 times
- Been thanked: 58 times
- Contact:
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
- Antonio Linares
- Site Admin
- Posts: 42454
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 20 times
- Been thanked: 58 times
- Contact:
Vikthor,
Solo tienes que darte de alta en www.sourceforge.net , y proporcionarnos el login (ID) que elijas.
Para la próxima modificación del ADORDD que hagas, le pedimos al equipo de Harbour que te den de alta y pasas a formar parte del equipo de desarrollo de Harbour![Smile :-)](./images/smilies/icon_smile.gif)
Solo tienes que darte de alta en www.sourceforge.net , y proporcionarnos el login (ID) que elijas.
Para la próxima modificación del ADORDD que hagas, le pedimos al equipo de Harbour que te den de alta y pasas a formar parte del equipo de desarrollo de Harbour
![Smile :-)](./images/smilies/icon_smile.gif)
Last edited by Antonio Linares on Fri Apr 27, 2007 7:17 pm, edited 2 times in total.
el ejemplo que puso el sr. Antonio,
USE test00 VIA "ADORDD" TABLE "ACCOUNTS" MYSQL ;
FROM "www.freesql.org" USER "myuser" PASSWORD "mypass"
funciona de maravila y rapidicimo.
pero si cambiamos la instrucion como sigue:
USE CONFIG VIA "ADORDD" TABLE "PRUEBA" MYSQL ;
FROM 'LOCALHOST' USER "root" PASSWORD "01898"
marca el siguiente error:
Application
===========
Path and name: C:\XHARBOUR\TESTADO\TESTADO.Exe (32 bits)
Size: 1,329,664 bytes
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 04/27/07, 20:04:33
Error description: Error ADODB.Recordset/16389 E_FAIL: OPEN
Args:
[ 1] = C SELECT * FROM PRUEBA
[ 2] = C DRIVER={MySQL ODBC 3.51 Driver}; SERVER=LOCALHOST;DATABASE=CONFIG;UID=root;PWD=01898
[ 3] = N 1
[ 4] = N 3
Stack Calls
===========
Called from: win32ole.prg => TOLEAUTO:OPEN(0)
Called from: => ADO_OPEN(144)
Called from: => DBUSEAREA(0)
Called from: testado.prg => MAIN(21)
probando con MYSQL-FRONT si puedo realizar la conexion.
Saludos y larga vida a FW.
USE test00 VIA "ADORDD" TABLE "ACCOUNTS" MYSQL ;
FROM "www.freesql.org" USER "myuser" PASSWORD "mypass"
funciona de maravila y rapidicimo.
pero si cambiamos la instrucion como sigue:
USE CONFIG VIA "ADORDD" TABLE "PRUEBA" MYSQL ;
FROM 'LOCALHOST' USER "root" PASSWORD "01898"
marca el siguiente error:
Application
===========
Path and name: C:\XHARBOUR\TESTADO\TESTADO.Exe (32 bits)
Size: 1,329,664 bytes
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 04/27/07, 20:04:33
Error description: Error ADODB.Recordset/16389 E_FAIL: OPEN
Args:
[ 1] = C SELECT * FROM PRUEBA
[ 2] = C DRIVER={MySQL ODBC 3.51 Driver}; SERVER=LOCALHOST;DATABASE=CONFIG;UID=root;PWD=01898
[ 3] = N 1
[ 4] = N 3
Stack Calls
===========
Called from: win32ole.prg => TOLEAUTO:OPEN(0)
Called from: => ADO_OPEN(144)
Called from: => DBUSEAREA(0)
Called from: testado.prg => MAIN(21)
probando con MYSQL-FRONT si puedo realizar la conexion.
Saludos y larga vida a FW.
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
- Antonio Linares
- Site Admin
- Posts: 42454
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 20 times
- Been thanked: 58 times
- Contact: