FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Ayuda Locate
Buenas a todos. Estoy teniendo problema con un locate multiples campos. estoy buscando por dos condiciones que es el episodio y el codigo de items
la tabla es la siguiente: Cita:
La cosa es que si el episodio y el ítem ya existe debería solo modificar el contenido del campo valor de lo contrario deberia insertar todos los campos. Pero de alguna forma siempre pasa por alto de que ya existe y lo intenta crear y de hay me da el error de primary key violation. Estuve buscando y no veo problema alguno en la sentencia: pero aun así no se que me estoy pasando por alto. Cualquier ayuda o comentario será bien acogido. NOTA La tabla esta bajo SQL SERVER 2014 Delphi Xe7/10 |
#2
|
|||
|
|||
Hola steelha,
¿Qué instrucción SQL ejecutas con la orden “DM.QryEpisodioItems.Open”? ¿Has comprado que al ejecutar la instrucción “DM.QryEpisodioItems.Open” aparezcan los registros que intentas buscar? Por otra parte, creo que sería mucho más eficiente buscar directamente con SQL:
|
#3
|
||||
|
||||
Cita:
¿Si ejecutas el SQL Profiler de SQLServer ves la consulta? ¿Cual es?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
La sentencia es la siguiente
y los campos son valores enteros. Coloque un showmessage para verificar que estuviese pasando valores y no ceros y en lo corrector me paso 5,84 el cual ya existe en la db pero aun asi paso a la parte de insertar como nuevo. Última edición por steelha fecha: 28-11-2022 a las 17:38:16. |
#5
|
||||
|
||||
Al fin! Son enteros o flotantes?
Si son flotantes, te comento: Con Delphi muchas veces, he tenido problemas al manejarlos. Trato de no usarlos como llave o identificador de nada a menos que sea estrictamente necesario. Y mas cuando se almacenan en una DB. Ya que el valor decimal que calcula Delphi no es el mismo que obtienes del motor. Aunque en apariencia se vean igual. Cita:
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#6
|
|||
|
|||
Cita:
|
#7
|
||||
|
||||
Cita:
No me cuadra. Porque si la sentencia fuera esa, el código que has puesto aquí (https://www.clubdelphi.com/foros/sho...26&postcount=1) fallaría en el Open, por la falta del parámetro :epi Vuelvo a decirlo mismo.Si pones el profiler de SQLServer verás realmente las sentencias que se ejecutan. El Locate es correcto y debería funcionar. Lo único que se me ocurre es que con la sentencia que estás utilizando al abrir Dm.QryEpisodioItems esos elementos ya no estén (por ejemplo porque está filtrada).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Si en la consulta has cargado, por ejemplo:
Nunca te encontrará nada con un locate por 'EpEpisodio=5 '. (El locate busca entre los resultados de la consulta, no en la BD.) O primero cargas la consulta con EpEpisodio=5 y luego haces el locate, o bien modificas la consulta para ampliarla (quitando el where) o bien la modificas para centrarla y buscas directamente el elemento. Yo en estos casos planto un breakpoint justo antes del locate, copio la consulta, los parámetros y los ejecuto directamente en la BD para ver exactamente lo que saca. |
#9
|
|||
|
|||
Cita:
|
#10
|
||||
|
||||
Cita:
Pasa a veces... A mejorarse.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con Locate y Lookup | cubanbaker | Conexión con bases de datos | 21 | 08-09-2011 17:01:25 |
ayuda con locate | ercrizeporta | Varios | 2 | 21-08-2007 18:12:21 |
Ayuda Con .locate En Delphi 7 | eudy.net | Conexión con bases de datos | 7 | 11-06-2007 14:50:48 |
ayuda con LOCATE | vivamotos | C++ Builder | 4 | 27-08-2006 05:40:46 |
Locate | hgiacobone | Conexión con bases de datos | 6 | 08-07-2003 16:33:49 |
|