PDA

Ver la Versión Completa : Reemplazo del locate en SQL Server


BlueSteel
24-09-2007, 18:57:57
Hola..

no sabia que titulo poner.. espero que sea el adecuado...

bueno, les cuento.. tube un problemilla con un sistema que habia realizado hace un par de años donde utilizaba tablas planas...

mi consulta en que cuando ingresaba un dato utilizaba este codigo para verificar si estaba o no


If Locate('Clave',cClave,[]) Then
ShowMessage('Ingreso ya se realizó')
Else
ShowMessage('Puede Ingresar');


bueno y quisiera saber si existe una forma de preguntar que sea como la anterior.. actualmente estoy utilizando esta


AQ_Edit.Close;
AQ_Edit.SQL.Clear;
AQ_Edit.SQL.Add('Select * From Personal');
AQ_Edit.SQL.Add('Where Per_Nro =:Var1');
AQ_Edit.Parameters[0].Value := vNro.Text;
AQ_Edit.Open;

If AQ_Edit.Eof Then
ShowMessage('Ingreso ya se realizó')
Else
ShowMessage('Puede Ingresar');


bueno.. espero me puedan ayudar.. ahh.. estoy con Delphi 7 - SQL Server 2000 y utilizo ADO:D

poliburro
24-09-2007, 19:29:49
Es correcta la manera en que lo haces, aunque si estás usando Sql server no te vendría mal aprovechar el uso de Stored procedures.


tu misma consulta



With AQ_Edit Do
Begin
Close;
SQL.Text := 'Select Count(*) From Personal Where Per_Nro =:Var1';
Parameters[0].Value := vNro.Text;
Open;
If fields[0].AsInteger > 0 Then
ShowMessage('Ingreso ya se realizó')
Else
ShowMessage('Puede Ingresar');
End

luisgutierrezb
24-09-2007, 19:30:47
Solo modificaria tu condicion:

If Not AQ_Edit.isEmpty Then

y listo, lo demas se queda igual

sinalocarlos
24-09-2007, 20:48:55
solo como comentario:

el "If Not AQ_Edit.isEmpty" cuando usas count siempre te regresa FALSE

ContraVeneno
24-09-2007, 23:22:08
porque cuando usas count, siempre te regresa un resultado.. mínimo cero, pero siempre te regresa algo y por eso "isEmpty" siempre es falso...