Cuestión : FECHA penetrante del SQL 9.5 - pregunta SELECTA del odbc - = “0000-00-00”

Un proveedor de software que utilizamos en el trabajo recientemente me ha dado el acceso de ODBC a su base de datos de los productos que es SQL penetrante 9.5 (sp2).  Estoy trabajando en la automatización de la transferencia de los datos contables de este software a nuestros programas informáticos de contabilidad, y he golpeado un wall.

I usar los conductores penetrantes del odbc del cliente para 9.50 (sp2), y he intentado esto de una caja de ventanas, y una caja del linux usar unixODBC con el linux client.

In del psql el DB penetrante, hay un campo de la FECHA en dos tablas que consideran que indiquen si se ha transferido una factura (al otro plan contable), o si es transferencia pendiente.  Soy después de los transfer.

When que la factura se transfiere el campo de la FECHA en las dos tablas que consideran se puebla con la fecha del transfer.

This es donde he golpeado la pared.  Cuando la factura no se transfiere la fecha es necesidad de 0000-00-00.
I básicamente de preguntar las facturas no-transferidas en pervasive.
When que intento preguntar el campo de la fecha = “0000-00-00” soy tiros al error del odbc.  Aquí está el error: error del

SQL: [Penetrante] [interfaz] del cliente de ODBC [LNA] fecha del [interfaz del motor de ODBC], hora o valor inválida [penetrante] del reloj fechador., estado 22008 del SQL en myfile.name en la línea number

I Googled esto por una hora o dos. Encontré otros para haber tenido la misma edición, pero no hay solutions.

Here la cosa extraña: el

When pregunto el DB penetrante con una herramienta del SQL o de una escritura del PHP el campo demuestra que un of
0000-00-00 del valor para invoices.

When yo va el servidor pervassive real del motor de ODBC, y que mira este campo usar el uso de PervasiveSQL Control Center, él exhibe las facturas no-transferidas con una fecha como: el
11/30/0002

I ha intentado preguntar las facturas no-transferidas usar todas las clases del

SELECT de los combos inútilmente. * de la TABLA DONDE CAMPO = '0000-00-00'< el Br/>
SELECT * de la TABLA DONDE CAMPO = '0002-11-30'< el Br/>
SELECT * de la TABLA DONDE está NULL

SELECT * de la TABLA DONDE CAMPO = {d “0000-00-00”} el

SELECT * de la TABLA DONDE estaba probablemente más combos el CAMPO = {d “0002-11-30”} el

There de la pregunta del SQL, solamente de ninguna trabajó.  ¿O lanzaron un error del odbc que se quejaba por el formato de fecha en la pregunta, o trabajados con ahora results.

Does cualquier persona saben de una manera ruin alrededor de esta edición 0000-00-00?  ¿Hay una cosa tal como SELECTO * DE LA TABLA DONDE no está una FECHA EL CAMPO, o de otra opción? el

I que intenta realmente conseguir este funcionamiento sin tener que entrar en contacto con al proveedor de software.  Eran renuentes darme el odbc, y tensionan que no lo apoyan. Soy aceptable con ése.  ¿Sin embargo, si no hay trabajo alrededor para la edición 0000-00-00, conjeturo que podría pedirlos para realizar un cambio allí al software para poblar los campos no-transferidos con una fecha falsa (1234-01-01) o algo? ¡los pensamientos del

Any, o las ideas serían grandes! ¡

Thanks!
Bob
class= del

Respuesta : FECHA penetrante del SQL 9.5 - pregunta SELECTA del odbc - = “0000-00-00”

Qué está sucediendo probablemente es que la fecha se está poblando a través del interfaz de Btrieve con los espacios en vez de un valor válido.  El valor 00-00-0000 es inválido según las especificaciones de ODBC.  

La solución apropiada a este problema es conseguir al proveedor de software poner una fecha válida o anular para este campo no-transferido.  

Usted puede ser que intente convertir la fecha a una secuencia y ver si usted puede restringir esa manera.  Por ejemplo, SELECCIONAR * DE LA TABLA DONDE CONVERTIDO (CAMPO, SQL_CHAR) = ''donde está 6 espacios el valor entre los apóstrofes.  Usted puede ser que tenga que intentar diversos valores para ver qué trabaja.
Otras soluciones  
 
programming4us programming4us