Page 3 of 3

Re: Incluyendo el SQLRDD

PostPosted: Fri Aug 25, 2023 7:02 am
by Joaquim Ferrer
wilsongamboa wrote:mi experiencia
intente cuando apenas salio este producto pero me fallaba cuando hacia use \sistemas\siste001\empre001\ventas\ventas.dbf index \sistemas\siste001\empre001\ventas\ventas.ntx alias ventas
intente con una funcion que ellos tenian para estos casos pero no me funciono
hasta alli llegue eso unido a mis escasos conocimientos de sql en esa epoca ( y ahora ) me detuvieron no me atrevi a comprar la lib por mi falta de conocimiento del campo sql
saludos
wilson
pd: me cai del asiento cuando vi que estaban disponibles los fuentes ja ja ja
gracias a don Marcelo Lombardo y al equipo de xharbour.com !!


Wilson
No entiendo muy bien lo que pretendías al 'abrir' una tabla de la forma 'tradicional' con su ruta al fichero para SQLRDD
El concepto de Sistema Gestor de Bases de Datos es el de conectar a una BD, normalmente con un dominio, IP y luego accesar a sus tablas, sin importarte dónde están físicamente los ficheros ni sus índices

Re: Incluyendo el SQLRDD

PostPosted: Fri Aug 25, 2023 8:38 am
by Joaquim Ferrer
carlos vargas wrote:se necesita además un campo para controlar el borrado de fila, por defecto es sr_deleted


Muchas gracias Carlos por el aporte

No consigo dominar este tema, he probado lo siguiente
Code: Select all  Expand view

SR_UseDeleteds(.T.)

   ? "Test SQLRDD"
   ? ""
   ? "Connecting to database..."

   cRDD := "SQLRDD"
   nCnn := SR_AddConnection( CONNECT_MYSQL, cConnString )

   cTable := "test"
   USE ( cTable ) EXCLUSIVE VIA ( cRDD )

   ? SR_DeletedName(), ordkeycount()

   ? "Delete", field->First, field->Last
   dbdelete()

 

Aunque cambie el valor de SR_UseDeleteds() con T o F, hace siempre lo mismo, elimina el registro

Si añado el campo sr_deleted a la tabla, tal como indicas, me produce error
Code: Select all  Expand view

Error BASE/1109  Argument error: $
Called from SR_WORKAREA:GETBUFFER(3072)
Called from SR_WORKAREA:FIRSTFETCH(1777)
Called from SR_WORKAREA:SQLGOTOP(3589)
Called from MAIN(77)
 


En el codigo de METHOD GetBuffer( lClean, nCache ) CLASS SR_WORKAREA
Code: Select all  Expand view

3071      If ::hnDeleted > 0 .and. ::aLocalBuffer[ ::hnDeleted ] != NIL
3072         ::aInfo[ AINFO_DELETED ] := ::aLocalBuffer[ ::hnDeleted ] $ "T*"
3073      Else
         ::aInfo[ AINFO_DELETED ] := .F.
      EndIf
 


Si le cambio el nombre del campo con SR_DeletedName( "deleted" ), no produce error, pero no hace nada, el registro se elimina, no se actualiza

Gracias por la ayuda !

Re: Incluyendo el SQLRDD

PostPosted: Fri Aug 25, 2023 9:18 am
by Joaquim Ferrer
Descubriendo más misterios...

Si se usa SR_UseDeleteds(.F.) ANTES de la apertura con USE ( cTable ) EXCLUSIVE VIA ( cRDD ), SQLRDD crea el campo sr_deleted, si no lo tiene, de forma automática

Entiendo que SR_UseDeleteds(.F.) no conserva el valor globalmente, si no se define inmediatamente antes de USE

El campo sr_deleted o el que podamos definir con SR_DeletedName("deleted"), hay que crearlo con el tipo de datos CHAR, longitud 1 y que contiene una T o F simulando una variable lógica

Creo que el error anterior era que definia al campo deleted con INT i TYNINT creyendo que podia ser 0 o 1 y por eso no funcionaba

Vamos avanzando :)

Re: Incluyendo el SQLRDD

PostPosted: Fri Aug 25, 2023 3:57 pm
by wilsongamboa
Joaquim buenos dias yo intentaba abrircon todo el camino y ellos tenian una funcion global que usaba ejemplo
use \sistemas\empre001\ventas\cliente
se transformaba en una tabla en la base de datos asi

_sistemas_empre001_ventas_cliente

con eso cliente en cualquier empresa se diferenciaba dentro de la base de datos pero en mi caso habia un limite de caracteres y no pude hacer la migracion
lo voy a intentar una vez este ya compilado a Harbour totalmente

saludos

Wilson

Re: Incluyendo el SQLRDD

PostPosted: Sat Aug 26, 2023 4:44 pm
by Rossine
Hello,

See this project for harbour and Harbour++

https://github.com/marcosgambeta/sqlrddpp

Re: Incluyendo el SQLRDD

PostPosted: Sun Aug 27, 2023 10:41 pm
by russimicro
Buena tarde...
Les cuento mi experiencia con SQLRDD, uso la versión comercial hace más de 10 años, desde hace unos meses decide abandonarlo, adelantándome a lo que paso... y he probado MySQL y MARIADB nativo con fivewin , y he obtenido mejor rendimiento ..

Saludos

JONSSON RUSSI T.
Colombia

Re: Incluyendo el SQLRDD

PostPosted: Mon Aug 28, 2023 5:59 am
by Joaquim Ferrer
russimicro wrote:Buena tarde...
decide abandonarlo, adelantándome a lo que paso...


Y qué pasó ?

Re: Incluyendo el SQLRDD

PostPosted: Mon Aug 28, 2023 7:23 am
by paquitohm
Especulando... supongo que lo que pasó es que el producto se hizo open source y así dejó de ser comercial y así (probablemente) dejó de tener soporte empresarial

Re: Incluyendo el SQLRDD

PostPosted: Fri Sep 01, 2023 7:45 am
by José Luis Sánchez
Buenos días,
¿ se puede usar SQLRDD con una base de datos SqLite ?

Saludos,

Re: Incluyendo el SQLRDD

PostPosted: Fri Sep 01, 2023 9:17 am
by Joaquim Ferrer
José Luis Sánchez wrote:Buenos días,
¿ se puede usar SQLRDD con una base de datos SqLite ?


Buenos dias

Hasta donde sé y basándome sólo en lo que dice sqlrdd.ch, no lo acepta
Code: Select all  Expand view

#define CONNECT_ODBC                   1
#define CONNECT_RPC                    2
#define CONNECT_MYSQL                  3
#define CONNECT_POSTGRES               4
#define CONNECT_ORACLE                 5
#define CONNECT_FIREBIRD               6
#define CONNECT_MARIA                  7
#define CONNECT_ORACLE2                8
#define CONNECT_FIREBIRD3              9
 

Saludos

Re: Incluyendo el SQLRDD

PostPosted: Fri Sep 01, 2023 12:53 pm
by mgsoft
José Luis,

Puedes acceder via ODBC, como también a Access, que quizás sería lo más adecuado porque en este caso no hay que instalar el driver ODBC.

Saludos cordiales