Consultas SQL a tablas en la WEB

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Avatar de Usuario
djmainero
Novato
Mensajes: 37
Registrado: Lun Feb 14, 2011 9:47 pm
Contactar:

Consultas SQL a tablas en la WEB

Mensaje por djmainero » Vie Jul 27, 2012 10:12 pm

Hola buenas tardes, les dejo una inquietud...

Tenemos desarrollado un sistema en C6.3 con BD SQL.
En el DCT hemos agregado algunas tablas con driver ODBC que están en un servidor web.
De este modo yo puedo consultarlas y modificarlas desde mi sistema mediante consultas SQL.

El problema es el siguiente:
Tenemos un proceso que cada x segundos hace una consulta en una de estas tablas (en la web) para ver si hay nuevos registros... todo anda barbaro... pero mientras haya pocas pc utilizando este proceso...
Nos pasó que en un cliente, donde debe haber mas de 15 pc.. les sucede que se satura la red, y todo le anda muuuy lento....

Que se puede hacer o probar??
Desde ya, muchas gracias!
Saludos
Sistemas & Soluciones Informáticas
Sistema de Administración para Cooperativas de Servicios Públicos
www.sysoluciones.com.ar - info@sysoluciones.com.ar


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

Re: Consultas SQL a tablas en la WEB

Mensaje por Mauricio » Dom Jul 29, 2012 8:22 am

Cómo es el proceso que estás ejecutando? Qué información estás trayendo? Cómo lo hacés?
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Avatar de Usuario
djmainero
Novato
Mensajes: 37
Registrado: Lun Feb 14, 2011 9:47 pm
Contactar:

Re: Consultas SQL a tablas en la WEB

Mensaje por djmainero » Lun Jul 30, 2012 7:47 pm

Hola "Canalla" (por ser de Central) aclaro porque se puede prestar a confusión jaja

En realidad, recorro una tabla y si encuentra o no un registro con determinadas condiciones devuelve un T/F.
La idea era en vez de recorrer, buscar directamente con:

WebTabla{PROP:SQL} = 'SELECT Count(*) FROM WebTabla WHERE... '

Pero no recuerdo ahora que problema tenia con esa consulta que no me andaba....
Sistemas & Soluciones Informáticas
Sistema de Administración para Cooperativas de Servicios Públicos
www.sysoluciones.com.ar - info@sysoluciones.com.ar

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

Re: Consultas SQL a tablas en la WEB

Mensaje por Mauricio » Lun Jul 30, 2012 8:05 pm

Canalla y a mucha honra :)
Tenés que probar la consulta, después de hacer el Prop:SQL preguntá por el error.
Ejemplo:

Código: Seleccionar todo

WebTabla{PROP:SQL} = 'SELECT Count(*) FROM WebTabla WHERE... '
IF ErrorCode()
    Message('Error: ' & ErrorCode() & ' ' & Error() & ' ' & FileErrorCode() & ' ' FileError()
ELSE
    NEXT(WebTabla)
    IF Campo1 > 0
       Message('Hay registros')
    ELSE
       Message('No encontré nada')
    END !IF
END !IF
Probablemente si hay algún problema el mensaje de error nos dará una idea de lo que está pasando.
Tu opción, la de recorrer la tabla para ver si hay registros, implica mucho tráfico en la red y eso puede ralentizar el sistema.
Contá después cómo te fue.
Saludos.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Avatar de Usuario
djmainero
Novato
Mensajes: 37
Registrado: Lun Feb 14, 2011 9:47 pm
Contactar:

Re: Consultas SQL a tablas en la WEB

Mensaje por djmainero » Lun Jul 30, 2012 8:31 pm

Si.. seguramente eso es.. pero no hay muchos registros por ahora..(cerca de 900)
yo ahora me voy acordando de lo que me pasaba...
si no me equivoco... la consulta la hacía:
SELECT Count(*) AS ID FROM WebTabla WHERE..
le agregaba el AS ID porque sino no podia preguntar por el campo....pero no recuerdo porque no me andaba...
Sistemas & Soluciones Informáticas
Sistema de Administración para Cooperativas de Servicios Públicos
www.sysoluciones.com.ar - info@sysoluciones.com.ar

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

Re: Consultas SQL a tablas en la WEB

Mensaje por Mauricio » Lun Jul 30, 2012 9:30 pm

Aún cuando solo sean 900 registros, el select count(*) te va a generar mucho menos registros porque será 1 o nada. Tratá de averiguar cuál es el error.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Avatar de Usuario
djmainero
Novato
Mensajes: 37
Registrado: Lun Feb 14, 2011 9:47 pm
Contactar:

Re: Consultas SQL a tablas en la WEB

Mensaje por djmainero » Mar Jul 31, 2012 12:52 pm

Buenos días, estuve probando...te comento mas o menos que me hace:

Lo pude resolver haciendo que la consulta devuelva todos los registros, ya que con el primero ya está.., pero el problema me lo hace cuando utilizo un count

En la tabla MySQL (web) tengo los campos:
LetrasE, ID_E, LetrasD, ID_D, Detalle, Fecha, etc etc...

Haciendolo asi anda bien:
WebTabla{PROP:SQL} = 'SELECT LetrasE, ID_E FROM WebTabla WHERE .....'
NEXT(WebTabla)
- me devuelve los registros: WebTabla:LetrasE y WebTabla:ID_E tienen los valores que devuelve la consulta

Pero si hago:
WebTabla{PROP:SQL} = 'SELECT LetrasE, ID_E, COUNT(*) FROM WebTabla WHERE .....'
NEXT(WebTabla)
- no se como hacer referencia al count.. es como que el resultado del count me lo pone si muestro otro campo..hace algo raro que no logro entender...

Saludos
Sistemas & Soluciones Informáticas
Sistema de Administración para Cooperativas de Servicios Públicos
www.sysoluciones.com.ar - info@sysoluciones.com.ar

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

Re: Consultas SQL a tablas en la WEB

Mensaje por Mauricio » Mar Jul 31, 2012 3:21 pm

WebTabla tiene todos los campos como cstring?
Cuando hacés el segundo SELECT, estás haciendo un group by?
Probaste que el segundo SELECT no te da error en el SQL Studio Management?
Seguís sin testear el errorcode inmediatamente después del Prop:SQL y antes del NEXT, eso será de gran ayuda.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Avatar de Usuario
djmainero
Novato
Mensajes: 37
Registrado: Lun Feb 14, 2011 9:47 pm
Contactar:

Re: Consultas SQL a tablas en la WEB

Mensaje por djmainero » Mar Jul 31, 2012 4:08 pm

hay campos byte, string, short...
el problema no es que de error la consulta.. sino que no sabia como obtener el valor del count, pero ya le encontre la vuelta de como hace:
Si por ej. tengo estos campos:

LetrasE, ID_E, Detalle, fecha...

y yo hago la consulta:
SELECT LetrasE, ID_E, COUNT(*) FROM .. WHERE...GROUP BY.. , la cual devuelve:
XXX 16 2
luego de hacer el NEXT(WabTabla)

el valor del count me lo devuelve en el 3º campo, es decir Detalle
asi funciona
Sistemas & Soluciones Informáticas
Sistema de Administración para Cooperativas de Servicios Públicos
www.sysoluciones.com.ar - info@sysoluciones.com.ar

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

Re: Consultas SQL a tablas en la WEB

Mensaje por Mauricio » Mar Jul 31, 2012 4:15 pm

Ahh, exacto, pensé que eso lo sabías. Hay una serie de artículos en el foro que hablan sobre SQL y ahí te explican cómo usar la tabla "boba" para obtener los queries, te recomiendo que los leas.
Ahora solo resta saber si se aceleró el proceso.
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 6 invitados