![]() |
Problemas con BDE (SQL)
Hola,
Tengo un programa en el cual abro una consulta de un dbf desde el bde, la sentencia sql es como sigue: select * from cab_com,lincom where cab_com.ser_doc = lin_com.ser_doc and cab_com.num_doc = lin_com.num_doc los tipos de los campos son los siguientes ser_doc = character 3 posiciones largo num_doc = numerico 6 posiciones largo el resultado de esta consulta es : ser_doc num_doc cod_art cantidad Precio A 100 10 10 10.00 A 101 55 5 25.00 A 103 88 7 35.00 pero resulta que el resultado debería ser : ser_doc num_doc cod_art cantidad Precio A 100 10 10 10.00 A 101 55 5 25.00 102 62 8 27.50 A 103 88 7 35.00 El problema es: No encuenta los documentos cuya serie es blanco o nulo !!! Probe lo mismo con visual foxpro y me da el resultado correcto Interpreta distinto la sentencia ? cab_com.ser_doc = lin_com.ser_doc cuando son nulos o blancos los valores de los campos ? tengo la necesidad de resolver esto a la brevedad desde ya muchas gracias por vuestra ayuda |
Intenta cambiar
where cab_com.ser_doc = lin_com.ser_doc por where (cab_com.ser_doc = lin_com.ser_doc or cab_com.ser_doc is null) // Saludos |
Hola,
lo probe y funciono, ahora bien: no entendi el porque solamente hacer cab_com.ser_doc is null y no haces el lin_com.ser_doc is null ? como hace la comparacion el BDE ? muchas gracias por tu respuesta Saludos |
Cita:
Lo que hay que saber aquí es que null es un valor especial por lo que las comparaciones de igualdad con null siempre dan false (al menos en el estándard) y por ello hay que usar el operador IS. // Saludos |
Hola,
Muchas gracias por tu respuesta. Saludos |
La franja horaria es GMT +2. Ahora son las 13:11:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi