Como rodar SQL??

05/02/2006

Olá Pessoal, com vcs podem ver eu sou novato em Delphi, talvez meu problema seja simples demais, mas nao estou conseguindo por pra funcionar. eu to com a seguinte linha de comando..


SdsMaster.DataSet.CommandText := ´SELECT COUNT(*) AS NUMREGISTRO FROM CLIENTE´;
SdsMaster.Open;
if NUMREGISTRO = 0 the
begin
BtnLocalizar.Enabled := False;
BtnImprimir.Enabled := False;
end

ou seja quero verificar se no meu BD tem ou nao algum registro, em caso afirmativo o botao localizar ficará habilitado caso contrario nao, sei que esta errando qdo eu verifiquei o NUMREGISTRO, mas como eu devo fazer entao??

OBRIGADO A TODOS!!


Sandercomputacao

Respostas

05/02/2006

Leonardobhbr

SdsMaster.DataSet.CommandText := ´SELECT COUNT(*) AS NUMREGISTRO FROM CLIENTE´;
SdsMaster.Open;


if(SdsMaster.FieldByName(´NUMREGISTRO´).AsInteger = 0) then
begin
BtnLocalizar.Enabled := False;
BtnImprimir.Enabled := False;
end


Responder Citar

05/02/2006

Sandercomputacao

vamos supor q eu tenha um campo chamado CODIGO e quero coloca-lo como auto incremente mas por linha de comando, como eu faria isso com o SdsMaster??? digamos q o campo onde o numero será incrementado toda vez que eu clicar em incluir será o DbECodigo..

Mais uma Vez..
Obrigado!!


Responder Citar

05/02/2006

Sandercomputacao

Essa Foi a linha de comando q eu coloquei, mas deu errado..

DbECodCliente.Text := IntToStr(StrToIntDef(SdsMaster.FieldByName(´MAIORCODIGO´).AsString) + 1,0);

Erros:

Not enough actual parameters
Missing operator or semicolon
Could not compile used unit ´UCliente.pas´

Valeu!!


Responder Citar

05/02/2006

Edilcimar

qual o bd?


Responder Citar

05/02/2006

Sandercomputacao

Interbase


Responder Citar

05/02/2006

Edilcimar

ok então basta criar um generator e um trigger, dê uma olhada no fórum do interbase que existem diversos exemplos de como fazer isto


Responder Citar

05/02/2006

Sandercomputacao

conforme eu mostrei nao ha como inserir nao.. eu to perguntando pq ja vi algo semelhante


Responder Citar

05/02/2006

Edilcimar

vamos supor q eu tenha um campo chamado CODIGO e quero coloca-lo como auto incremente mas por linha de comando, como eu faria isso com o SdsMaster??? digamos q o campo onde o numero será incrementado toda vez que eu clicar em incluir será o DbECodigo.. Mais uma Vez.. Obrigado!!


aqui vc disse que queria um autoincremento, e na mensagem seguinte também

DbECodCliente.Text := IntToStr(StrToIntDef(SdsMaster.FieldByName(´MAIORCODIGO´).AsString) + 1,0);


foi por isto que escrevi sobre generator e trigger, agora se vc quer apenas saber se existe algum registro no banco, basta utilizar o recordcount, se for zero então não há


Responder Citar

05/02/2006

Sandercomputacao

a primeira eu consegui resolver..

to tendo trabalho pra acrescentar + 1 no campo de código.. olha como eu coloquei.. nao sei se esta certo mas...

[b:635dc5b551]SdsMaster.Insert;
SdsMaster.DataSet.CommandText := ´SELECT MAX(ID5_CLTE) AS MAIORCODIGO FROM CLIENTE´;
SdsMaster.Open;

DbECodCliente.Text := IntToStr(StrToIntDef(SdsMaster.FieldByName(´MAIORCODIGO´).AsString) + 1,0);[/b:635dc5b551]


Responder Citar

05/02/2006

Edilcimar

é, mas pode ter problema com isto se estiver em rede e 2 pessoas tentarem incluir ao mesmo tempo


Responder Citar

05/02/2006

Sandercomputacao

ahh ta.. entendi.. mas o problema é q eu precisava fazer isto como se eu estivesse trabalhando direto no servidor, nunca por rede.. mas essa ipotese q vc levantou é verdade..

mas eu to fazendo so uma versao BETA.. pra mostrar pro meu chefe q assim funciona tb..


Responder Citar

05/02/2006

Edilcimar

tudo bem, mas ainda que seja BETA, criar o gerador e o gatilho e incrementar o código, vc gasta 1/2h.


Responder Citar