Visual Basic - SOLO UN GENIO PUEDE AYUDARME

Life is soft - evento anual de software empresarial
 
Vista:

SOLO UN GENIO PUEDE AYUDARME

Publicado por Emanuel Nogueiras (1 intervención) el 29/11/2006 17:19:40
HOLA,

ESTOY HACIENDO UN PROGRAMA EN RED QUE FUNCIONA CON SQL SERVER.

EL PROBLEMA ES QUE HAY UNA PANTALLA EN EL PROGRAMA EN LA QUE SE VISUALIZAN BOTONES CORREPONDIENTES A MESAS DE UN RESTAURANTE, EL PROBLEMA ES QUE QUIERO NO PERMITIR ACCEDER A LA MISMA MESA AL MISMO TIEMPO DESDE OTRO ORDENADOR... ME GUSTARIA POR EJEMPLO DESHABILITAR EL BOTON CORESPONDIENTE A UNA MESA QUE ESTÉ SIENDO UTILIZADA POR OTRO ORDENADOR DE LA RED, Y QUE CUANDO YA NO LA ESTÉ UTILIZANDO ESE OTRO ORDENADOR, DESDE CUALQUIER OTRO SE PUEDA ACCEDER, BLOQUEANDOLA A SU VEZ PARA QUE NO PUEDAN USARLA LOS DEMAS MIENTRAS ESTÉ EN USO.

COMO HAGO ?? :S :S :S :S NECESITO AYUDA, NO SE QUE HACER !!!

LO UNICO QUE PENSÉ FUE AGREGAR UN CAMPO EN LA TABLA DE LAS MESAS QUE FUERA PARA EL "BLOQUEO" UN CAMPO BOOLEAN PARA QUE SI ESTA EN USO NO PODER ACCEDER Y SI ESTA DISPONIBLE ACCEDER Y BLOQUEAR, LUEGO LIBERAR AL SALIR DE ESA MESA.

EL PROBLEMA EN ESTE CASO ES QUE SI UN ORDENADOR ACCEDE A UNA MESA, BLOQUEANDOLA, Y LUEGO POR ALGUN OTRO PROBLEMA EXTERNO SE CIERRA LA APLICACION SIN HABER LIBERADO ESA MESA, QUEDARÍA INACCESIBLE PARA TODOS, INCLUYENDO PARA EL MISMO ORDENADOR QUE LA BLOQUEÓ EN UN PRINCIPIO..

ES UN LIO ESTO, NECESITO UN GENIO !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SOLO UN GENIO PUEDE AYUDARME

Publicado por christian rodriguez (10 intervenciones) el 29/11/2006 18:18:35
La pregunta es???????

Un administrador puede, acceder al control del Punto de Venta?????, asi desde otro PC se podria FINALIZAR la venta, pues como tu lo explicas, si se cierra el PC o la aplicacion no podrias desbloquearla... ¿Y que pasa con la venta???? lods clientes se van sin pagar?????

Creo que solo te faltó un poco de analisis de la situacion...

Tu idea es buena, pero con todas las soluciones se te podrian presentar problemas, y debes pensar soluciones. En tu caso se te presentó ese inconveniente, pero no penbsaste en darle solucion.

En resumen, la idea es buena, y lo que yo agregaria es: Un campo que indique el PC que ha bloqueado la mesa, asi cuando reiniceies o vuelvas a cargar la aplicacion, este PC pueda seguir con la mesa.

----------------------------------------------------------------------------

En el evento Click del boton puedes poner
Suponiendo que usas un arreglo de botones, para asi ahorar codigo.
La mesas tendran el numero del indice + 1
Presumo una conexion llamada cnn

Sub cmdMesa(Index as Integer)
Dim rs as ADODB.Recordset

rs.open "SELECT * FROM Mesas WHERE IdMesa=" & str(Index+1) & " WHERE Ocupada=False", cnn

if rs.bof and rs.eof then
msgbox "La mesa está Ocupada"
else
cnn.execute "UPDATE Mesas set (Ocupada=True) WHERE IdMesa=" & str(Index+1)
end if

End Sub

Podrias no usar la clausula where en la consulta SELECT, y comparar el recordset con el campo en el IF

If not rs!Ocupada Then
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ALADINO

Publicado por Eugenio (1 intervención) el 29/11/2006 23:14:54
DAME TU DIRECCION FISICA Y TE ENVIO LA LAMPARA. PERO RECUERDA: SOLO TRES DESEOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ALADINO

Publicado por Ediwn (303 intervenciones) el 01/12/2006 00:22:27
Tu idea es perfecta, esa de agregarle el campo de ocupado. Ahora el problema es cuando el programa se cierre inadeacuadamente. Lo que puedes hacer es complementar una segunda condición, puede ser con la fecha y/u hora del sistema, en lo cual el programa que esté ocupando la MEZE envie constantemente en un cierto periodo información de fecha u hora, y en el caso de que se haya cerrado mal lo podrás saber cuando el intervalo de la fecha u hora sea muy larga.

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ALADINO

Publicado por chrsiatian rodriguez (10 intervenciones) el 05/12/2006 20:32:09
Esa idea suena a programa de Ciber.........

Lo habia pensado en un instante, pero????? es necesario sobrecargar la red con envios constantes de los PCs clientes al Servidor???????? Habrá alguien preocupado de verificar el estado de los PCS???????.

Un estudio del problema nos puede traer muchas ideas, pero.... en la realidad seran usados?????

Debemos recordar que no debemos trabajar en cosas que no se han pedido......

Ahora si son realmente utiles y serán usadas, OK... tendran ademas, un costo extra ($$$$)

------------------------------------------------------------------------------------------

A PROPOSITO, PARA LA PERSONA QUE ESTA HACIENDO EL PROGRAMA......
TU PROGRAMA PERMITE MOVER LA POSICION DE LAS MESAS EN LA PANTALLA, EN TIEMPO DE EJCUCION, DE MANERA QUE SEAN VISUALIZADAS TAL COMO ESTAN FISICAMENTE DISTRIBUIDAS???????????????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ALADINO

Publicado por Edwin (303 intervenciones) el 07/12/2006 01:34:57
Haber, con la sobrerecarga en la RED???

Lo puedo mejorar usando Procedimientos Alamcenados, claro si es que mi Motor de BB.DD. lo soporta.

Haber, siempre es constante el uso de la RED, bueno ya sea en un tiempo de minutos, talvez no?, Cliente-Servidor, muchos clientes hacen nuevos registros, consultas,etc. y no se sabe a que momento lo hacen.

Pero en milisegundos raro no?,

Osea que puedo consultar en un par de minutos para saberlo y así no saturar la RED, 5 minutos puede ser? uhmmmmmmm?????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOLO UN GENIO PUEDE AYUDARME

Publicado por Sahid Ra (6 intervenciones) el 06/12/2006 16:31:21
Hola quizas llego con mi comentario algo tarde, pero a tu problema
lo que yo haria seria crear conexiones winsock y cada ventana abierta
hacia un cliente seria una mesa, asi que cuando uno se quiera conectar
estaria en este caso el la mesa ocupada porque supongo que las
IP son fijas y al estar ocupado un puerto significa que esta ocupada la mesa
y aun que no tuvieran IP fija se podria hacer pero no se cada quien ve la
solucion a un problema de manera diferente es lo que me gusta de
la programacion suerte y ojala te haya podido dar otra idea para resolver
tu problema o sino quizas otra forma de ataque, suerte. ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar