Mysql y Dbf

Post Reply
kpidata
Posts: 81
Joined: Tue Jul 26, 2016 9:52 pm

Mysql y Dbf

Post by kpidata »

Estimados, una Consulta, por efectos de que me resulta mas facil entender la manera de trabajar con DBF, en archivos de trabajo temporal, pero
a su vez aprovechando el motor de busqueda de Mysql. alguno de uds. habra trabajado con ambas opciones a la vez..
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: Mysql y Dbf

Post by leandro »

Hola buenos días

La mayoría de los desarrollos que he creado con FW, los hice de la manera que tu comentas. Archivos temporales en dbf y el motor de mysql para la información base. De esta manera he logrado acelerar la creación de reportes.

Saludos
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) ]
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Mysql y Dbf

Post by Armando »

Amigos:

Les recuerdo que también se pueden usar tablas TEMPORALES y es muy sencillo su uso.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Mysql y Dbf

Post by cmsoft »

Como bien dice Armando, utilizar tablas temporales de MySql es muy ventajoso. Desde mi punto de vista por 2 cosas.
1) La tabla temporal que se crea, solo es visible en la conexion que se creo, por lo tanto puede ser utilizada como si el sistema se utilizara en monousuario, sin tener en cuenta que puede haber 100 usuarios conectados que hayan creado sus 100 tablas temporales al mismo tiempo. Esto evita el tema de tener que crear archivos temporales dbf para cada usuario si el sistema se usa en una red o tener que utilizarlo en exclusiva y perder la posibilidad de operar simultaneamente sobre ese archivo dbf.
2) Sobre una tabla temporal se pueden aplicar filtros, ordenes, etc. etc. que si lo queremos hacer con un dbf tenemos que crear los indices necesarios.
Creo que una vez sumergido en el entorno MySql hay que tratar de aprovechar al máximo su potencial.
Es mi simple parecer...
User avatar
acuellar
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mysql y Dbf

Post by acuellar »

Estimado

Tienen algún ejemplo de cómo crear tablas temporales en MySql/MariaDB

Gracias.
Saludos,

Adhemar C.
Marcelo Via Giglio
Posts: 1077
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia
Has thanked: 1 time

Re: Mysql y Dbf

Post by Marcelo Via Giglio »

Hola,

es tan sencillo como :

Code: Select all | Expand


CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)
 


esa sentencia te crea una tabla temporal table2 con la estructura de la tabla table1, y con la información de la misma. También puedes utilizar el clasico formato con nombre de columna y tipo

La tabla temporal solo podra ser accedida desde la sesión donde fue creada y su vida será hasta que la sesión termine, salvo que la borres antes.

Saludos

Marcelo Vía
User avatar
acuellar
Posts: 1645
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mysql y Dbf

Post by acuellar »

Muchas gracias Marcelo
Saludos,

Adhemar C.
kpidata
Posts: 81
Joined: Tue Jul 26, 2016 9:52 pm

Re: Mysql y Dbf

Post by kpidata »

Estimados, entiendo que es mejor Mysql que dbf, pero como hago una tabla temporal con indices...

algo como...

Select 60
ARCHI2 = "TEMEXT"+Alltrim(cUser[3])
If net_use(ARCHI2,.T.,0)
zap
Index On (Archi2)->Cod_Text + Str((Archi2)->Servicio) to Archi2
Endif

Como se haría esto con Mysql.... perdón, pero me pierdo.... ya que después....debo generar una rutina que ordene los datos y me vaya
dando datos acumulados, según como este ordenada la tabla, por grupo y sub grupos.

Atte.,
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Mysql y Dbf

Post by cmsoft »

Simple, solo le das el orden que queres con ORDER BY
Con Dolphin seria asi:

Code: Select all | Expand


oApp:oServer:Execute("";
    + "CREATE TEMPORARY TABLE IF NOT EXISTS ventas_det_H ";
    +"( `id` INT(6) NOT NULL AUTO_INCREMENT, ";
    +"`CODART` bigint(13) NOT NULL,";  
    +"`DETART` VARCHAR(50) NOT NULL,";
    +"`CANTIDAD` DECIMAL(8,3) DEFAULT '0',";
    +"`PUNIT` DECIMAL(10,2) DEFAULT '0.00', ";
    +"`NETO`  DECIMAL(10,2) DEFAULT '0.00', ";
    +"`DESCUENTO`  DECIMAL(10,2) DEFAULT '0.00', ";
    +"`STOTAL`  DECIMAL(10,2) DEFAULT '0.00', ";
    +"`IVA` DECIMAL(10,2) DEFAULT '0.00', ";
    +"`CODIVA` INT(2) DEFAULT '0', ";
    +"`PTOTAL` DECIMAL(10,2) DEFAULT '0.00',";
    +"PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8")
oApp:oServer:Execute("TRUNCATE ventas_det_h") // La vacio por si existia y tenia datos

oQryDet:= oApp:oServer:Query("SELECT * FROM ventas_det_h ORDER BY CODART") // La abro ordenada or CODART, aunque su indice natural es ID
 


Y en el transcurso del programa podes cambiarle el orden simplemente indicando por que campo
oQryDet:SetOrder("DETART",.T.)
Si la muestras en un xBrowse y defines el mismo AUTOSORT el usuario puede elegir libremente por que campo desear ordenarla haciendo click en el encabezado
kpidata
Posts: 81
Joined: Tue Jul 26, 2016 9:52 pm

Re: Mysql y Dbf

Post by kpidata »

cuantos indices se pueden generar en una tabla normal y en una tabla temporal.

esto de abajo es lo que necesito hacer, abrir una tabla y el resultado de los grupos buscados pasarlo como item total a otra tabla temporal.

Tabla seria... codigo, marca, area, detalle, valor, cantidad... y debo ordenar por codigo, marca y area, para saber por esos grupos cuantos son y eso pasarlo a otra base temporal, que debe estar ordenada por codigo

Temporal codigo, marca, area, cantidad

Conta:=0

tabla:gotop()
do while .not. eof()
codigo:=tabla:codigo

do while .not. eof() .and. codigo:tabla:codigo
marca:=tabla:marca

do while .not. eof() .and. codigo:tabla:codigo .and. marca=tabla:marca
area:=tabla:area

do while .not. eof() .and. codigo:tabla:codigo .and. marca=tabla:marca .and. area=tabla:area
cuenta++

tabla:skip
enddo
if conta # 0
append blank
Replace temporal:codigo with codigo
Replace temporal:marca with marca
Replace temporal:area with area
Replace temporal:cantidad with cantidad
Endif
enddo
enddo


esta super resumido pero en lo general eso necesito hacer..
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Mysql y Dbf

Post by cmsoft »

Si lo que queres hacer es simplemente "mostrar" un resultado resumido en un xbrowse, lo que podes hacer es una query que contenga esa info y mostrarla.

Code: Select all | Expand


oQry := oServer:Query("SELECT codigo,   marca, area, COUNT(codigo) as cantidad FROM tabla GROUP BY codigo,marca,area ORDER BY codigo")
xbrowse(oQry)
 
kpidata
Posts: 81
Joined: Tue Jul 26, 2016 9:52 pm

Re: Mysql y Dbf

Post by kpidata »

Estimado... te pasaste... voy a probarlo... que poco se de mysql.... :cry: :cry:
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Mysql y Dbf

Post by cmsoft »

Animo compañero!! Acá estamos para ayudarnos entre todos... Simplemente hay que sacarse el chip del dbf y ponerse el de MySql. En la web hay muchisima info. A veces lo que antes nos llevaba a tener que considerar un monton de campos e indices en nuestras aplicaciones, ahora el motor de MySql nos resuelve muchisimo la vida.
Cualquier duda no dejes de consultar.
Post Reply