Questione : DATA di SQL dominante 9.5 - domanda PRESCELTA del odbc - = “0000-00-00„

Un fornitore di software che usiamo sul lavoro recentemente mi ha dato l'accesso di ODBC alla loro base di dati dei prodotti che è SQL dominante 9.5 (sp2).  Sto lavorando ad automatizzare il trasferimento di dati contabili da questo software nel nostro software di contabilità ed ho colpito un wall.

I using i driver dominanti del odbc del cliente per 9.50 (sp2) ed ho provato questo da una scatola di finestre e una scatola di linux using unixODBC con il linux client.

In dello psql il db dominante, ci è un campo della DATA in due tabelle di stima che indicano se una fattura sia stata trasferita (all'altro sistema contabile), o se è trasferimento in corso.  Sono dopo quei transfer.

When che la fattura è trasferita il campo della DATA nelle due tabelle di stima è popolata con la data del transfer.

This è dove ho colpito la parete.  Quando la fattura non è trasferita la data è basicamente necessità di 0000-00-00.
I di interrogare le fatture non-trasferite in pervasive.
When che provo ad interrogare il campo della data = “0000-00-00„ sono tiri un l'errore del odbc.  Qui è l'errore: errore del

SQL: [Dominante] [interfaccia] del cliente di ODBC [LNA] data del [interfaccia del motore di ODBC], ora o valore non valida [dominante] del timestamp., condizione 22008 di SQL in myfile.name sulla linea number

I Googled questo per un'ora o due. Ho trovato altri per avere la stessa edizione, ma non c'è nessun solutions.

Here la cosa sconosciuta:

When interrogo il db dominante con un attrezzo di SQL o da uno scritto del PHP il campo mostra che un of
0000-00-00 di valore per invoices.

When io va l'assistente pervassive reale del motore di ODBC ed esamina questo campo using l'applicazione di PervasiveSQL Control Center, esso visualizza le fatture non-trasferite con una data come: il
11/30/0002

I ha provato ad interrogare le fatture non-trasferite using tutti i generi di

SELECT di combos inutilmente. * dalla TABELLA DOVE CAMPO = '0000-00-00'< Br/>
SELECT * dalla TABELLA IN CUI CAMPO = '0002-11-30'< Br/>
SELECT * dalla TABELLA IN CUI IL CAMPO è NULL

SELECT * dalla TABELLA IN CUI CAMPO = {d “0000-00-00„}

SELECT * dalla TABELLA IN CUI IL CAMPO = {d “0002-11-30„}

There era probabilmente più combos di domanda di SQL, ma da nessun ha funzionato.  O hanno gettato un errore del odbc che protesta circa la disposizione di data nella domanda, o funzionati con ora results.

Does chiunque sanno di un senso sneaky intorno a questa edizione 0000-00-00?  È ci una cosa come PRESCELTO * DALLA TABELLA IN CUI IL CAMPO non è una DATA, o da qualunque altra opzione? il

I realmente che prova ad ottenere questo funzionamento senza dovere mettersi in contatto con il fornitore di software.  Erano riluttanti a darmi il odbc e sollecitano che non lo sostengono. Sono giusto con quello.  Tuttavia, se non ci è lavoro intorno per l'edizione 0000-00-00, indovino che potrei chiedere loro per fare un cambiamento là a software per popolare i campi non-trasferiti con una data simulata (1234-01-01) o qualcosa? i pensieri del

Any, o le idee sarebbero grandi!

Thanks!
Bob
class= del

Risposta : DATA di SQL dominante 9.5 - domanda PRESCELTA del odbc - = “0000-00-00„

Che cosa probabilmente sta accadendo è che la data sta popolanda attraverso l'interfaccia di Btrieve con gli spazi anziché un valore valido.  Il valore 00-00-0000 è non valido secondo le specifiche di ODBC.  

La soluzione adeguata a questo problema è di convincere il fornitore di software a mettere una data valida o ad annullare per questo campo non-trasferito.  

Potreste provare a convertire la data in stringa ed a vedere se potete limitare quel senso.  Per esempio, SELEZIONARE * A PARTIRE DALLA TABELLA IN CUI CONVERTITO (CAMPO, SQL_CHAR) = ''dove il valore fra le singole citazioni è 6 spazi.  Potreste dovere provare i valori differenti per vedere che cosa funziona.
Altre soluzioni  
 
programming4us programming4us