Renanbg 1 Denunciar post Postado Julho 11, 2008 Então pessoal, o banco é paradox com tables, querys e datasources no delphi 5 Tenho uma tabela chamada tbduplicatas onde gravo todas as duplicatas que chegam. Queria pegar as duplicatas que ja estao vencidas e jogar em uma tabela chamada tbvencidas e logo em seguida deletar essas mesmas da tabela tbduplicatas Alguem pode me ajudar a construir o codigo? Para deletar pensei em algo assim: QueryDeleta.Close; QueryDeleta.SQL.Clear; QueryDeleta.SQL.Text := 'Delete from tbduplicatas WHERE Vencimento < datetostr(date)'; QueryDeleta.Prepare; QueryDeleta.Open; Ainda n testei esse codigo, mas deve ser algo assim me falta agora a ideia para pegar tudo que esta vencido e jogar na outra tabela Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Julho 11, 2008 comando 1 - você insere na outra tabela insert into tbvencidas select campo1, campo2 from tbduplicatas where vencimento < data_atual comando 2 - você apaga delete from tdduplicatas where vencimento < data_atual Compartilhar este post Link para o post Compartilhar em outros sites
Smr 0 Denunciar post Postado Julho 11, 2008 oi, eu não sei muito bem delphi ainda, mais em php eu faria algo assim (talves da pra adapta): Eu criaria uma tabela só, com um campo a mais -> vencido -> "S" (sim) ou "N" (não). Por default deixaria tudo "N", ai quando vencesse eu marcaria S, ai na hora fazer uma pesquisa pra mostrar só as vencidas ou só as não vencidas, ai você colocaria um WHERE na sql tipo '... WHERE vencido = "S" ...', algo assim acho que seria menos complicado e ficaria mais leve, pq você não prescisaria criar outra tabela e cadastrar os dados tudo de novo. beleza qualquer coisa estamos ai, flw... Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 12, 2008 Obrigado pelas dicas pessoal, na segunda acho que consigo testar e volto a postar para avisar como foi Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 16, 2008 comando 1 - você insere na outra tabela insert into tbvencidas select campo1, campo2 from tbduplicatas where vencimento < data_atual comando 2 - você apaga delete from tdduplicatas where vencimento < data_atual Boa tarde, estou começando a olhar isso agora e fiz o seguinte: Var Hoje: String; begin Hoje := DateToStr(Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'Insert into tbvencidas select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas where vencimento <:Hoje'; Query1.Prepare; Query1.Open; Mas da o erro abaixo: Alguma sugestão? obrigado Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 comando 1 - você insere na outra tabela insert into tbvencidas select campo1, campo2 from tbduplicatas where vencimento < data_atual comando 2 - você apaga delete from tdduplicatas where vencimento < data_atual Boa tarde, estou começando a olhar isso agora e fiz o seguinte: Var Hoje: String; begin Hoje := DateToStr(Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'Insert into tbvencidas select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas where vencimento <:Hoje'; Query1.Prepare; Query1.Open; Mas da o erro abaixo: Alguma sugestão? obrigado Você tem um parâmetro :Hoje mas pelo visto não esta passando nada de informação para o mesmo... Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 16, 2008 Oi marcio..estou passando na linha Hoje := DateToStr(Date); você sabe outra forma de eu fazer esse codigo? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 Isso você esta atribuindo a variável, você precisa passar parâmetro para dentro da query: var Hoje: String; begin Hoje := DateToStr(Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'Insert into tbvencidas select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas where vencimento <:Hoje'; Query1.ParamByName('Hoje').Value:=StrToDate(Hoje); Query1.Prepare; Query1.Open; Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 16, 2008 Hum..ta certo... Fiz assim mas o erro persiste Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 Dê mais detalhes da sua situação, quais componentes que esta usando, e o fonte agora alterado. Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 16, 2008 Dê mais detalhes da sua situação, quais componentes que esta usando, e o fonte agora alterado.estou usando delphi 5 com bde e tabelas paradox tenho essa tabela de duplicatas ond egravo todas elas então criei uma tabela chamada tbvencidas o que desejo fazer é selecionar todas os registros que estejam vencidos na tbduplicatas e inseri-los na tbvencidas e em seguida apaga-los da tbduplicatas Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 16, 2008 Marcio, acho que tem algum problema nessa linha do select, pq olha como deixei o codigo mais simples e mesmo assim da invalid parameter Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'Insert into tbvencidas select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas'; Query1.Prepare; Query1.Open; Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 16, 2008 Me esqueci de colocar antes, mas precisa mudar o comando para ExecSQL, ficando: Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Insert into tbvencidas select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas'_; Query1.ExecSQL; Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 17, 2008 Infelizmente o mesmo erro marcio... as duas tabelas tem a mesma estrutura e o tamanho dos campos são iguais..será q é problema pq o banco é paradox? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 17, 2008 Declara os campos, quem sabe ajude: Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Insert into tbvencidas (Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento) select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas'); Query1.ExecSQL; Bom, não sei se pode ser o paradox, não utilizo esse BD, mas o comando já usei várias vezes, sempre funcionou... Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 17, 2008 Ufa...deu certo marcio finalizei assim: var Hoje: String; begin Hoje := DateToStr(Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Insert into tbvencidas (Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento) select Cedente, Data_doc, Num_doc, Valor, Status, Estabelecimento from tbduplicatas where vencimento <:Hoje'); Query1.ParamByName('Hoje').Value:=StrToDate(Hoje); Query1.ExecSQL; Agora o delete: var Hoje: String; begin Hoje := DateToStr(Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Delete from tbvencidas where vencimento <:Hoje'); Query1.ParamByName('Hoje').Value:=StrToDate(Hoje); Query1.ExecSQL; end; Mas n esta deletando, alguma sugestão? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 17, 2008 beleza, bom que deu certo, no caso para deletar, não tinha que deletar da tbduplicatas ? Compartilhar este post Link para o post Compartilhar em outros sites
Renanbg 1 Denunciar post Postado Julho 17, 2008 Vixe....pra você ver como eu to distraido..heheheh então assim ficou o codigo para deletar caso mais alguem precise var Hoje: String; begin Hoje := DateToStr(Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Delete from tbduplicatas where vencimento <:Hoje'); Query1.ParamByName('Hoje').Value:=StrToDate(Hoje); Query1.ExecSQL; frmdm.tbduplicatas.refresh; coloquei um refresh na table para atualizar o dbgrid após deletar os itens Marcio, muito obrigado pela ajuda, sem você eu estaria ainda pedalando aqui...hehehehe! Abraço Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Julho 17, 2008 beleza... precisando estamos aqui :P Compartilhar este post Link para o post Compartilhar em outros sites