como faço em sql ...
quero fazer em sql o q em paradox eu faço assim:
ou seja, ele vai varrer o banco inteiro, se o campo 1 for = ao campo 2 ele edita e coloca ok, se for diferente ele coloca error. é simples em paradox, agora migrei o banco para interbase/ firebird, e preciso colocar nas querys isso e nao estou conseguindo.
agradeco muito a ajuda.
tb1.first; while tb1.eof = false do begin if tb1.fieldbyname(´campo´).asstring = nome then begin tb1.fieldbyname(´campo2´).asstring:=´ok´; end else tb1.fieldbyname(´campo3´).asstring:=´error´; end;
ou seja, ele vai varrer o banco inteiro, se o campo 1 for = ao campo 2 ele edita e coloca ok, se for diferente ele coloca error. é simples em paradox, agora migrei o banco para interbase/ firebird, e preciso colocar nas querys isso e nao estou conseguindo.
agradeco muito a ajuda.
Geisonc
Curtidas 0
Respostas
Michael
30/09/2005
Olá!
Vc deve usar o comando UPDATE da linguagem SQL:
[]´s
Vc deve usar o comando UPDATE da linguagem SQL:
update tabela set campo2 = ´ok´ where campo = nome
update tabela set campo3 = ´error´ where campo <> nome
[]´s
GOSTEI 0
Geisonc
30/09/2005
mas ele varre a tabela inteira assim ?
GOSTEI 0
Motta
30/09/2005
Todos os reg´s que obedecerem as condições serão alterados.
GOSTEI 0
Geisonc
30/09/2005
olhem, no IB CONSOLE funcionou perfeitamente, agora dentro do delphi eu sempre apanho em fazer.. vejam...
o erro é: colum unknonw P´ ..
obrigado novamente
DM.tbordem.SQL.Clear; DM.tbordem.SQL.Add(´update TBORDEM set CARGO = "P" where PREPARADOR = "EDSON"´); DM.tbordem.Open;
o erro é: colum unknonw P´ ..
obrigado novamente
GOSTEI 0
Rjun
30/09/2005
Você pos ´ e deve ser ´. Utilize querys parametrizadas para fazer esse tipo de operação. E OPEN só se utiliza com SELECT. Nesse caso você deve utilizar EXECSQL.
DM.tbordem.SQL.Clear; DM.tbordem.SQL.Add(´update TBORDEM set CARGO = :Cargo where PREPARADOR = :Preparador´); DM.tbordem.SQL.ParamByName(´Cargo´).Value := ´P´; DM.tbOrdem.SQL.ParamByName(´Preparador´).Value := ´Edson´; DM.tbordem.ExecSql;
GOSTEI 0
Geisonc
30/09/2005
uhhh legal heim, não fazia desse jeito, na parte de opensql eu escrevi sem querer...
eu so tive que alterar a linha 3 e 4, tirando o SQL, mas funcionou legal.
muito obrigado, ajudou pacas !
eu so tive que alterar a linha 3 e 4, tirando o SQL, mas funcionou legal.
muito obrigado, ajudou pacas !
GOSTEI 0
Geisonc
30/09/2005
Pq o SQL do delphi é diferente do sql do IBConsole ?
estou tentando fazer um select com OR e nao da certo de modo algum no delphi...
fala que or´ esta errado... :(
vou ter q fazer um curso de sql e rápido.. pensei q sabia alguma coisa... mas to vendo que vou precisar,,,
estou tentando fazer um select com OR e nao da certo de modo algum no delphi...
DM.tbordem.SQL.Clear; DM.tbordem.SQL.Add(´select * from tbordem where preparador or auxiliar = ´+ nome); DM.tbordem.open;
fala que or´ esta errado... :(
vou ter q fazer um curso de sql e rápido.. pensei q sabia alguma coisa... mas to vendo que vou precisar,,,
GOSTEI 0
Michelli88
30/09/2005
fica assim:
DM.tbordem.SQL.Clear; DM.tbordem.SQL.Add(´select * from tbordem where preparador = ´+ nome + ´or auxiliar = ´+ nome); DM.tbordem.open;
GOSTEI 0
Geisonc
30/09/2005
ahhh se não fossem vcs !!!
muito obrigado.
muito obrigado.
GOSTEI 0
Geisonc
30/09/2005
mas dei uma mudadinha no codigo... ficou assim :
DM.tbordem.SQL.Clear; DM.tbordem.SQL.Add(´select * from tbordem where preparador = :FUNC or auxiliar = :FUNC´); DM.tbordem.ParamByName(´FUNC´).AsString:=nome; DM.tbordem.open;
GOSTEI 0