nuevo con mysql

SQL, mySQL, postgreSQL y otros motores
Hugo
Novato
Mensajes: 34
Registrado: Jue Mar 10, 2011 12:22 am
Contactar:

nuevo con mysql

Mensaje por Hugo » Mié Mar 14, 2012 12:36 am

Buen dia a todos:

Estamos haciendo pruebas con nuestro sistema para migrarlo de tps a mysql todo bien migramos informacion pero llegamos a este problema, en un open de una ventana con tps realizabamos el siguiente codigo:

recorremos todas la fracciones de un modelo recorriendo con set(key,key), no hemos modificado a sentencias y en mysql no hace el recorrido normal no se posiciona el modelo, nunca lo encuentra. Las sentencias del fetch() si funcionan correctamente, mi duda es que debo cambiar para que funcione en mysql, conforme recorro la tabla voy guardando en una queue.

clear(IngMoFr:Record)
ING2:Modelo = ModeloL
set(ING2:SKModelo,ING2:SKModelo)
Loop until access:IngMoFr.next() or ING2:Modelo <> ModeloL

clear(IngFrac:Record)
ING:Fraccion = ING2:Fraccion
if access:IngFrac.fetch(ING:PKFrac) = level:benign
if ING:Hecha = 'PESPUNTADOR'
Loc:TE += ING2:TEstandar
elsif ING:Hecha = 'PRELIMINAR'
Loc:TETP += ING2:TEstandar
end
end

clear(Priv:TE) ! guardamos Modelo con tiempos estandar en QUEUE
ModeloT = ModeloL
TET = Loc:TE
TETPre = Loc:TETP
add(Priv:TE)

end

De antemano Gracias.....

atte. Hugo Briseño


Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1057
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: nuevo con mysql

Mensaje por Mauricio » Mié Mar 14, 2012 1:53 pm

Te recomiendo que cambies ese código por un query, usando Prop:SQL y una tabla estúpida o boba. Va a ser mucho más eficiente, seguro.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Hugo
Novato
Mensajes: 34
Registrado: Jue Mar 10, 2011 12:22 am
Contactar:

Re: nuevo con mysql

Mensaje por Hugo » Mié Mar 14, 2012 4:02 pm

Buen dia:

Mauricio gracias por contestar, podrías ponerme un ejemplo de como seria la instrucción que utilizaría?, y mas o menos como funcionaria?

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1057
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: nuevo con mysql

Mensaje por Mauricio » Mié Mar 14, 2012 4:58 pm

Necesitaría saber al menos las estructuras de las tablas y su relación. Por el código, el query sería algo así:

SELECT * FROM IngMoFr, IngFrac
WHERE IngMoFr.Fraccion = IngFrac.Fraccion
AND IngMoFr.Modelo = ModeloLa
En lugar de * solo deberías traer los campos que vas a usar, para evitar tráfico innecesario.
Luego eso lo metés en una variable, Loc:Query llamémosla, y hacés:

Código: Seleccionar todo

SQL_File{Prop:SQL} = Loc:Query
LOOP
   NEXT(SQL_File)
   IF ErrorCode()
      BREAK
   END !IF
   !Acumulás variables y agregás a la queue
END !LOOP
El sistema va a ser mucho más rápido y eficiente.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

salvaram
Novato
Mensajes: 45
Registrado: Mar Mar 08, 2011 6:09 pm
Contactar:

Re: nuevo con mysql

Mensaje por salvaram » Mié Mar 14, 2012 6:24 pm

oyes esto esta muy interesante... pues tengo el mismito problema, hasta parece que trabajamos donde mismo jajaja, pero disculpa mauricio como se define la tabla tonta que comentas???


de antemano gracias...

salvaram
Novato
Mensajes: 45
Registrado: Mar Mar 08, 2011 6:09 pm
Contactar:

Re: nuevo con mysql

Mensaje por salvaram » Mié Mar 14, 2012 6:34 pm

bueno supongo que eso es lo que haces en esta instruccion

SQL_File{Prop:SQL} = Loc:Query

o que es SQL_File

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1057
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: nuevo con mysql

Mensaje por Mauricio » Mié Mar 14, 2012 6:36 pm

En alguno de los post sobre SQL que escribí creo que la definí. Se define como otra tabla normal solo que tendrá x cantidad de campos que serán todos del mismo tipo, CSTRING. Los campos se llaman C1, C2, C3, etc., todos los que quieras tener. La longitud del CSTRING depende de tu sistema pero generalmente con 1001 caracteres alcanza, aunque si tenés un CSTRING más grande en alguna de las tablas y lo pensás usar en una consulta te conviene usar esa longitud.
Esta tabla actúa como un buffer y es importante recordar que JAMAS harás un ADD o Insert en la misma. Físicamente está SIEMPRE vacía.
Una vez ejecutado el query en esa tabla luego se recorre con un LOOP como puse en el post anterior.
El link sobre la tabla estúpida es este: viewtopic.php?f=6&t=437&p=1939&hilit=ta ... pida#p1939
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

salvaram
Novato
Mensajes: 45
Registrado: Mar Mar 08, 2011 6:09 pm
Contactar:

Re: nuevo con mysql

Mensaje por salvaram » Mié Mar 14, 2012 6:58 pm

Hola denuevo mauricio, si ya me habia leido tu aporte sobre esa tabla y la vdd te lo agradezco pues ta muy interesante y bastante entendible, incluso ya hice un ejemplo en SQL Express y funciona de lo mejor, pero mi pregunta es como definirla en el Diccionario si utilizo MySQL, mira la he definido asi ...

Imagen

y no marca error, pero igual no me devuelve nada en la consulta...


De antemano gracias :D

salvaram
Novato
Mensajes: 45
Registrado: Mar Mar 08, 2011 6:09 pm
Contactar:

Re: nuevo con mysql

Mensaje por salvaram » Mié Mar 14, 2012 7:05 pm

Bueno nomas nunca aparecio la imagen ... pero la tengo definida asi...

Usage : Table
Name : SQL_File
Description : Tabla temporal
Prefix : RES
Database Driver : ODBC
Driver Opctions : /TURBOSQL=TRUE
Owner Name : !glo:owner
Full PathName : ss_MiTabla



Demas opciones habilitadas
Enable Table Creation
Open in Current Thread


Asi la tengo definida...

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1057
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: nuevo con mysql

Mensaje por Mauricio » Mié Mar 14, 2012 7:05 pm

No se ve :(
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado