Como podria obtener lo mismo programando para SQL???

10/07/2003 - 19:21 por Marcelo Rodrigo Sosa | Informe spam
Hola compañeros, cual seria el codigo equivalente para obtener lo siguiente
programando para cliente / servidor (para SQL).

if seek(clave,'mitabla','miclave')
? registro encontrado
else
? no exite el registro
endif

Digo por que me dijeron que la funcion seek() no sirve para programar
cliente/servidor por el solo hecho que no existe en SQL.
Desde ya muchas gracias.
Saludos.

Preguntas similare

Leer las respuestas

#1 Fernando España
10/07/2003 - 17:43 | Informe spam
if exists(Select 1 from tu_tabla where clave=tu_clave)
begin
print 'Registro Encontrado'
end
else
Begin
print 'Registro NO Encontrado'
end


"Marcelo Rodrigo Sosa" wrote in message
news:
Mostrar la cita
siguiente
Mostrar la cita
#2 Fernando España
10/07/2003 - 20:37 | Informe spam
La funcion me parece muy buena, pero creo que estarias sub utilizando las
condiciones de trabajo en SQL Server, a mi criterio, deberias de tomar en
cuenta primero que es lo que necesitas realizar con ese tipo de consultas.
Podriamos pensar asi:

Supon que lo que necesitas es validar la existencia de ese registro para
permitir algun tipo de insercion de datos o modificacion de los mismos,+
podrias implmentas en el trigger respectivo el siguiente codigo:

if exists(select 1 from tu_tabla where tu_condicion)
** esta linea evaluara que exista el registro que necesitas, si la
expresion se evalua, seguidamente usas la instruccion
** contenida entre un begin y un end, para realizar la accion, en caso
se cumpla la condicion.

begin
print 'si existe' -- Aca puedes colocar el codigo
adicional
end


Por otro lado, si lo que necesitas es evaluar desde tu aplicacion la
existencia de esa informacion, para efectos unicamente de informacion, no de
manipulacion de datos, porque eso seria mejor hacerlo lado servidor, puedes
implementarlo con SQLPrepare y SQL exec, enviando dentro de la sentencia SQl
la
misma cadena IF EXISTS( Select) seguido del begin y end, y devolver a VFP un
conjunto de resultados.

Esto te garantizo sera mucho mas rapido que cualquier funcion adicional que
puedas implementar, y tener que pasar, N cantidad de registros por la red a
un cursor local de vfp y alli realizar tu busqueda.

Saludos.

Fernando España






"José G. Samper" wrote in message
news:
Mostrar la cita
cero
Mostrar la cita
encuentra
Mostrar la cita
mensaje
Mostrar la cita
#3 José G. Samper
10/07/2003 - 22:38 | Informe spam
Hola Fernando como estas, Gracias por la explicación, pero creo que esta
definición de la función esta errada

Mostrar la cita
que
Mostrar la cita
a
Mostrar la cita
Esta función no trae todos los datos desde SQL y luego los busca en el
cursor fox, lo que hace es que buscar información necesaria de un registro
por campo clave ya sea en fox o sql, me explico

Supongamos que queremos elaborar un procedimiento que trae la información de
varias tablas que te debe funcionar tanto para fox como para sql.

si lo elaboras en fox seria
use mitabla alias mialias in 0 again shared
if seek(clave,'mialias','miindice')
*** manejo de la información
lcosto=mialias.costo
endif

si lo elaboras en sql seria
If sqlexec(pConexion,'select * from mitabla where
campoclave=?clave','mialias')>1
*** manejo de la información
lcosto=mialias.costo
endif

lo que hace esta funcion es traer la información requerida del registro
independientemente estes en fox o en sql

if
FindRegistro('mitabla','mialias',pConexion,'miindice','campoclave','clave')>
0
*** manejo de la información
lcosto=mialias.costo
endif

A mi me ha resultado muy util para la elaboración de procesos que sean
corran tanto en fox como para sql, de esta forma no tengo que elaborar
código por separado

Saludos

Jóse G. Samper
Microsoft Visual FoxPro MVP - Venezuela

"Fernando España" escribió en el mensaje
news:#
Mostrar la cita
de
Mostrar la cita
puedes
Mostrar la cita
SQl
Mostrar la cita
un
Mostrar la cita
que
Mostrar la cita
a
Mostrar la cita
sea
Mostrar la cita
#4 José G. Samper
10/07/2003 - 23:24 | Informe spam
Fernando, realmente tienes toda la razón del mundo con respecto al buen uso
de SQL, pero hay veces que tengo que desarrollar código que corra igual
tanto para fox como para Sql, tu sabes que el cliente siempre tiene la razón
y hay veces que ni modo si el lo pide asi, se le desarrolla.

Muchisimas gracias y Saludos

Jóse G. Samper
Microsoft Visual FoxPro MVP - Venezuela


"Fernando España" escribió en el mensaje
news:
Mostrar la cita
trabajando
Mostrar la cita
necesidad,
Mostrar la cita
esta
Mostrar la cita
adicional
Mostrar la cita
información
Mostrar la cita
FindRegistro('mitabla','mialias',pConexion,'miindice','campoclave','clave')>
Mostrar la cita
para
Mostrar la cita
mismos,+
Mostrar la cita
sentencia
Mostrar la cita
adicional
Mostrar la cita
segun
Mostrar la cita
que
Mostrar la cita
+;
Mostrar la cita
#5 Fernando España
11/07/2003 - 02:11 | Informe spam
tienes razon, solo que como el señor dijo SQL, por eso.

saludos,
F. España

"José G. Samper" wrote in message
news:%
Mostrar la cita
uso
Mostrar la cita
razón
Mostrar la cita
mensaje
Mostrar la cita
la
Mostrar la cita
registro
Mostrar la cita
FindRegistro('mitabla','mialias',pConexion,'miindice','campoclave','clave')>
Mostrar la cita
utilizando
Mostrar la cita
tomar
Mostrar la cita
la
Mostrar la cita
en
Mostrar la cita
informacion,
Mostrar la cita
a
Mostrar la cita
la
Mostrar la cita
pValor
Mostrar la cita
el
Mostrar la cita
lo
Mostrar la cita
Ads by Google
Search Busqueda sugerida