Vraag : Doordringende SQL 9.5 - odbc UITGEZOCHTE Vraag - DATUM = „0000-00-00“

Een softwareverkoper die wij op het werk hebben gebruikt heeft onlangs me toegang ODBC tot hun productengegevensbestand gegeven dat Doordringende SQL 9.5 (sp2) is.  Ik werk bij het automatiseren van de overdracht van boekhoudingsgegevens van deze software aan onze boekhoudingssoftware geraakt, en een wall.

I am gebruikend de Doordringende cliënt odbc bestuurders voor 9.50 (sp2), en dit van een venstersvakje geprobeerd, en een linuxvakje die unixODBC met psql linux client.

In Doordringende db gebruiken, is er een gebied van de DATUM in twee rekenschap gevende lijsten die wijzen op als een rekening is overgebracht (aan het andere boekhoudingssysteem), of als het hangende overdracht is.  Ik ben na degenen in afwachting van transfer.

When de rekening het gebied van de DATUM in de twee rekenschap gevende lijsten bevolkt is met de datum van transfer.

This is wordt overgebracht waar ik de muur heb geraakt.  Wanneer de rekening niet wordt overgebracht is de datum/>I fundamenteel behoefte 0000-00-00.
When te vragen die ik heb geprobeerd om te vragen het datumgebied = „0000-00-00“ werpt een odbcfout is.  Hier is de fout: fout

SQL: [Doordringend] [de Interface van de Cliënt ODBC] [LNA] [/> [de Interface van de Motor ODBC] Ongeldige datum Doordringende]
I Googled dit voor een uur of twee. Ik vond anderen de zelfde kwestie hebben gehad, maar geen solutions.

Here is het vreemde ding:

When I vraagt doordringende db met een SQL hulpmiddel of van een php manuscript toont het gebied een waarde of
0000-00-00 voor niet-overgebrachte invoices.

When ik de daadwerkelijke pervassive ODBC motorserver ga, en dit gebied gebruikend de toepassing van PervasiveSQL Control Center bekijk, toont het de niet-overgebrachte rekeningen met een datum zoals:
11/30/0002

I heeft geprobeerd om de niet-overgebrachte rekeningen te vragen nutteloos gebruikend allerlei combos.

SELECT * van LIJST WAAR GEBIED = '0000-00-00'< br/>
SELECT * van LIJST WAAR GEBIED = '0002-11-30'< br/>
SELECT * van LIJST WAAR het GEBIED NULL

SELECT * van LIJST WAAR GEBIED = {D „0000-00-00“}

SELECT * van LIJST is WAAR het GEBIED = {D „0002-11-30“}

There waarschijnlijk meer SQL vraagcombos was, maar niets werkte.  Zij of wierpen een odbcfout klagend over het datumformaat in de vraag, of nu gewerkt met results.

Does iedereen van een stiekeme manier rond deze kwestie 0000-00-00 kent?  Is er zulk een ding UITGEZOCHT * VAN LIJST WAAR het GEBIED niet een DATUM, of een andere optie is?

I am werkelijk dit het werken proberen te krijgen zonder het moeten de softwareverkoper contacteren.  Zij aarzelden om me odbc te geven, en te beklemtonen dat zij het niet steunen. Ik ben o.k. met dat.  Nochtans, als er geen werk rond voor kwestie 0000-00-00 is, veronderstel ik ik hen kon vragen om een verandering in software daar aan te brengen om de niet-overgebrachte gebieden met een valse datum (1234-01-01) of iets te bevolken? de gedachten

Any, of de ideeën zouden groot zijn!

Thanks!
Bob

Antwoord : Doordringende SQL 9.5 - odbc UITGEZOCHTE Vraag - DATUM = „0000-00-00“

Wat waarschijnlijk gebeurt is dat de datum door de interface Btrieve met ruimten in plaats van een geldige waarde wordt bevolkt.  Waarde 00-00-0000 is ongeldig volgens de Specificaties ODBC.  

De juiste oplossing voor dit probleem is de softwareverkoper ertoe te brengen om een geldige datum te zetten of voor dit niet-overgebrachte gebied nietig te verklaren.  

U zou kunnen proberen omzettend de datum in een koord en ziend of kunt u die manier beperken.  Bijvoorbeeld, SELECTEER * UIT LIJST WAAR BEKEERLING (GEBIED, SQL_CHAR) = ''waar de waarde tussen enige citaten 6 ruimten is.  U zou verschillende waarden kunnen moeten proberen om te zien welke werken.
Andere oplossingen  
 
programming4us programming4us