Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2007
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Como posicionarme en un registro sin locate?

Tengo una ADOTable, a la cual le hago un locate asi:
Código Delphi [-]
ADOTable1.Locate('trabajador',numtra,[]);

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:

Código Delphi [-]
For i := 1 to n do
Begin
ADOTable1.Next;
variable := ADOTable1.FieldByName('nombre').AsString

Gracias.
Responder Con Cita
  #2  
Antiguo 27-12-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
cambia el valor de la propiedad recno
ADOTable1.recno := i;
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 27-12-2007
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 27-12-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
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.
Responder Con Cita
  #5  
Antiguo 27-12-2007
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
si lo hice, la variable numtra es un entero

Código Delphi [-]
numtra := StrToInt(Edit1.text);
ADOTable1.Locate('trabajador',numtra,[]);


.... tambien trabajas con ADO?
Responder Con Cita
  #6  
Antiguo 27-12-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
No, actualmente no trabajo con ADO.

¿Has comprobado que teclean un número válido?
Responder Con Cita
  #7  
Antiguo 27-12-2007
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
si claro, hago las pruebas yo mismo

Responder Con Cita
  #8  
Antiguo 27-12-2007
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
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
Responder Con Cita
  #9  
Antiguo 28-12-2007
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
No encuentra ninguno o alguno en especial?
Antes del Locate verifica que la tabla este
Código Delphi [-]
TAbla.open;
Tabla.filtered:= False;

Última edición por juanlaplata fecha: 28-12-2007 a las 12:24:19.
Responder Con Cita
  #10  
Antiguo 28-12-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
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
MessageBox( Handle, PChar( '¡Tás!' ), PChar( 'Info...' ), MB_ICONWARNING) ;
Saludos y espero lo resuelvas
Responder Con Cita
  #11  
Antiguo 03-01-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Talking

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 , 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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ubicar el siguiente registro de un LOCATE ?? amadis Conexión con bases de datos 2 13-10-2007 15:58:48
Cómo se usa la función Locate? Javi2 Varios 4 25-04-2007 10:52:00
Posicionarme en un registro especifico de un record Carliviris Varios 1 20-11-2006 18:35:41
Posicionarme en un dataset dmagui Conexión con bases de datos 2 29-09-2005 20:06:08
¿Como buscar un registro y posicionarme en una tabla ADO? Repelus Conexión con bases de datos 2 24-02-2004 21:48:13


La franja horaria es GMT +2. Ahora son las 17:51:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi