Control Stock en MySql (de nuevo)

80 views
Skip to first unread message

pablo b(La Pampa)

unread,
Sep 6, 2011, 9:57:28 AM9/6/11
to Comunidad de Visual Foxpro en Español
Hola Amigos, bueno muchas gracias a las personas que me ayudaron con
el pequeño ejemplo de como hacer la consulta para saber si un producto
esta o no en la tabla, pero ocurre lo siguiente, le paso el codigo
primero y me cuenta:

r1 = SQLEXEC(_oconnect,"SELECT * FROM stock WHERE esn = ?_Code .and.
entregado = 1", "tucursor")
select tucursor &&&&& resultado de tu consulta
if reccount()=0 &&&& if reccount() > 0 &&&& encontro tu
resultado
Messagebox("El producto: "+Thisform.text11.value+" Ya Fue Vendido u
Entregado o NO Existe" + Chr(13)+ + CHR(13) + "Digite otro numero...!",
48,"Atencion!!!")
Thisform.text11.value= " "
return .f.
ELSE

les cuento

1 - Me dice que el alias tucursor no existe ¿porque? o que estoy
haciendo mal
2 - ese codigo que puse arriba esta bien para saber si un producto de
la tabla ya fue entregado asi el vendedor o usuario que esta cargando
el remito no lo puede volver a cargar porque ya fue entregado.

Lo que quiero hacer que antes en las dbf con un locate y un found lo
hacia facil aca se me complica en mysql pero sera hasta que lo
entienda un poco mas, es la de lograr que cuando estoy cargando remito
a un vendedor con productos, si el producto que cargo ya fue entregado
anteriormente NO me deje cargarlo de nuevo ¿me explico?

Muchas Gracias por su ayuda y comprension.

Pablo - La Pampa

Yvan GMAIL

unread,
Sep 6, 2011, 10:03:51 AM9/6/11
to publice...@googlegroups.com
Hola Pablo,
No recuerdo si .and. funciona en Mysql, asi que prueb asi

r1 = SQLEXEC(_oconnect,"SELECT * FROM stock WHERE esn = ?_Code and entregado


= 1", "tucursor")

Antes de evaluar "tucursor", debes verificar si tu sentencia se ejecutó
correctamente
..
If r1 = -1 then
MessageBox("Aquí hay un error..captura el error con aerror")
Endif


Saludos.
Yvan Carranza


-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de pablo b(La Pampa)
Enviado el: Martes, 06 de Septiembre de 2011 08:57 a.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Control Stock en MySql (de nuevo)

Walter R. Ojeda Valiente

unread,
Sep 6, 2011, 3:51:20 PM9/6/11
to publice...@googlegroups.com
Pablo, tienes un error de concepto.

Siempre que realices un acceso a tu Base de Datos pero SIEMPRE, sin excepción, debes verificar que se haya realizado correctamente. En tu caso:


r1 = SQLEXEC(_oconnect,"SELECT * FROM stock WHERE esn = ?_Code .and. entregado = 1", "tucursor")

Debes verificar que el valor de r1 sea mayor que cero. Si es menor que cero eso implica que ocurrió un error. Los errores más comunes son:
1. No hay conexión con la base de datos
2. La sentencia que escribiste no es reconocida

En tu caso se aplica el punto 2., ya que el ".and." no es reconocido por SQL, debes escribir "and" sin los puntos.

Resumiendo, después del r1 = SQLEXEC() debes escribir algo como:

IF r1 > 0     && Está todo OK, continuar normalmente
   ....
   ....
   ....
ELSE           && Ocurrió algún error, tomar la acción adecuada
   ...
ENDIF

Saludos.

Walter.



> Date: Tue, 6 Sep 2011 06:57:28 -0700
> Subject: [vfp] Control Stock en MySql (de nuevo)
> From: panch...@gmail.com
> To: publice...@googlegroups.com

Carlos Miguel FARIAS

unread,
Sep 7, 2011, 7:04:15 AM9/7/11
to publice...@googlegroups.com
.AND. es una compatibilidad con el codigo de dbase, que soporta fox, pero no es necesario en fox y no es soportado por mysql

Arnaldo Toledano

unread,
Sep 7, 2011, 9:38:29 AM9/7/11
to publice...@googlegroups.com
Tu codigo correcto seria asi.

cSelect="SELECT * FROM stock WHERE esn = ?_Code  and  entregado = 1"

If SqlExec(_oConnect, cSelect, "TuCursor") < 1
    Messagebox("Ha ocurrido un error "+Message(),0)
Else
   Select TuCursor
   If ReCount()=0
         Messagebox ("El producto: "+Thisform.text11.value+" Ya Fue Vendido u  Entregado o NO Existe" + Chr(13)+ + CHR(13) + ;

        "Digite otro numero...!", 48,"Atencion!!!")
        Thisform.text11.value= " "
        return .f.
    endif
endif

Arnaldo
  

R1= SQLEXEC(_oconnect,, "tucursor")

> select tucursor &&&&& resultado de tu consulta
> if reccount()=0 &&&& if reccount() > 0 &&&& encontro tu
> resultado
> Messagebox("El producto: "+Thisform.text11.value+" Ya Fue Vendido u
> Entregado o NO Existe" + Chr(13)+ + CHR(13) + "Digite otro numero...!",
> 48,"Atencion!!!")
> Thisform.text11.value= " "
> return .f.

Reply all
Reply to author
Forward
0 new messages