Como rodar SQL??
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!!
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
Curtidas 0
Respostas
Leonardobhbr
05/02/2006
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
SdsMaster.Open;
if(SdsMaster.FieldByName(´NUMREGISTRO´).AsInteger = 0) then
begin
BtnLocalizar.Enabled := False;
BtnImprimir.Enabled := False;
end
GOSTEI 0
Sandercomputacao
05/02/2006
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!!
Mais uma Vez..
Obrigado!!
GOSTEI 0
Sandercomputacao
05/02/2006
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!!
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!!
GOSTEI 0
Edilcimar
05/02/2006
qual o bd?
GOSTEI 0
Sandercomputacao
05/02/2006
Interbase
GOSTEI 0
Edilcimar
05/02/2006
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
GOSTEI 0
Sandercomputacao
05/02/2006
conforme eu mostrei nao ha como inserir nao.. eu to perguntando pq ja vi algo semelhante
GOSTEI 0
Edilcimar
05/02/2006
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á
GOSTEI 0
Sandercomputacao
05/02/2006
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]
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]
GOSTEI 0
Edilcimar
05/02/2006
é, mas pode ter problema com isto se estiver em rede e 2 pessoas tentarem incluir ao mesmo tempo
GOSTEI 0
Sandercomputacao
05/02/2006
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..
mas eu to fazendo so uma versao BETA.. pra mostrar pro meu chefe q assim funciona tb..
GOSTEI 0
Edilcimar
05/02/2006
tudo bem, mas ainda que seja BETA, criar o gerador e o gatilho e incrementar o código, vc gasta 1/2h.
GOSTEI 0