Fråga : Genomträngande SQL 9.5 - den VALDA queryen för odbc - DATERA = ”0000-00-00”,

En programvaruförsäljare som vi använder på arbete, har för en tid sedan givit mig, ODBC tar fram till deras produkter databas som är genomträngande SQL 9.5 (sp2).  Arbetet för förmiddag I på att automatisera den redogöra dataöverföringen från denna programvara till vår redogöra programvara, och har slågit en förmiddag för wall.

I using de genomträngande beställareodbcchaufförerna för 9.50 (sp2) och har försökt detta från fönster boxas, och en linux boxas genom att använda unixODBC med psqllinuxen client.

In den genomträngande dben, det finns en DATERA sätter in itu att redogöra bordlägger som indikerar, om en fakturera har överförts (till det annat bokföringssystemet), eller om det är den oavgjorda överföringen.  Förmiddag I, efter de pending transfer.

When fakturera har överförts DATERA, sätter in i tvåna som redogör, bordlägger befolkas med datera av transfer.
This är var jag har slågit väggen.  När fakturera inte överförs, datera är behov för 0000-00-00.
I i stort att query inte-överförd fakturerar i försök för pervasive.
When I att query datera sätter in = ”0000-00-00” är kast per odbcfel.  Är här felet: fel för

SQL: [Genomträngande] [ODBC-beställaren har kontakt] [LNA] [ogiltig genomträngande,], [ODBC-motorn har kontakt], daterar, tid eller tidsstämpeln värderar., SQL påstår 22008 i on-line number

I Googled för myfile.name detta för en timme eller två. I grundar andra har haft samma att utfärda, men ingen solutions.

Here är det konstiga tinget:

When som jag query den genomträngande dben med en SQL, bearbetar, eller från en php skriva sätta inshowsna en värderaof
0000-00-00 för inte-överförd invoices.

When jag går den faktiska pervassive ODBC-motorserveren, och looken på denna sätter in using PervasiveSQLen kontrollerar centrerar applikationen, det visar inte-överförd fakturerar med en datera som:
11/30/0002

I har försökt att query inte-överförd fakturerar using alla sorter av combos till ingen avail.

SELECT * från BORDLÄGGA VAR SÄTTA IN = '0000-00-00'< br/>
SELECT * från BORDLÄGGER VAR SÄTTA IN = '0002-11-30'< br/>
SELECT * från BORDLÄGGA VAR SÄTTA IN är NULL

SELECT * från BORDLÄGGER VAR SÄTTA IN = {D ”0000-00-00”}

SELECT * från BORDLÄGGA VAR SÄTTA IN = {D ”0002-11-30”}

There var antagligen mer SQL-querycombos, men inga fungerade.  De endera kastade ett odbcfel som klagar om datera, formaterar i queryen, eller som nu fungeras med results.

Does som, någon vet av ett lömskt långt runt om denna 0000-00-00, utfärdar?  Finns det ett sådan ting som VALT * FRÅN BORDLÄGGA VAR SÄTTA IN inte är en DATERA eller något annat alternativ? den egentligen pröva förmiddagen för

I att få detta arbete, utan att måste att kontakta programvaruförsäljare.  De var motvilliga att ge mig odbcen och belastar att de inte stöttar den. Ok för förmiddag I med det.  Emellertid om det inte finns något arbete omkring för 0000en-00-00, utfärda, mig gissar mig kunde fråga dem att att göra en ändring till där programvara för att befolka inte-överförd sätter in med ett bogus daterar (1234-01-01) eller något? tankar för

Any eller idéer skulle är stora!

Thanks!
Bob
" klar "

Svar : Genomträngande SQL 9.5 - den VALDA queryen för odbc - DATERA = ”0000-00-00”,

Vad händer antagligen, är att datera befolkas till och med Btrieven har kontakt med utrymmen i stället för ett giltigt värderar.  Värdera 00-00-0000 är ogiltig enligt ODBC-specifikationerna.  

Den riktiga lösningen till detta problem är att få programvaruförsäljare att sätta ett giltigt daterar, eller ogiltigt för non-överfört detta sätta in.  

Du kan försök som konverterar datera till en stränga och ser, om du kan begränsa ditåt.  VÄLJ * FRÅN BORDLÄGGA VAR OMVÄNDEN (SÄTTA IN, SQL_CHAR), = ''var värdera mellan singelcitationstecken är 6 utrymmen, till exempel.  Du styrkan måste det olika försök värderar för att se vad fungerar.
Andra lösningar  
 
programming4us programming4us