In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Pasando de DBF a MySQL
Pasando de DBF a MySQL
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Â
Hola foro:<br>
<br>
Estoy intentando dejar el uso de DBF's para cambiar por MySQL y he
estado estudiando en varias web de dicho producto, pero no logro
hacerme una relaciÃn entre algunos conceptos de mis viejas DBF con esta
nueva BD, o porque no lleguà a algÃn capÃtulo donde me quede claro o
porque no existen. Entiendo que es bastante diferente la forma de
trabajo pero igualmente estoy tratando de buscar las similitudes en
cuanto a conceptos.<br>
Aquà pongo algunos con su correspondiente comando o funciÃn para DBF's
y me gustarÃa que alguien me de una mano para poner el equivalente (si
lo hay ) en MySQL.<br>
<br>
1) Determinar el Ãndice activo. DBSETORDER() o SET ORDER .....<br>
<br>
2) Buscar un determinado registro para saber si existe o no. DBSEEK()
preguntando por el valor de retorno o SEEK con su correspondiente
FOUND() sobre el indice activo. He visto en un mensaje anterior en este
foro una idea de Josà Alfonso Suarez Moreno que dice asi: <font
color="#333399">SELECT count(*) AS hay_registros FROM tabla WHERE
codigo="23"
,Si hay_registros es != 0 es que hay al menos una fila con el valor 23
en el campo codigo</font>, pero no me queda claro quà indice se estÃ
utilizando o si se esta recorriendo toda la tabla secuencialmente para
encontrar el valor.<br>
<br>
3) Crear un indice cuya clave esta formada por campos numÃricos y
carÃcter. INDEX ON str(mi_numero)+mi_caracter TO mi_indice<br>
<br>
<br>
Desde ya muchas gracias<br>
<br>
Un saludo<br>
Daniel<br>
</body>
</html>
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Â
Hola foro:<br>
<br>
Estoy intentando dejar el uso de DBF's para cambiar por MySQL y he
estado estudiando en varias web de dicho producto, pero no logro
hacerme una relaciÃn entre algunos conceptos de mis viejas DBF con esta
nueva BD, o porque no lleguà a algÃn capÃtulo donde me quede claro o
porque no existen. Entiendo que es bastante diferente la forma de
trabajo pero igualmente estoy tratando de buscar las similitudes en
cuanto a conceptos.<br>
Aquà pongo algunos con su correspondiente comando o funciÃn para DBF's
y me gustarÃa que alguien me de una mano para poner el equivalente (si
lo hay ) en MySQL.<br>
<br>
1) Determinar el Ãndice activo. DBSETORDER() o SET ORDER .....<br>
<br>
2) Buscar un determinado registro para saber si existe o no. DBSEEK()
preguntando por el valor de retorno o SEEK con su correspondiente
FOUND() sobre el indice activo. He visto en un mensaje anterior en este
foro una idea de Josà Alfonso Suarez Moreno que dice asi: <font
color="#333399">SELECT count(*) AS hay_registros FROM tabla WHERE
codigo="23"
,Si hay_registros es != 0 es que hay al menos una fila con el valor 23
en el campo codigo</font>, pero no me queda claro quà indice se estÃ
utilizando o si se esta recorriendo toda la tabla secuencialmente para
encontrar el valor.<br>
<br>
3) Crear un indice cuya clave esta formada por campos numÃricos y
carÃcter. INDEX ON str(mi_numero)+mi_caracter TO mi_indice<br>
<br>
<br>
Desde ya muchas gracias<br>
<br>
Un saludo<br>
Daniel<br>
</body>
</html>
-
- Mensajes: 100
- Registrado: Vie Abr 10, 2009 11:02 pm
Pasando de DBF a MySQL
Hola Daniel,
Voy a intentar aclararte un poco como funcionan estos casos en SQL.
- SQL no tiene índices activos tal como los conoces en DBF. Es más
aunque no tuvieras índices podrías buscar lo que quisieras.
El concepto es:
Pides que campos necesitas ejemplo: SELECT razonsocial, direccion
indicas de qué tabla estás pidiendo esos campos: FROM clientes
le indicas un filtro para que te busque solamente los que cumplan la
condición que buscas:
WHERE codigo='0001" ( Verás que no hace falta traerse ese campo)
o contenido en: WHERE razonsocial LIKE '%GARCIA%'
Y que te devuelva la búsqueda ordenada como tú quieras, incluso sin usar
índices: ORDER BY razonsocial ASC ó DESC
Como ves puedes pedir lo que quieras, es el motor SQL el que se encarga
de buscar lo que le pidas.
Quedaría: SELECT razonsocial, direccion FROM clientes WHERE
razonsocial LIKE '%GARCIA%' ORDER BY razonsocial
Esto es un ejemplo muy básico.Te recomiendo que mires todas las
posibilidades del comando SELECT y practiques desde el administrador de
MySQL en tu caso, yo uso personalmente posgresql.
Si necesitas más aclaraciones, ve preguntando e intentaremos aclarártelas.
Daniel Du Pré escribió:
> Hola foro:
>
> Estoy intentando dejar el uso de DBF's para cambiar por MySQL y he
> estado estudiando en varias web de dicho producto, pero no logro hacerme
> una relación entre algunos conceptos de mis viejas DBF con esta nueva
> BD, o porque no llegué a algún capítulo donde me quede claro o porque no
> existen. Entiendo que es bastante diferente la forma de trabajo pero
> igualmente estoy tratando de buscar las similitudes en cuanto a conceptos.
> Aquí pongo algunos con su correspondiente comando o función para DBF's y
> me gustaría que alguien me de una mano para poner el equivalente (si lo
> hay ) en MySQL.
>
> 1) Determinar el índice activo. DBSETORDER() o SET ORDER .....
>
> 2) Buscar un determinado registro para saber si existe o no. DBSEEK()
> preguntando por el valor de retorno o SEEK con su correspondiente
> FOUND() sobre el indice activo. He visto en un mensaje anterior en este
> foro una idea de José Alfonso Suarez Moreno que dice asi: SELECT
> count(*) AS hay_registros FROM tabla WHERE codigo="23" ,Si hay_registros
> es != 0 es que hay al menos una fila con el valor 23 en el campo codigo,
> pero no me queda claro qué indice se está utilizando o si se esta
> recorriendo toda la tabla secuencialmente para encontrar el valor.
>
> 3) Crear un indice cuya clave esta formada por campos numéricos y
> carácter. INDEX ON str(mi_numero)+mi_caracter TO mi_indice
>
>
> Desde ya muchas gracias
>
> Un saludo
> Daniel
Voy a intentar aclararte un poco como funcionan estos casos en SQL.
- SQL no tiene índices activos tal como los conoces en DBF. Es más
aunque no tuvieras índices podrías buscar lo que quisieras.
El concepto es:
Pides que campos necesitas ejemplo: SELECT razonsocial, direccion
indicas de qué tabla estás pidiendo esos campos: FROM clientes
le indicas un filtro para que te busque solamente los que cumplan la
condición que buscas:
WHERE codigo='0001" ( Verás que no hace falta traerse ese campo)
o contenido en: WHERE razonsocial LIKE '%GARCIA%'
Y que te devuelva la búsqueda ordenada como tú quieras, incluso sin usar
índices: ORDER BY razonsocial ASC ó DESC
Como ves puedes pedir lo que quieras, es el motor SQL el que se encarga
de buscar lo que le pidas.
Quedaría: SELECT razonsocial, direccion FROM clientes WHERE
razonsocial LIKE '%GARCIA%' ORDER BY razonsocial
Esto es un ejemplo muy básico.Te recomiendo que mires todas las
posibilidades del comando SELECT y practiques desde el administrador de
MySQL en tu caso, yo uso personalmente posgresql.
Si necesitas más aclaraciones, ve preguntando e intentaremos aclarártelas.
Daniel Du Pré escribió:
> Hola foro:
>
> Estoy intentando dejar el uso de DBF's para cambiar por MySQL y he
> estado estudiando en varias web de dicho producto, pero no logro hacerme
> una relación entre algunos conceptos de mis viejas DBF con esta nueva
> BD, o porque no llegué a algún capítulo donde me quede claro o porque no
> existen. Entiendo que es bastante diferente la forma de trabajo pero
> igualmente estoy tratando de buscar las similitudes en cuanto a conceptos.
> Aquí pongo algunos con su correspondiente comando o función para DBF's y
> me gustaría que alguien me de una mano para poner el equivalente (si lo
> hay ) en MySQL.
>
> 1) Determinar el índice activo. DBSETORDER() o SET ORDER .....
>
> 2) Buscar un determinado registro para saber si existe o no. DBSEEK()
> preguntando por el valor de retorno o SEEK con su correspondiente
> FOUND() sobre el indice activo. He visto en un mensaje anterior en este
> foro una idea de José Alfonso Suarez Moreno que dice asi: SELECT
> count(*) AS hay_registros FROM tabla WHERE codigo="23" ,Si hay_registros
> es != 0 es que hay al menos una fila con el valor 23 en el campo codigo,
> pero no me queda claro qué indice se está utilizando o si se esta
> recorriendo toda la tabla secuencialmente para encontrar el valor.
>
> 3) Crear un indice cuya clave esta formada por campos numéricos y
> carácter. INDEX ON str(mi_numero)+mi_caracter TO mi_indice
>
>
> Desde ya muchas gracias
>
> Un saludo
> Daniel
Un Saludo,
Joaquín Martínez
Joaquín Martínez
-
- Mensajes: 266
- Registrado: Mar Oct 28, 2008 4:41 am
Pasando de DBF a MySQL
Te paso algunas sugerencias que yo utilizo en mis proyectos
2) Buscar un determinado registro para saber si existe o no. DBSEEK() preguntando por el valor de retorno o SEEK con su correspondiente FOUND() sobre el indice activo.
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Query("SELECT * FROM Productos where codigo='&Var_codigo' ) //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
::Descripcion:Value=Toma:Descripcion
Etc.....
Endif
Y si quieres Buscar un registro numerico lo puedes hacer asi
Por ejemplo si quieres buscar el numero de un cliente (Logicamente tiene que ser numerico)
El campo se llama numero_cliente con dato numerico y longitud de 8
MemVar Var_cliente
Local Toma
Private Var_cliente
if nKey = 13
Var_cliente=Str(::Numero_Cliente:Value,8)
Toma=::Midb:Query("SELECT * FROM Clientes where numero_cliente='&Var_cliente' ) //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El numero de cliente no existe")
::numero_cliente:Setfocus()
Return .t.
Endif
::Direccion:Value=Toma:Direccion
Etc.....
Endif
Y te digo algo mas.
Es una maravilla trabajar con Mysql, es rapido, estable y seguro en procesar informacion.
E incluso puedes crear archivos indices desde un manipulador de base de datos, o sea al crear tu base de datos y en tus tablas.
De esta manera Xailer toma en cuenta los indices sin necesidad que tu le indiques, y creeme las consultas las hace mucho mas rapidas.
Aun a nuestro pesar, ya es tiempo de dejar a nuestros queridos DBFS.
Cualquier consulta o dudas, estoy a tus ordenes.
Dios te bendiga.
--
2) Buscar un determinado registro para saber si existe o no. DBSEEK() preguntando por el valor de retorno o SEEK con su correspondiente FOUND() sobre el indice activo.
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Query("SELECT * FROM Productos where codigo='&Var_codigo' ) //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
::Descripcion:Value=Toma:Descripcion
Etc.....
Endif
Y si quieres Buscar un registro numerico lo puedes hacer asi
Por ejemplo si quieres buscar el numero de un cliente (Logicamente tiene que ser numerico)
El campo se llama numero_cliente con dato numerico y longitud de 8
MemVar Var_cliente
Local Toma
Private Var_cliente
if nKey = 13
Var_cliente=Str(::Numero_Cliente:Value,8)
Toma=::Midb:Query("SELECT * FROM Clientes where numero_cliente='&Var_cliente' ) //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El numero de cliente no existe")
::numero_cliente:Setfocus()
Return .t.
Endif
::Direccion:Value=Toma:Direccion
Etc.....
Endif
Y te digo algo mas.
Es una maravilla trabajar con Mysql, es rapido, estable y seguro en procesar informacion.
E incluso puedes crear archivos indices desde un manipulador de base de datos, o sea al crear tu base de datos y en tus tablas.
De esta manera Xailer toma en cuenta los indices sin necesidad que tu le indiques, y creeme las consultas las hace mucho mas rapidas.
Aun a nuestro pesar, ya es tiempo de dejar a nuestros queridos DBFS.
Cualquier consulta o dudas, estoy a tus ordenes.
Dios te bendiga.
--
Pasando de DBF a MySQL
Joaquín:
Muchas gracias, me ha quedado muy claro y me ayuda a ir cambiando el chip.
Luego de ver las opciones de SELECT no me queda claro cual es la forma
más optima de saber si existe un dato en un registro para, por ejemplo,
poder hacer la validación a la hora de insertar uno nuevo.
Nuevamente gracias
Un saludo
Joaquín Martínez. escribió:
> Hola Daniel,
>
> Voy a intentar aclararte un poco como funcionan estos casos en SQL.
>
> - SQL no tiene índices activos tal como los conoces en DBF. Es más
> aunque no tuvieras índices podrías buscar lo que quisieras.
> El concepto es:
>
> Pides que campos necesitas ejemplo: SELECT razonsocial, direccion
> indicas de qué tabla estás pidiendo esos campos: FROM clientes
> le indicas un filtro para que te busque solamente los que cumplan la
> condición que buscas:
>
> WHERE codigo='0001" ( Verás que no hace falta traerse ese campo)
>
> o contenido en: WHERE razonsocial LIKE '%GARCIA%'
>
> Y que te devuelva la búsqueda ordenada como tú quieras, incluso sin usar
> índices: ORDER BY razonsocial ASC ó DESC
>
> Como ves puedes pedir lo que quieras, es el motor SQL el que se encarga
> de buscar lo que le pidas.
>
> Quedaría: SELECT razonsocial, direccion FROM clientes
> WHERE razonsocial LIKE '%GARCIA%' ORDER BY razonsocial
>
> Esto es un ejemplo muy básico.Te recomiendo que mires todas las
> posibilidades del comando SELECT y practiques desde el administrador de
> MySQL en tu caso, yo uso personalmente posgresql.
>
> Si necesitas más aclaraciones, ve preguntando e intentaremos aclarártelas.
>
>
> Daniel Du Pré escribió:
>> Hola foro:
>>
>> Estoy intentando dejar el uso de DBF's para cambiar por MySQL y he
>> estado estudiando en varias web de dicho producto, pero no logro
>> hacerme una relación entre algunos conceptos de mis viejas DBF con
>> esta nueva BD, o porque no llegué a algún capítulo donde me quede
>> claro o porque no existen. Entiendo que es bastante diferente la forma
>> de trabajo pero igualmente estoy tratando de buscar las similitudes en
>> cuanto a conceptos.
>> Aquí pongo algunos con su correspondiente comando o función para DBF's
>> y me gustaría que alguien me de una mano para poner el equivalente (si
>> lo hay ) en MySQL.
>>
>> 1) Determinar el índice activo. DBSETORDER() o SET ORDER .....
>>
>> 2) Buscar un determinado registro para saber si existe o no. DBSEEK()
>> preguntando por el valor de retorno o SEEK con su correspondiente
>> FOUND() sobre el indice activo. He visto en un mensaje anterior en
>> este foro una idea de José Alfonso Suarez Moreno que dice asi: SELECT
>> count(*) AS hay_registros FROM tabla WHERE codigo="23" ,Si
>> hay_registros es != 0 es que hay al menos una fila con el valor 23 en
>> el campo codigo, pero no me queda claro qué indice se está utilizando
>> o si se esta recorriendo toda la tabla secuencialmente para encontrar
>> el valor.
>>
>> 3) Crear un indice cuya clave esta formada por campos numéricos y
>> carácter. INDEX ON str(mi_numero)+mi_caracter TO mi_indice
>>
>>
>> Desde ya muchas gracias
>>
>> Un saludo
>> Daniel
Muchas gracias, me ha quedado muy claro y me ayuda a ir cambiando el chip.
Luego de ver las opciones de SELECT no me queda claro cual es la forma
más optima de saber si existe un dato en un registro para, por ejemplo,
poder hacer la validación a la hora de insertar uno nuevo.
Nuevamente gracias
Un saludo
Joaquín Martínez. escribió:
> Hola Daniel,
>
> Voy a intentar aclararte un poco como funcionan estos casos en SQL.
>
> - SQL no tiene índices activos tal como los conoces en DBF. Es más
> aunque no tuvieras índices podrías buscar lo que quisieras.
> El concepto es:
>
> Pides que campos necesitas ejemplo: SELECT razonsocial, direccion
> indicas de qué tabla estás pidiendo esos campos: FROM clientes
> le indicas un filtro para que te busque solamente los que cumplan la
> condición que buscas:
>
> WHERE codigo='0001" ( Verás que no hace falta traerse ese campo)
>
> o contenido en: WHERE razonsocial LIKE '%GARCIA%'
>
> Y que te devuelva la búsqueda ordenada como tú quieras, incluso sin usar
> índices: ORDER BY razonsocial ASC ó DESC
>
> Como ves puedes pedir lo que quieras, es el motor SQL el que se encarga
> de buscar lo que le pidas.
>
> Quedaría: SELECT razonsocial, direccion FROM clientes
> WHERE razonsocial LIKE '%GARCIA%' ORDER BY razonsocial
>
> Esto es un ejemplo muy básico.Te recomiendo que mires todas las
> posibilidades del comando SELECT y practiques desde el administrador de
> MySQL en tu caso, yo uso personalmente posgresql.
>
> Si necesitas más aclaraciones, ve preguntando e intentaremos aclarártelas.
>
>
> Daniel Du Pré escribió:
>> Hola foro:
>>
>> Estoy intentando dejar el uso de DBF's para cambiar por MySQL y he
>> estado estudiando en varias web de dicho producto, pero no logro
>> hacerme una relación entre algunos conceptos de mis viejas DBF con
>> esta nueva BD, o porque no llegué a algún capítulo donde me quede
>> claro o porque no existen. Entiendo que es bastante diferente la forma
>> de trabajo pero igualmente estoy tratando de buscar las similitudes en
>> cuanto a conceptos.
>> Aquí pongo algunos con su correspondiente comando o función para DBF's
>> y me gustaría que alguien me de una mano para poner el equivalente (si
>> lo hay ) en MySQL.
>>
>> 1) Determinar el índice activo. DBSETORDER() o SET ORDER .....
>>
>> 2) Buscar un determinado registro para saber si existe o no. DBSEEK()
>> preguntando por el valor de retorno o SEEK con su correspondiente
>> FOUND() sobre el indice activo. He visto en un mensaje anterior en
>> este foro una idea de José Alfonso Suarez Moreno que dice asi: SELECT
>> count(*) AS hay_registros FROM tabla WHERE codigo="23" ,Si
>> hay_registros es != 0 es que hay al menos una fila con el valor 23 en
>> el campo codigo, pero no me queda claro qué indice se está utilizando
>> o si se esta recorriendo toda la tabla secuencialmente para encontrar
>> el valor.
>>
>> 3) Crear un indice cuya clave esta formada por campos numéricos y
>> carácter. INDEX ON str(mi_numero)+mi_caracter TO mi_indice
>>
>>
>> Desde ya muchas gracias
>>
>> Un saludo
>> Daniel
Pasando de DBF a MySQL
Pedro:
Mil gracias por tu ayuda, estos ejemplos realmente me aclaran mucho.
Y es verdad, aunque en el fondo no quiero, debo ir dejando los DBS's
Un Saludo
PEDRO DE LEON RODAS escribió:
> Te paso algunas sugerencias que yo utilizo en mis proyectos
>
> 2) Buscar un determinado registro para saber si existe o no. DBSEEK()
> preguntando por el valor de retorno o SEEK con su correspondiente
> FOUND() sobre el indice activo.
>
> METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
> MemVar Var_codigo
> Local Toma
> Private Var_codigo
>
> if nKey = 13
> Var_codigo=::Codigo:Value
> Toma=::Midb:Query("SELECT * FROM Productos where
> codigo='&Var_codigo' ) //// Obtengo el registro deseado
> If toma:Reccount()=0 //// Si es cero logicamente quiere decir
> que no existe ese registro
>
> MsgStop("El codigo del producto no existe")
> ::Codigo:Setfocus()
> Return .t.
> Endif
>
> ::Descripcion:Value=Toma:Descripcion
>
> Etc.....
>
> Endif
>
> Y si quieres Buscar un registro numerico lo puedes hacer asi
>
> Por ejemplo si quieres buscar el numero de un cliente (Logicamente tiene
> que ser numerico)
> El campo se llama numero_cliente con dato numerico y longitud de 8
>
>
> MemVar Var_cliente
> Local Toma
> Private Var_cliente
>
> if nKey = 13
> Var_cliente=Str(::Numero_Cliente:Value,8)
> Toma=::Midb:Query("SELECT * FROM Clientes where
> numero_cliente='&Var_cliente' ) //// Obtengo el registro deseado
> If toma:Reccount()=0 //// Si es cero logicamente quiere decir
> que no existe ese registro
>
> MsgStop("El numero de cliente no existe")
> ::numero_cliente:Setfocus()
> Return .t.
> Endif
>
> ::Direccion:Value=Toma:Direccion
>
> Etc.....
>
> Endif
>
>
> Y te digo algo mas.
>
> Es una maravilla trabajar con Mysql, es rapido, estable y seguro en
> procesar informacion.
>
> E incluso puedes crear archivos indices desde un manipulador de base de
> datos, o sea al crear tu base de datos y en tus tablas.
> De esta manera Xailer toma en cuenta los indices sin necesidad que tu le
> indiques, y creeme las consultas las hace mucho mas rapidas.
>
> Aun a nuestro pesar, ya es tiempo de dejar a nuestros queridos DBFS.
>
> Cualquier consulta o dudas, estoy a tus ordenes.
>
> Dios te bendiga.
>
Mil gracias por tu ayuda, estos ejemplos realmente me aclaran mucho.
Y es verdad, aunque en el fondo no quiero, debo ir dejando los DBS's
Un Saludo
PEDRO DE LEON RODAS escribió:
> Te paso algunas sugerencias que yo utilizo en mis proyectos
>
> 2) Buscar un determinado registro para saber si existe o no. DBSEEK()
> preguntando por el valor de retorno o SEEK con su correspondiente
> FOUND() sobre el indice activo.
>
> METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
> MemVar Var_codigo
> Local Toma
> Private Var_codigo
>
> if nKey = 13
> Var_codigo=::Codigo:Value
> Toma=::Midb:Query("SELECT * FROM Productos where
> codigo='&Var_codigo' ) //// Obtengo el registro deseado
> If toma:Reccount()=0 //// Si es cero logicamente quiere decir
> que no existe ese registro
>
> MsgStop("El codigo del producto no existe")
> ::Codigo:Setfocus()
> Return .t.
> Endif
>
> ::Descripcion:Value=Toma:Descripcion
>
> Etc.....
>
> Endif
>
> Y si quieres Buscar un registro numerico lo puedes hacer asi
>
> Por ejemplo si quieres buscar el numero de un cliente (Logicamente tiene
> que ser numerico)
> El campo se llama numero_cliente con dato numerico y longitud de 8
>
>
> MemVar Var_cliente
> Local Toma
> Private Var_cliente
>
> if nKey = 13
> Var_cliente=Str(::Numero_Cliente:Value,8)
> Toma=::Midb:Query("SELECT * FROM Clientes where
> numero_cliente='&Var_cliente' ) //// Obtengo el registro deseado
> If toma:Reccount()=0 //// Si es cero logicamente quiere decir
> que no existe ese registro
>
> MsgStop("El numero de cliente no existe")
> ::numero_cliente:Setfocus()
> Return .t.
> Endif
>
> ::Direccion:Value=Toma:Direccion
>
> Etc.....
>
> Endif
>
>
> Y te digo algo mas.
>
> Es una maravilla trabajar con Mysql, es rapido, estable y seguro en
> procesar informacion.
>
> E incluso puedes crear archivos indices desde un manipulador de base de
> datos, o sea al crear tu base de datos y en tus tablas.
> De esta manera Xailer toma en cuenta los indices sin necesidad que tu le
> indiques, y creeme las consultas las hace mucho mas rapidas.
>
> Aun a nuestro pesar, ya es tiempo de dejar a nuestros queridos DBFS.
>
> Cualquier consulta o dudas, estoy a tus ordenes.
>
> Dios te bendiga.
>
-
- Mensajes: 294
- Registrado: Jue Mar 13, 2008 3:03 pm
Pasando de DBF a MySQL
Pedro,
Cuando eliminas información de la base de datos... ¿Cual es el equivalente al Pack de clipper?
Otra... cuando obtienes un Select y lo visualizas en un browse ¿Puedes hacer una búsqueda incremental?
Yo tambien estoy en el cambio de las DBFs y estoy viendo SqLite, pero no es accesible via internet.
Gracias
Fernando
--
Cuando eliminas información de la base de datos... ¿Cual es el equivalente al Pack de clipper?
Otra... cuando obtienes un Select y lo visualizas en un browse ¿Puedes hacer una búsqueda incremental?
Yo tambien estoy en el cambio de las DBFs y estoy viendo SqLite, pero no es accesible via internet.
Gracias
Fernando
--
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Pasando de DBF a MySQL
Cuando haces un delete en una tabla sql dicho registro desaparece, yo particularmente en algunos casos manejo ESTADOS (Activo o Dado de baja).
Por supuesto que puedes hacer búsquedas incremenales, pues al resultado de un select le puedes tirar a un oDataSet y hacer lo que gustes.
//---------------------------------------------------------- ------------------------------------------------------------ -
METHOD BuscarPorDescripcionDS( cNombre, oDataSet, cFiltro ) CLASS Articulos
//---------------------------------------------------------- ------------------------------------------------------------ -
oDataSet := oDataSet
cNombre := upper(alltrim(cNombre))
cFiltro := if( empty(cFiltro),""," and "+cFiltro )
oDataSet := AppData:oSql:QU("select descripcion, codigo, idArticulo from articulos where descripcion like '"+cNombre+"%'"+cFiltro+" order by descripcion")
RETURN NIL
//---------------------------------------------------------- --------
METHOD QU( cSelect, oDataSet ) CLASS Sql
//---------------------------------------------------------- --------
local aDatos
LimpiarError()
oDataSet:=oDataSet
IF empty(cSelect)
CargarError("Falta el comando SQL a ejecutar")
RETURN {}
ENDIF
oDataSet := AppData:oOdbcDS:Query( cSelect )
RETURN oDataSet
--
Por supuesto que puedes hacer búsquedas incremenales, pues al resultado de un select le puedes tirar a un oDataSet y hacer lo que gustes.
//---------------------------------------------------------- ------------------------------------------------------------ -
METHOD BuscarPorDescripcionDS( cNombre, oDataSet, cFiltro ) CLASS Articulos
//---------------------------------------------------------- ------------------------------------------------------------ -
oDataSet := oDataSet
cNombre := upper(alltrim(cNombre))
cFiltro := if( empty(cFiltro),""," and "+cFiltro )
oDataSet := AppData:oSql:QU("select descripcion, codigo, idArticulo from articulos where descripcion like '"+cNombre+"%'"+cFiltro+" order by descripcion")
RETURN NIL
//---------------------------------------------------------- --------
METHOD QU( cSelect, oDataSet ) CLASS Sql
//---------------------------------------------------------- --------
local aDatos
LimpiarError()
oDataSet:=oDataSet
IF empty(cSelect)
CargarError("Falta el comando SQL a ejecutar")
RETURN {}
ENDIF
oDataSet := AppData:oOdbcDS:Query( cSelect )
RETURN oDataSet
--
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Pasando de DBF a MySQL
Fernando:
En lo poco que yo se, te paso este link que es uno de los que estoy
utilizando para estudiar.
http://mysql.conclase.net/curso/index.php?sen=TRUNCATE
En el podrás encontrar la explicación de una sentencia que según
entiendo es equivalente al PACK.
Saludos
Daniel.
Fernando Leal escribió:
> Pedro,
>
> Cuando eliminas información de la base de datos... ¿Cual es el
> equivalente al Pack de clipper?
> Otra... cuando obtienes un Select y lo visualizas en un browse ¿Puedes
> hacer una búsqueda incremental?
>
> Yo tambien estoy en el cambio de las DBFs y estoy viendo SqLite, pero
> no es accesible via internet.
>
> Gracias
> Fernando
>
En lo poco que yo se, te paso este link que es uno de los que estoy
utilizando para estudiar.
http://mysql.conclase.net/curso/index.php?sen=TRUNCATE
En el podrás encontrar la explicación de una sentencia que según
entiendo es equivalente al PACK.
Saludos
Daniel.
Fernando Leal escribió:
> Pedro,
>
> Cuando eliminas información de la base de datos... ¿Cual es el
> equivalente al Pack de clipper?
> Otra... cuando obtienes un Select y lo visualizas en un browse ¿Puedes
> hacer una búsqueda incremental?
>
> Yo tambien estoy en el cambio de las DBFs y estoy viendo SqLite, pero
> no es accesible via internet.
>
> Gracias
> Fernando
>
-
- Mensajes: 266
- Registrado: Mar Oct 28, 2008 4:41 am
Pasando de DBF a MySQL
Para borrar un registro yo uso los siguientes metodos.
Si deseo borrar varios registros uso lo siguiente
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Execute("Delete FROM productos where codigo='&Var_codigo' ) //// Se borrar varios registros con el mismo codigo del producto
Etc.....
Endif
Si quiero borrar un solo registro, yo uso esto:
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Query("SELECT * FROM Productos where codigo='&Var_codigo' ") //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
Toma:Delete() //// Aqui se borrar el registro
Etc.....
Endif
Hasta donde se en Mysql como en Sqlite se borran fisicamente el registro, o sea no es necesario hacer un Pack como en los DBFS
Espero les sirva estos ejemplos
Dios les Bendiga.
--
Si deseo borrar varios registros uso lo siguiente
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Execute("Delete FROM productos where codigo='&Var_codigo' ) //// Se borrar varios registros con el mismo codigo del producto
Etc.....
Endif
Si quiero borrar un solo registro, yo uso esto:
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Query("SELECT * FROM Productos where codigo='&Var_codigo' ") //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
Toma:Delete() //// Aqui se borrar el registro
Etc.....
Endif
Hasta donde se en Mysql como en Sqlite se borran fisicamente el registro, o sea no es necesario hacer un Pack como en los DBFS
Espero les sirva estos ejemplos
Dios les Bendiga.
--
-
- Mensajes: 294
- Registrado: Jue Mar 13, 2008 3:03 pm
Pasando de DBF a MySQL
Carlos, Daniel, Pedro.
¿Por donde hay que entrarle ?
¿Instalaron un paquete como XAMPP ??
Gracias
Fernando
"PEDRO DE LEON RODAS" <7773613810@prodigy.net.mx> escribió en el mensaje de noticias news:[email=49e22b3d@svctag-j7w3v3j....]49e22b3d@svctag-j7w3v3j....[/email]
Para borrar un registro yo uso los siguientes metodos.
Si deseo borrar varios registros uso lo siguiente
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Execute("Delete FROM productos where codigo='&Var_codigo' ) //// Se borrar varios registros con el mismo codigo del producto
Etc.....
Endif
Si quiero borrar un solo registro, yo uso esto:
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Query("SELECT * FROM Productos where codigo='&Var_codigo' ") //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
Toma:Delete() //// Aqui se borrar el registro
Etc.....
Endif
Hasta donde se en Mysql como en Sqlite se borran fisicamente el registro, o sea no es necesario hacer un Pack como en los DBFS
Espero les sirva estos ejemplos
Dios les Bendiga.
--
¿Por donde hay que entrarle ?
¿Instalaron un paquete como XAMPP ??
Gracias
Fernando
"PEDRO DE LEON RODAS" <7773613810@prodigy.net.mx> escribió en el mensaje de noticias news:[email=49e22b3d@svctag-j7w3v3j....]49e22b3d@svctag-j7w3v3j....[/email]
Para borrar un registro yo uso los siguientes metodos.
Si deseo borrar varios registros uso lo siguiente
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Execute("Delete FROM productos where codigo='&Var_codigo' ) //// Se borrar varios registros con el mismo codigo del producto
Etc.....
Endif
Si quiero borrar un solo registro, yo uso esto:
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=::Midb:Query("SELECT * FROM Productos where codigo='&Var_codigo' ") //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
Toma:Delete() //// Aqui se borrar el registro
Etc.....
Endif
Hasta donde se en Mysql como en Sqlite se borran fisicamente el registro, o sea no es necesario hacer un Pack como en los DBFS
Espero les sirva estos ejemplos
Dios les Bendiga.
--
Pasando de DBF a MySQL
Fernando:
Yo empece por bajarme MySQL desde aquí:
http://www.mysql.com/
Te comento que instalarlo y configurarlo al menos con las opciones por
defecto, me resultó muy fácil, y como manejador de la BD (lo que sería
el equivalente al DBU de Clipper) utilicé lo propio de MySQL, que se
llama MySQL Administrator y MySQL QueryBrowser, Actualmente estoy
probando SQLYog
http://www.webyog.com/en/index.php?ref= ... ty.aboutus
Luego comencé a estudiar aquí:
http://www.maestrosdelweb.com/editorial/tutsql1/
Y también he leído de aquí:
http://www.mysql-hispano.org/
Actualmente estoy estudiando aquí:
http://mysql.conclase.net/curso/index.php?cap=000
Espero que estos links te sirvan a, a mi me están ayudando mucho.
Saludos
Daniel.
Fernando Leal escribió:
> Carlos, Daniel, Pedro.
>
> ¿Por donde hay que entrarle ?
>
> ¿Instalaron un paquete como XAMPP ??
>
> Gracias
> Fernando
>
>
>
>
> "PEDRO DE LEON RODAS" <7773613810@prodigy.net.mx
> <mailto:7773613810@prodigy.net.mx>> escribió en el mensaje de
> noticias news:[email=49e22b3d@svctag-j7w3v3j.....]49e22b3d@svctag-j7w3v3j.....[/email]
> Para borrar un registro yo uso los siguientes metodos.
>
> Si deseo borrar varios registros uso lo siguiente
>
> METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
> MemVar Var_codigo
> Local Toma
> Private Var_codigo
>
> if nKey = 13
> Var_codigo=::Codigo:Value
> Toma=::Midb:Execute("Delete FROM productos where
> codigo='&Var_codigo' ) //// Se borrar varios registros con el mismo
> codigo del producto
> Etc.....
>
> Endif
>
>
> Si quiero borrar un solo registro, yo uso esto:
>
> METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
> MemVar Var_codigo
> Local Toma
> Private Var_codigo
>
> if nKey = 13
> Var_codigo=::Codigo:Value
> Toma=::Midb:Query("SELECT * FROM Productos where
> codigo='&Var_codigo' ") //// Obtengo el registro deseado
> If toma:Reccount()=0 //// Si es cero logicamente quiere
> decir que no existe ese registro
>
> MsgStop("El codigo del producto no existe")
> ::Codigo:Setfocus()
> Return .t.
> Endif
>
> Toma:Delete() //// Aqui se borrar el registro
> Etc.....
>
> Endif
>
>
> Hasta donde se en Mysql como en Sqlite se borran fisicamente el
> registro, o sea no es necesario hacer un Pack como en los DBFS
>
> Espero les sirva estos ejemplos
>
> Dios les Bendiga.
>
Yo empece por bajarme MySQL desde aquí:
http://www.mysql.com/
Te comento que instalarlo y configurarlo al menos con las opciones por
defecto, me resultó muy fácil, y como manejador de la BD (lo que sería
el equivalente al DBU de Clipper) utilicé lo propio de MySQL, que se
llama MySQL Administrator y MySQL QueryBrowser, Actualmente estoy
probando SQLYog
http://www.webyog.com/en/index.php?ref= ... ty.aboutus
Luego comencé a estudiar aquí:
http://www.maestrosdelweb.com/editorial/tutsql1/
Y también he leído de aquí:
http://www.mysql-hispano.org/
Actualmente estoy estudiando aquí:
http://mysql.conclase.net/curso/index.php?cap=000
Espero que estos links te sirvan a, a mi me están ayudando mucho.
Saludos
Daniel.
Fernando Leal escribió:
> Carlos, Daniel, Pedro.
>
> ¿Por donde hay que entrarle ?
>
> ¿Instalaron un paquete como XAMPP ??
>
> Gracias
> Fernando
>
>
>
>
> "PEDRO DE LEON RODAS" <7773613810@prodigy.net.mx
> <mailto:7773613810@prodigy.net.mx>> escribió en el mensaje de
> noticias news:[email=49e22b3d@svctag-j7w3v3j.....]49e22b3d@svctag-j7w3v3j.....[/email]
> Para borrar un registro yo uso los siguientes metodos.
>
> Si deseo borrar varios registros uso lo siguiente
>
> METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
> MemVar Var_codigo
> Local Toma
> Private Var_codigo
>
> if nKey = 13
> Var_codigo=::Codigo:Value
> Toma=::Midb:Execute("Delete FROM productos where
> codigo='&Var_codigo' ) //// Se borrar varios registros con el mismo
> codigo del producto
> Etc.....
>
> Endif
>
>
> Si quiero borrar un solo registro, yo uso esto:
>
> METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
> MemVar Var_codigo
> Local Toma
> Private Var_codigo
>
> if nKey = 13
> Var_codigo=::Codigo:Value
> Toma=::Midb:Query("SELECT * FROM Productos where
> codigo='&Var_codigo' ") //// Obtengo el registro deseado
> If toma:Reccount()=0 //// Si es cero logicamente quiere
> decir que no existe ese registro
>
> MsgStop("El codigo del producto no existe")
> ::Codigo:Setfocus()
> Return .t.
> Endif
>
> Toma:Delete() //// Aqui se borrar el registro
> Etc.....
>
> Endif
>
>
> Hasta donde se en Mysql como en Sqlite se borran fisicamente el
> registro, o sea no es necesario hacer un Pack como en los DBFS
>
> Espero les sirva estos ejemplos
>
> Dios les Bendiga.
>
-
- Mensajes: 266
- Registrado: Mar Oct 28, 2008 4:41 am
Pasando de DBF a MySQL
Fernando, Saludos.
Te dejo este link, es bueno para la instalacion de Mysql
http://www.ajpdsoft.com/modules.php?nam ... file=artic le&sid=137
Y esto lo puedes poner en tu formulario Principal:
AppData:AddData( "DBabarrotes", "")
WITH OBJECT ::Mi_bd
:cHost:="localhost" /////// esto es para que lo trabajes en tu pc
o sea localmente
:cDatabase:="abarrotes" ////// nombre de la base de datos
:cUser:="root" //// El usuario
:cPassword:="password" //// aqui escribe el password que pusistes al
instalar Mysql
IF !:Connect()
MSGSTOP('Error al Conectar a la Base de Datos ','Error')
QUIT
else
msginfo("Se ha conectado con el servidor")
ENDIF
// Variable con la conexion a la base da datos para usar en todos los
formularios
AppData:AddData( "DBabarrotes",::Mi_bd)
END WITH
Para esto en tu formulario principal tienes que agregar un TmysqlDataSource
por ejemplo que se llame Mi_bd
Solo pones el nombre ( Mi_bd ) o lo que tu quieras poner.
Despues en tus formularios agregas un TsqlQuery o TsqlTable y pones en
OnInitialize lo siguiente:
Si usas TsqlTable pones
::oTsqlTable:oDataSource=AppData:DBabarrotes
::oTsqlTable:lOpen=.t.
O si usas TsqlQuery pones
::oTsqlQuery:oDataSource=AppData:DBabarrotes
Te pongo este ejemplo con Tsqlquery que en cVarname se llame proceso
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
::Proceso:lOpen=.f.
::Proceso:Query("SELECT * FROM Productos where codigo='&Var_codigo' ) ////
Obtengo el registro deseado
::Proceso:lOpen=.t
..
If ::Proceso:Reccount()=0 //// Si es cero logicamente quiere decir
que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
::Descripcion:Value=Toma:Descripcion
Etc.....
Endif
Ahora si tomas el ejemplo con una varible de memoria seria asi:
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=AppData:Dbabarotes:Query("SELECT * FROM Productos where
codigo='&Var_codigo' ) //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que
no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
::Descripcion:Value=Toma:Descripcion
Etc.....
Endif
Espero no enredarme en la explicacion.
Dios les bendiga.
Te dejo este link, es bueno para la instalacion de Mysql
http://www.ajpdsoft.com/modules.php?nam ... file=artic le&sid=137
Y esto lo puedes poner en tu formulario Principal:
AppData:AddData( "DBabarrotes", "")
WITH OBJECT ::Mi_bd
:cHost:="localhost" /////// esto es para que lo trabajes en tu pc
o sea localmente
:cDatabase:="abarrotes" ////// nombre de la base de datos
:cUser:="root" //// El usuario
:cPassword:="password" //// aqui escribe el password que pusistes al
instalar Mysql
IF !:Connect()
MSGSTOP('Error al Conectar a la Base de Datos ','Error')
QUIT
else
msginfo("Se ha conectado con el servidor")
ENDIF
// Variable con la conexion a la base da datos para usar en todos los
formularios
AppData:AddData( "DBabarrotes",::Mi_bd)
END WITH
Para esto en tu formulario principal tienes que agregar un TmysqlDataSource
por ejemplo que se llame Mi_bd
Solo pones el nombre ( Mi_bd ) o lo que tu quieras poner.
Despues en tus formularios agregas un TsqlQuery o TsqlTable y pones en
OnInitialize lo siguiente:
Si usas TsqlTable pones
::oTsqlTable:oDataSource=AppData:DBabarrotes
::oTsqlTable:lOpen=.t.
O si usas TsqlQuery pones
::oTsqlQuery:oDataSource=AppData:DBabarrotes
Te pongo este ejemplo con Tsqlquery que en cVarname se llame proceso
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
::Proceso:lOpen=.f.
::Proceso:Query("SELECT * FROM Productos where codigo='&Var_codigo' ) ////
Obtengo el registro deseado
::Proceso:lOpen=.t
..
If ::Proceso:Reccount()=0 //// Si es cero logicamente quiere decir
que no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
::Descripcion:Value=Toma:Descripcion
Etc.....
Endif
Ahora si tomas el ejemplo con una varible de memoria seria asi:
METHOD CODIGOKeyDown( oSender, nKey, nFlags ) CLASS CAPTURA_INVENTARIO
MemVar Var_codigo
Local Toma
Private Var_codigo
if nKey = 13
Var_codigo=::Codigo:Value
Toma=AppData:Dbabarotes:Query("SELECT * FROM Productos where
codigo='&Var_codigo' ) //// Obtengo el registro deseado
If toma:Reccount()=0 //// Si es cero logicamente quiere decir que
no existe ese registro
MsgStop("El codigo del producto no existe")
::Codigo:Setfocus()
Return .t.
Endif
::Descripcion:Value=Toma:Descripcion
Etc.....
Endif
Espero no enredarme en la explicacion.
Dios les bendiga.
-
- Mensajes: 24
- Registrado: Dom Jun 05, 2005 6:16 pm