Problemas p/gravar no banco(Firebird)
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
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
Curtidas 0
Respostas
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
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
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
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
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
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:
Pode ocorrer o erro em que ´CLIENTES.NOME´ não pode ser encontrado.
Select C.NOME, CLIENTES.NOME From CLIENTES C
Pode ocorrer o erro em que ´CLIENTES.NOME´ não pode ser encontrado.
GOSTEI 0