Fórum Ajuda instrução SQL Select #333189

16/11/2006

0

Como faço para verificar, via sql, se o resultado de uma select foi encontrado ?

normalmente eu direciono o resultado para um grid, e verifico se esse grid tem ou nao alguma coisa... mas eu quero fazer uma verificação simples, é pra ver se um numero de uma nota fiscal existe.

como faço ??

Obrigado.


Geisonc

Geisonc

Responder

Posts

16/11/2006

Olavojr

use a função abaixo, se ele retornar 0 (zero) o registro é inexistente:

para fazer a chamado, exemplo:

if (F_VerificaExistencia(BD, ´TABELA´, ´CHAVE´, ´10´,´´,´´,´´,´´,´´,´´) = 0) then
begin
Application.MessageBox(´Código de Local não existente !´,´Atenção´,0+MB_ICONINFORMATION);
Edit1.FocusControl;
Abort;
end;


function TdmFuncoes.F_VerificaExistencia(SQLConnection: TSQLConnection; Tabela,
CampoCondicao1, Valor1, CampoCondicao2, Valor2,
CampoCondicao3, Valor3, CampoCondicao4, Valor4: String): Variant;
var
f_ret: Variant;
f_DataSet: TSQLQuery;
I: Integer;
begin
f_ret := 0;
f_DataSet := TSQLQuery.Create(Self);
f_DataSet.SQLConnection := SQLConnection;
f_DataSet.SQL.Clear;
f_DataSet.SQL.Add(´SELECT COUNT(*) As Total FROM ´ + Tabela);
if (CampoCondicao1 <> ´´) then
begin
f_DataSet.SQL.Add(´WHERE ´ + CampoCondicao1 + ´ = :PA_Valor1 ´);
f_DataSet.Params[0].Value := Valor1;
if (CampoCondicao2 <> ´´) then
begin
f_DataSet.SQL.Add(´AND ´ + CampoCondicao2 + ´ = :PA_Valor2 ´);
f_DataSet.Params[1].Value := Valor2;
if (CampoCondicao3 <> ´´) then
begin
f_DataSet.SQL.Add(´AND ´ + CampoCondicao3 + ´ = :PA_Valor3 ´ );
f_DataSet.Params[2].Value := Valor3;
end;
end;
end;
try
f_DataSet.Open;
f_Ret := f_DataSet.FieldByName(´Total´).AsInteger;
except
Application.MessageBox(´Erro ao executar a funcao. ´,´Mensagem´,0+MB_ICONERROR);
f_Ret := 0;
end;
f_DataSet.Close;
f_DataSet.Free;
Result := f_ret;
end;

Espero ter ajudado, t+.


Responder

Gostei + 0

16/11/2006

Motta

O Dataset tem um método EOF que retorna se está no fim , se após abrir
EOF for false , o SQL teve retorno.


Responder

Gostei + 0

18/11/2006

Marcio.theis

Pode verificar da seguinte forma:

if qry.IsEmpty then
    \\Query vazia



Responder

Gostei + 0

19/11/2006

Quartieri

O Dataset tem um método EOF que retorna se está no fim , se após abrir EOF for false , o SQL teve retorno.


exemplo:
with qry do
close;
clear;
Sql.text := ´select * from clientes´;
open;

if not qry.eof then // o EOF significa END OF FILE
result := true
else
result := false;

// se não for o fim do arquivo é pq tem registros na qry, ou seja, tem dados retornando em sua consulta.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar