Problemas com SQL
12/05/2003
0
Tenho um campo (Cod_Municipio) da tabela Municipio definido como AutoNumeração e o tamanho do campo definido como Inteiro Longo.
Só que quando comparo uma variavel inteira com este campo aparece mensagem
de erro dizendo Este parametro não tem valor padrão.
Ex:
Var n_CodMunicipio, n_CodArtesao, n_CodFornecedor : Integer;
Select Mercadoria.Municpio_Cod_Municipio
,Municipio.Nome_Municipio
,Artesao.Nome_Artesao
,Fornecedor.Nome_Fornecedor
FROM Mercadoria
,Fornecedor
,Artesao
,Municipio
where Mercadoria.Nome_Mercadoria = ´ESCULTURA´
and Municpio.Cod_Municipio = n_CodMunicipio
and Artesao.Cod_Artesao = n_CodigoArtesao
and Fornecedor.Cod_Fornecedor = n_CodigoFornecedor
Onde todos os campos da esquerda foram definidos como AutoNumeração no Banco
(Access).
Tipo de Dados = AutoNumeração
Tamanho do Campo = InteiroLongo
Novos Valores = Incremento
A mensagem de erro é : O parametro não tem valor padrão.
Se alguém puder ajudar...
Obrigada
Marina
Marina
Posts
12/05/2003
Joilson_gouveia
query1.Text := Select Mercadoria.Municpio_Cod_Municipio
,Municipio.Nome_Municipio
,Artesao.Nome_Artesao
,Fornecedor.Nome_Fornecedor
FROM Mercadoria
,Fornecedor
,Artesao
,Municipio
where Mercadoria.Nome_Mercadoria = ´ESCULTURA´
and Municpio.Cod_Municipio = :n_CodMunicipio
and Artesao.Cod_Artesao = :n_CodigoArtesao
and Fornecedor.Cod_Fornecedor = :n_CodigoFornecedor ;
query1.ParamByName(n_CodMunicipio).AsInteger := n_CodMunicipio;
query1.ParamByName(n_CodigoArtesao ).AsInteger := n_CodigoArtesao ;
query1.ParamByName(n_CodigoFornecedor ).AsInteger := n_CodigoFornecedor ;
query1.open;
12/05/2003
Marina
Ex:
Select Mercadoria.Municpio_Cod_Municipio
,Municipio.Nome_Municipio
,Artesao.Nome_Artesao
,Fornecedor.Nome_Fornecedor
FROM Mercadoria
,Fornecedor
,Artesao
,Municipio
where Mercadoria.Nome_Mercadoria = ´ESCULTURA´
and Municpio.Cod_Municipio = 2
and Artesao.Cod_Artesao = 1
and Fornecedor.Cod_Fornecedor = 3
12/05/2003
Rosivaldo
procedure AtualizaQuery; begin with SuaQuery do begin Sql.Clear; sql.add(´ Select Mercadoria.Municpio_Cod_Municipio ,Municipio.Nome_Municipio ,Artesao.Nome_Artesao ,Fornecedor.Nome_Fornecedor FROM Mercadoria ,Fornecedor ,Artesao ,Municipio where Mercadoria.Nome_Mercadoria = + QuotedStr(´ESCULTURA´) + ´ and Municpio.Cod_Municipio = ´ + IntToStr(n_CodMunicipio) + ´ and Artesao.Cod_Artesao = ´ + IntToStr(n_CodArtesao) + ´ and Fornecedor.Cod_Fornecedor = ´ + IntToStr(n_CodFornecedor)); prepare; open; end; end;
12/05/2003
Marina
12/05/2003
Marcelo.c
Se você utiliza ADO, nas linhas:
query1.ParamByName(n_CodMunicipio).[b:ac48ccd2cd]AsInteger[/b:ac48ccd2cd] := n_CodMunicipio;
query1.ParamByName(n_CodigoArtesao ).[b:ac48ccd2cd]AsInteger[/b:ac48ccd2cd] := n_CodigoArtesao ;
query1.ParamByName(n_CodigoFornecedor ).[b:ac48ccd2cd]AsInteger[/b:ac48ccd2cd] := n_CodigoFornecedor ;
Você deve alterar para:
query1.ParamByName(n_CodMunicipio).[b:ac48ccd2cd]Value[/b:ac48ccd2cd] := n_CodMunicipio;
query1.ParamByName(n_CodigoArtesao ).[b:ac48ccd2cd]Value[/b:ac48ccd2cd] := n_CodigoArtesao ;
query1.ParamByName(n_CodigoFornecedor ).[b:ac48ccd2cd]Value[/b:ac48ccd2cd] := n_CodigoFornecedor ;
Clique aqui para fazer login e interagir na Comunidade :)