![]() |
Como posicionarme en un registro sin locate?
Tengo una ADOTable, a la cual le hago un locate asi:
si encierro dicha instruccion en un if siempre me da falso, no lo encuentra al parecer porque es un dato de tipo entero y el locate funciona con strings. Como puedo hacer para posicionarme en un registro determinado ya que despues necesito hacer algo asi:
Gracias. |
cambia el valor de la propiedad recno
ADOTable1.recno := i; |
el problema es que tengo que posicionarme en el registro que corresponda a un dato entrado por el usuario en un Edit, p. ej:
Si el usuario pone, n. de trabajador = 8026, tengo que posicionarme en ese registro de la tabla, el cual no se que posicion tiene ya que los numeros de trabajadores no son consecutivos. Espero haberme dado a entender. |
Yo uso "locate" con campos tipo integer sin ningún problema. Lo que tienes que hacer es pasar ese número que teclean en el edit a Integer.
|
si lo hice, la variable numtra es un entero
:(.... tambien trabajas con ADO? |
No, actualmente no trabajo con ADO.
¿Has comprobado que teclean un número válido? |
si claro, hago las pruebas yo mismo
:confused: |
Busca por la función FindKey y similares en la ayuda de Delphi.
A diferencia de Locate, para poder utilizar estas funciones los campos que utilices deben estar indexados. Saludos |
No encuentra ninguno o alguno en especial?
Antes del Locate verifica que la tabla este
|
Locate solo string ???
Locate funciona con todos los tipos de campos.
fijate bien el campo que estas buscando si es realmente el que te interesa y si el valor ingresado existe realmente en tu tabla, ademas si la base de datos es la que piensas que es la que usas y fijate bien todo hehe porque es ilogico lo que expresas aquí. No deberías tener problemas con Locate si realmente existe el valor en el campo donde buscas y la tabla/query donde lo buscas. Código:
if Tabla1.Locate('CAMPO', VARIABLE, [] ) then |
Perdon por la respuesta tardía, me olvidé completamente de éste hilo. La verdad si traté todo lo que me comentan, he usado un Locate docenas de veces :p, y jamás habia tenido problemas (ni con una TTable común, ni con MDOTable que usé alguna vez cuando trabajé con firebird). Asi que yo se lo atribuyo a los ADO o bien a mi base de datos sql server, o tal vez me volví tonto, en fin... Al final lo solucioné con la sugerencia del FindKey de Hector Randolph.
Muchas gracias a todos por su interés. |
| La franja horaria es GMT +2. Ahora son las 16:32:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi