FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Findkey
Saludos:
Tengo un sistema con tablas paradox, tengo el problema de que al hacer un findkey a un articulo nunca lo encuentra y siempre trata de agregarlo como nuevo entonces me genera un key violation, en la intruccion que uso tengo que si lo encuantra edite el registro pero nunca entra aqui, la llave de la tabla es el codigo del articulo. Espero haberme dado a entender. De antemano muchas gracias. |
#2
|
||||
|
||||
Pues si no ejecuta la instrucción del condicional es porque no encontró el registro. ¿Por qué no nos pones esa parte del código aquí para tener una mejor idea?
// Saludos |
#3
|
||||
|
||||
Pues en mi larga vida, nunca he visto fallar a findKey, salvo que IndexName o IndexFieldNames no apunten a la llave primaria.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
||||
|
||||
Reitero lo dicho por mis compañeros, además te digo, abre la tabla con el DatabaseDesktop y asegúrate que el código del artículo está escrito igual que el que tu buscas, puede tener un espacio o un caracter extraño que no estás contemplando.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
Gracias por sus respuestas lo que hago es lo siguiente:
Articulo:=Query1.FieldByName('CodArt').AsString; If MdParadx.TbEc.FindKey([Articulo])Then Begin MdParadx.TbEc.Edit; Operaciones...; MdParadx.TbEc.Post; End Else Begin MdParadx.TbEc.AppendRecord([Articulo,NumeroPedidos]); End; Eso es todo lo que hago. La llave principal es codart de la tabla ec.db. Gracias por su ayuda. |
#6
|
||||
|
||||
Y que tenes en IndexFieldNames o en IndexName??
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
En indexfieldnames es codart(codigo del articulo) y en indexname no tengo nada.
|
#8
|
||||
|
||||
Dale curso a la sugerencia de marcoszorrila. Pon un punto de corte (F5) en la línea
Código:
if MdParadx.TbEc.FindKey([Articulo]) then // Saludos |
#9
|
|||
|
|||
El problema es que eso ya lo hice y si coincide el valor de articulo con el que tengo en la tabla.
Gracias por su ayuda. |
#10
|
||||
|
||||
Hola !
¿Siempre te pasa con el mismo artículo o con artículos diferentes? Saludos! |
#11
|
|||
|
|||
Es con cualquier articulo pero nada mas en esa tabla.
Gracias. |
#12
|
||||
|
||||
¿ Has probado si puedes insertar en esa tabla usando el Database Desktop?
Salu2! |
#13
|
|||
|
|||
Si ya lo intente, y si me pone los articulos siempre y cuando todavia no esten agregados.
Gracias. |
#14
|
||||
|
||||
Pues entonces no sé que te puede estar pasando... . Una sugerencia create de nuevo la tabla no sé igual ya funciona.
Un Saludo! |
#15
|
|||
|
|||
Ya volvi a crear la tabla y sigue iguel, de todos modos muchas gracias.
|
#16
|
||||
|
||||
Hay veces que se tiene que comenzar desde cero (¿A esto se referirá Al González con POC? )
Trata de reproducir el caso a su mínima expresión:
Nota que le pasas al FindKey no una variable sino directamente un string con un valor que sepas que existe. Si recibes el mensaje 'Esto es cosa de duendes' realmente será cosa de duendes pero puedes enviarnos el proyecto reducido como attachment incluida la tabla de diez registros y a ver si le encontramos algo. // Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|