Pergunta : DATA patente do SQL 9.5 - pergunta SELETA do odbc - = “0000-00-00”

Um provedor de software que nós nos usamos no trabalho tem-me dado recentemente o acesso de ODBC a sua base de dados dos produtos que é SQL patente 9.5 (sp2).  Eu estou trabalhando em automatizar transferência de dados da contabilidade deste software a nosso software de contabilidade, e estou batendo um wall.

I am using os excitadores patentes do odbc do cliente para 9.50 (sp2), e estou tentando este de uma caixa de janelas, e uma caixa do linux using o unixODBC com o linux client.

In do psql o DB patente, há um campo da DATA em duas tabelas explicando que indicam se uma fatura estêve transferida (ao outro sistema de contabilidade), ou se é transferência pendente.  Eu sou após esses transfer.

When que a fatura é transferida o campo da DATA nas duas tabelas explicando é povoada com a data do transfer.

This é onde eu bati a parede.  Quando a fatura não é transferida a data é necessidade de 0000-00-00.
I basicamente de perguntar as faturas não-transferidas em pervasive.
When que eu tento perguntar o campo da data = “0000-00-00” sou lances um o erro do odbc.  Está aqui o erro: erro do

SQL: [Patente] [relação] do cliente de ODBC [LNA] data inválida [patente] do [relação do motor de ODBC], hora ou valor do timestamp., estado 22008 do SQL em myfile.name na linha number

I Googled isto por uma hora ou dois. Eu encontrei outro para ter tido a mesma edição, mas nenhum solutions.

Here é a coisa estranha: o

When eu pergunto o DB patente com uma ferramenta do SQL ou de um certificado do PHP o campo mostra que um of
0000-00-00 do valor para invoices.

When mim vai o o usuário pervassive real do motor de ODBC, e olha este campo using a aplicação de PervasiveSQL Control Center, ele indica as faturas não-transferidas com uma data como: o
11/30/0002

I tentou perguntar inutilmente as faturas não-transferidas using todos os tipos do

SELECT dos combos. * da TABELA ONDE CAMPO = '0000-00-00'< o Br/>
SELECT * da TABELA ONDE CAMPO = '0002-11-30'< o Br/>
SELECT * da TABELA ONDE O CAMPO é NULL

SELECT * da TABELA ONDE CAMPO = {d “0000-00-00”} o

SELECT * da TABELA ONDE O CAMPO = {d “0002-11-30”} o

There era provavelmente mais combos da pergunta do SQL, mas de nenhumas trabalhou.  Ou jogaram um erro do odbc que queixa-se sobre o formato de data na pergunta, ou trabalhados com agora o results.

Does qualquer um sabem de uma maneira sneaky em torno desta edição 0000-00-00?  Há uma coisa como SELETO * DA TABELA ONDE O CAMPO não é uma DATA, ou da alguma outra opção? o

I am que tenta realmente começ este funcionamento sem ter que contatar o provedor de software.  Eram relutantes dar-me o odbc, e forçam que não o suportam. Eu sou aprovado com aquele.  Entretanto, se não há nenhum trabalho ao redor para a edição 0000-00-00, eu supor que eu poderia os pedir para fazer lá uma mudança ao software para povoar os campos não-transferidos com uma data falsa (1234-01-01) ou algo? os pensamentos do

Any, ou as idéias seriam grandes!

Thanks!
Bob
class= do

Resposta : DATA patente do SQL 9.5 - pergunta SELETA do odbc - = “0000-00-00”

O que está acontecendo provavelmente é que a data está sendo povoada através da relação de Btrieve com espaços em vez de um valor válido.  O valor 00-00-0000 é inválido de acordo com as especificações de ODBC.  

A solução apropriada a este problema é conseguir o provedor de software põr uma data válida ou anulá-la para este campo não-transferido.  

Você pôde tentar converter a data a uma corda e ver se você pode restringir essa maneira.  Por exemplo, SELECIONAR * DA TABELA ONDE CONVERSO (CAMPO, SQL_CHAR) = ''onde o valor entre únicas citações é 6 espaços.  Você pôde ter que tentar valores diferentes ver o que trabalha.
Outras soluções  
 
programming4us programming4us