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 11-11-2003
Javier_A Javier_A is offline
Miembro
 
Registrado: oct 2003
Ubicación: Valencia
Posts: 93
Poder: 21
Javier_A Va por buen camino
Un indice compuesto por dos campos

Estoy intentando acceder a una tabla, ( por BDE ),que su indice esta --- compuesto por 2 items ---- y no logro acceder a ningun registro a no ser que me monte una lectura secuencial.
Que tengo que ponerle al SetKey o FindKey o Locate o Findnereast para que pueda utilizar ese puñetero indice( formado por dos campos) que me esta poniendo de los nervios.

Un saludo a todos
Responder Con Cita
  #2  
Antiguo 11-11-2003
Avatar de JavierB
JavierB JavierB is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 99
Poder: 22
JavierB Va por buen camino
Hola, Javier_A.
Código:
Has probado con: FindKey(['ValorCampo1','ValorCampo2']);
Saludos,
__________________
Lo importante no es saber, sino tener el e-mail del que sabe.
Responder Con Cita
  #3  
Antiguo 11-11-2003
Javier_A Javier_A is offline
Miembro
 
Registrado: oct 2003
Ubicación: Valencia
Posts: 93
Poder: 21
Javier_A Va por buen camino
Gracias por contestar JavierB,

Ya he probado .... FindKey(['ValorCampo1','ValorCampo2']);
y no ha habido ningun resultado, quiero decir que Findkey es una funcion boleana que devuelve True , si encuentra el dato y False en caso contrario, y no hay manera, el resultado siempre es False y el registro que me saca es aleatorio.


Gracias de nuevo y un saludo
Responder Con Cita
  #4  
Antiguo 12-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Pon un trozo de código para ver en que te estás equibocando, porque FindKey funciona bien

Mira que la tabla esté indexada por los campos de búsqueda
Responder Con Cita
  #5  
Antiguo 12-11-2003
Javier_A Javier_A is offline
Miembro
 
Registrado: oct 2003
Ubicación: Valencia
Posts: 93
Poder: 21
Javier_A Va por buen camino
Hola Cadetill
Aqui te envio una muestra:

La instruccion Table1.gotokey no la ejecuta porque no encuentra nada en el FindKey

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Active:=True;
Table1.IndexFieldNames:='EMPRES;CLCODI';
if Table1.FindKey([001,116])then
Table1.gotoKey
end;

Quizas el problema se encuentre en que tanto EMPRES como CLCODI forman un solo indice en el AS400( Un fichero logico ), y no se puede acceder como si fuesen dos indices, ( creo yo, pero no estoy muy seguro).
No obstante, ahora voy a probar mandando SQL's, a ver que tal de velocidad, pues ni la lectura secuencial, (While), ni los filtros son practicos para el software que estoy desarrollando.
Si encuentras o averiguas algo, comentamelo.

Un millon de gracias....Javier
Responder Con Cita
  #6  
Antiguo 12-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
mmmm, no no, eso funciona muy bien en el As400

Supongo que el problema será que 'EMPRES' es de tipo alfanumérico, por lo que el FindKey debería de quedar así

Código:
if Table1.FindKey(['001',116])then
osea, encerrado entre comillas.

Nota1: recuerda que cualquier valor de cadena, ha de ir entrecomillado
Nota2: el FindKey, a parte de decirte si existe o no, también se te posiciona en el registro, por lo que no es necesario el GotoKey
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


La franja horaria es GMT +2. Ahora son las 02:30:38.


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