[firebase-br] Re: IBOQuery
alarrudajr
alarrudajr em ig.com.br
Sex Jan 7 11:52:07 -03 2005
> Estou com um probleminha.
> Tenho um IBQuery para efetuar consultas, a instrução SQL é alterada
> dependendo da seleção do usuário.
> Se efetuo a consulta passando como parametro o nome do cliente a
> consulta é
> efeuada normalmente, se logo em seguida efetuar a consulta passando o
> codigo
> como parametro ocorre um erro dizendo que o valor 'A%' não é um valor >
inteiro.
>
> Oque pode estar ocorrendo ?
> Agradeço deste já a colaboração.
>
> Jr
>
>Ola, vc ja tentou converter o parametro, exemplo vc passa tudo com %s e
>depois o que for inteiro vc vai convertendo, tenho tabm esse tipo de
>consulta e por enquanto vai funcionando.
>espero ter te ajudado.
>Ricardo
>Ricardo,
>Obrigado pela resposta, mas não resolve. O problema é que está >mantendo
o valor do parametro anterior que erá "A%" e não o novo >que é um inteiro.
> Jr
>Caro amigo, Bom Dia,
>Você pode nos dar um exemplo do código de sua instrução sql ?
>Será mas fácil interpretar o problema.
>[]s
>Wecsley Fey
>Progestor Informática Ltda
Ola!
Segue o código abaixo:
procedure TFConsVendedor.ConsultaVendedor(iIndex, iParam: Integer; sParam:
String);
var sSql: String;
begin
sSql := 'SELECT V.ID_VEND, V.NOME_VEND, V.FONE1_VEND, V.CEL_VEND, ';
sSql := sSql + 'C.DESC_CID || '' - '' || U.SIGLA_UF AS CID_UF ';
sSql := sSql + 'FROM UF U INNER JOIN CIDADES C ON (U.ID_UF = C.ID_UF) ';
sSql := sSql + 'INNER JOIN VENDEDORES V ON (C.ID_CID = V.ID_CID) ';
if DM.IBOConsVend.Active then
DM.IBOConsVend.Close;
DM.IBOConsVend.Unprepare;
DM.IBOConsVend.SQL.Clear;
case iIndex of
0: begin
sSql := sSql + 'ORDER BY V.NOME_VEND';
DM.IBOConsVend.SQL.Add(sSql);
DM.IBOConsVend.Prepare;
DM.IBOConsVend.Open;
end;
1: begin
sSql := sSql + 'WHERE (V.ID_VEND = :v0) ORDER BY V.NOME_VEND';
DM.IBOConsVend.SQL.Add(sSql);
DM.IBOConsVend.Prepare;
DM.IBOConsVend.Params[0].AsInteger := iParam;
DM.IBOConsVend.Open;
end;
2: begin
sSql := sSql + 'WHERE UPPER(V.NOME_VEND) LIKE :v1 ORDER BY
V.NOME_VEND';
DM.IBOConsVend.SQL.Add(sSql);
DM.IBOConsVend.Prepare;
DM.IBOConsVend.Params[0].AsString:= sParam + '%';
DM.IBOConsVend.Open;
end;
3: begin
sSql := sSql + 'WHERE (V.ID_CID = :v0) ORDER BY V.NOME_VEND';
DM.IBOConsVend.SQL.Add(sSql);
DM.IBOConsVend.Prepare;
DM.IBOConsVend.Params[0].AsInteger := iParam;
DM.IBOConsVend.Open;
end;
end;
end;
Grato pela atenção,
Jr
Mais detalhes sobre a lista de discussão lista