Question : DATE de SQL dominante 9.5 - question CHOISIE d'odbc - = « 0000-00-00 »

Un fournisseur de logiciel que nous employons au travail m'a récemment donné l'accès d'ODBC à leur base de données de produits qui est SQL dominant 9.5 (sp2).  Je travaille à automatiser le transfert de données comptables à partir de ce logiciel à notre logiciel de comptabilité, et ai frappé un wall.

I AM using les conducteurs dominants d'odbc de client pour 9.50 (sp2), et ai essayé ceci d'une boîte de fenêtres, et une boîte de Linux using l'unixODBC avec le Linux client.

In de psql le DB dominant, il y a un champ de DATE dans deux tables de comptabilité qui indiquent si une facture a été transférée (à l'autre plan de comptable), ou si c'est transfert en suspens.  Je suis après ceux transfer.

When que la facture est transférée le champ de DATE dans les deux tables de comptabilité est peuplée avec la date du transfer.

This est où j'ai frappé le mur.  Quand la facture n'est pas transférée la date est le besoin de 0000-00-00.
I fondamentalement de questionner les factures non-transférées dans pervasive.
When que j'essaye de questionner le champ de date = « 0000-00-00 » est des jets par erreur d'odbc.  Voici l'erreur : erreur du

SQL : [Dominant] [interface de client d'ODBC] [LNA] date du [interface de moteur d'ODBC], heure ou valeur inadmissible [dominante] d'horodateur., état 22008 de SQL dans myfile.name sur la ligne number

I Googled ceci pendant une heure ou deux. J'ai trouvé d'autres pour avoir eu la même issue, mais aucun solutions.

Here n'est la chose étrange : le

When je questionne le DB dominant avec un outil de SQL ou d'un manuscrit de PHP le champ montre qu'un of
0000-00-00 de valeur pour invoices.

When je vont le le serveur pervassive réel de moteur d'ODBC, et regardent ce champ using l'application de PervasiveSQL Control Center, il montre les factures non-transférées avec une date comme : le
11/30/0002

I ont essayé de questionner les factures non-transférées using toutes sortes de

SELECT * de la TABLE OÙ CHAMP = '0000-00-00'< le Br/>
SELECT * de TABLE OÙ CHAMP = '0002-11-30'< le Br/>
SELECT * de la TABLE OÙ LE CHAMP est NULL

SELECT * de TABLE OÙ CHAMP = {d « 0000-00-00 »} le

SELECT * de la TABLE OÙ LE CHAMP = {d « 0002-11-30 »} le

There étaient probablement plus de combos de question de SQL, mais d'aucune a travaillé.  Ils ou ont jeté une erreur d'odbc se plaignant au sujet du format de date dans la question, ou est-ce que travaillés avec maintenant results.

Does n'importe qui savent d'une manière sneaky autour de cette issue 0000-00-00 ?  Y a-t-il une chose telle que CHOISI * DE LA TABLE OÙ LE CHAMP n'est pas une DATE, ou d'une autre option ? le

I AM essayant vraiment d'obtenir ce fonctionnement sans devoir contacter le fournisseur de logiciel.  Ils étaient peu disposés à me donner l'odbc, et soumettent à une contrainte qu'ils ne le soutiennent pas. Je suis bien avec celui.  Est-ce que cependant, s'il n'y a aucun travail autour pour l'issue 0000-00-00, je devine que je pourrais leur demander pour modifier là le logiciel pour peupler les champs non-transférés avec une date fausse (1234-01-01) ou quelque chose ? les pensées du

Any, ou les idées seraient grandes !

Thanks !
Bob
class= de

Réponse : DATE de SQL dominante 9.5 - question CHOISIE d'odbc - = « 0000-00-00 »

Ce qui se produit probablement est que la date est peuplée par l'interface de Btrieve avec les espaces au lieu d'une valeur valide.  La valeur 00-00-0000 est inadmissible selon les caractéristiques d'ODBC.  

La solution appropriée à ce problème est d'obliger le fournisseur de logiciel à mettre une date valide ou à annuler pour ce champ non-transféré.  

Vous pourriez essayer de convertir la date en corde et de voir si vous pouvez limiter de cette façon.  Par exemple, CHOISIR * À PARTIR DE LA TABLE OÙ CONVERTI (CHAMP, SQL_CHAR) = ''où la valeur entre les apostrophes est les 6 espaces.  Vous pourriez devoir essayer différentes valeurs pour voir ce qui fonctionne.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us