Problemas p/gravar no banco(Firebird)

Delphi

06/07/2006

Prezados Colegas,

Estou desenvolvendo minha primeira aplicação utilizando o Firebird com DBExpress(Delphi 7) e o problema q está ocorrendo é o seguinte:
Tenho 2 tabelas, ´Cliente´ e ´Visita´ fiz um Join na minha Query de clientes da seguinte forma:
SELECT
CLI.CLI_CODIGO,
CLI.CLI_NOME,
CLI.CLI_ENDERECO,
CLI.CLI_IDENTIDADE,
CLI.CLI_CPF,
CLI.CLI_ANDAR,
CLI.CLI_SALA,
CLI.CLI_CONTATO,
CLI.CLI_REINGRESSO,
CLI.VIS_CODIGO,
VIS.VIS_DATA,
VIS.VIS_HORA
FROM
CLIENTE CLI
INNER JOIN VISITA VIS ON VIS.VIS_CODIGO = CLI.VIS_CODIGO
WHERE
CLI.CLI_CODIGO = :CLI_CODIGO

E todos os campos foram adicionados no ClientDataSet. Na hora em que eu mando gravar no banco, está dando o erro: ´Column unknown VIS_DATA at line 1, column 8.´

Mas o campo está lá na query e no clientdatset, esqueci de algo? O q pode está errado?
Abçs


Fabiano_aprendiz

Fabiano_aprendiz

Curtidas 0

Respostas

Marcio.theis

Marcio.theis

06/07/2006

São duas tabelas diferentes, distintas, vc deveria inserir na de Cliente um registro e na de Visita tb, inserindo nas duas ao mesmo tempo acredito que naum vai conseguir.


GOSTEI 0
Fabiano_aprendiz

Fabiano_aprendiz

06/07/2006

Mas o estranho é q estou seguindo os exemplos de uma vídeo-aula q tenho aqui, aonde é feito dessa forma, e no exemplo funciona...


GOSTEI 0
Edineidaniel

Edineidaniel

06/07/2006

Olá Fabiano,

Te aconcelho a não usar referências para os nomes da tabelas... use somente os nomes...

Exemplo:

SELECT
CLIENTE.CLI_CODIGO,
CLIENTE.CLI_NOME,
CLIENTE.CLI_ENDERECO,
CLIENTE.CLI_IDENTIDADE,
CLIENTE.CLI_CPF,
CLIENTE.CLI_ANDAR,
CLIENTE.CLI_SALA,
CLIENTE.CLI_CONTATO,
CLIENTE.CLI_REINGRESSO,
CLIENTE.VIS_CODIGO,
VISITA.VIS_DATA,
VISITA.VIS_HORA
FROM
CLIENTE
INNER JOIN VISITA ON (VISITA.VIS_CODIGO = CLIENTE.VIS_CODIGO)
WHERE
CLIENTE.CLI_CODIGO = :CLI_CODIGO


OBS.: Espero que você esteja querem gravar um cliente.... certo... pois caso você queira gravar uma visita, ai esta tabela deve estar no ´from´ e não da de clientes....

t+
Edinei


GOSTEI 0
Eniorm

Eniorm

06/07/2006

Olá Fabiano, Te aconcelho a não usar referências para os nomes da tabelas... use somente os nomes...



Amigos, eu estou acostumado a usar referências para nomes de tabelas, ex:

FROM
CLIENTES C,
PEDIDOS P,
ITEM_PEDIDOS IP,
ETC....

e nunca tive problemas....

no entanto como o camagada recomendou não usar, fiquei curioso pra saber o porque???

Abraço


GOSTEI 0
Steve_narancic

Steve_narancic

06/07/2006

Temos que apenas tormar o cuidado ao usarmos referencia, de se usar a mesma referencia para todos os campos da tabela, mais a menos como abaixo:

Select C.NOME, CLIENTES.NOME
From CLIENTES C


Pode ocorrer o erro em que ´CLIENTES.NOME´ não pode ser encontrado.


GOSTEI 0
POSTAR