Ir para conteúdo
Fórum Script Brasil

MagoDanger

Membros
  • Total de itens

    118
  • Registro em

  • Última visita

Tudo que MagoDanger postou

  1. pessoal, andei lendo aqui vários artigos de banco de dados e tal... Ai surgiu uma dúvida agora... qual é melhor... MySQL ou Firebird? Qual tem melhor desempenho, é mais seguro? e em relação a programação e componentes de ligação? abraços...
  2. e lá vem outra dúvida!! =// hoje fazendo uns testes aqui no sistema surgiu um outro pequeno problema... testei fazer umas coisas aqui, mas não funcionou não.. vamos supor que eu gerei 24 parcelas de R$ 600,00 1/24 - R$ 600,00 2/24 - R$ 600,00 3/24 - R$ 600,00 ... e assmi por diante. só que surgiu um reajuste a partir da 8 parcela de R$ 50,00 como faço para fazer assim, digitar 650,00 em um campo, e no outro informar 8/24 até 24/24 e o sisetma trocar o valor de todas essas parcelas nesse intervalo... 8/24 - R$ 650,00 9/24 - R$ 650,00 e assim por diante? obrigado mais uma vez... :blush:
  3. eitah vixi!!! :D era isso mesmo que eu precisava!! valeww mesmo!!!! muito obrigado amigoo!!!! abraçosss
  4. olá amigo, beleza? use o Photoshop ou o illustrator.. são ótimos para tudo! tem uma infinidade de ferramentas, e você acha muitas apostilas, tutoriais e video aulas pela net a fora! abraços e sucesso!
  5. montei tudo aqui, mas na hora da baixa tive um problema que não havia pensando antes... pra transferir do aberto pra baixa usei esse mesmo esquema: var i: integer; NomeCampo: String; begin //transfere todos os filtrados dm.q_gerados_inq.First; While Not dm.q_gerados_inq.Eof Do Begin dm.q_baixa_inq.Append; For i := 0 To dm.q_gerados_inq.FieldCount - 1 Do Begin NomeCampo := dm.q_gerados_inq.Fields[i].FieldName; dm.q_baixa_inq.FieldbyName(NomeCampo).Value := dm.q_gerados_inq.FieldbyName(NomeCampo).Value; End; dm.q_baixa_inq.Post; dm.q_gerados_inq.Next; End; with dm.q_gerados_inq do while RecordCount > 0 do Delete; end; só que a tabela de baixados tem um campo a mais que é o "data_baixa" essa data fica preenchida na edit - edt_data como faço pra alem de transferir todos pra oura tabela, também jogar em todos campos "data_baixa" a data que foi preenchida no edt_data? desculpa por tantas perguntas..... obrigado.
  6. aaeeeee!!!! :rolleyes: :rolleyes: poxa... agora entendi, deu certo!! obrigado mesmo por toda essa força velinho!!!! abraços!!
  7. olá amigo... olha quase deu certo assim: seguindo as coisas que você me ajudou begin //transfere todos os filtrados dm.q_pag_inq.First; While Not dm.q_pag_inq.Eof Do Begin dm.q_gerados_inq.Append; For i := 0 To dm.q_pag_inq.FieldCount - 1 Do Begin NomeCampo := dm.q_pag_inq.Fields[i].FieldName; dm.q_gerados_inq.FieldbyName(NomeCampo).Value := dm.q_pag_inq.FieldbyName(NomeCampo).Value; End; dm.q_gerados_inq.Post; dm.q_pag_inq.Next; begin //acrescentei isso para deletar with dm.q_pag_inq do while RecordCount > 0 do Delete; end; end; end; end; end; end; agora sim ele deleta todos os dados filtrados... só que vamos supor: filtro 2 dados da tabela ele transfere só 1 e deleta os 2... como fazer pra primeiro ele transferir tudo e só depois deletar? obrigado mais uma vez PS: coloquei isso em um botao separado: begin //acrescentei isso para deletar with dm.q_pag_inq do while RecordCount > 0 do Delete; end; então se eu clicar no botao gerar (que filtra e transfere os dados pra oura tabela) e depois clicar nesse botao deletar... ai da tudo certo... mas quando coloca junto no mesmo botão... ai não da! =///
  8. eu pensei que tinha um jeito mais simples pra colocar junto aqui: begin //transfere todos os filtrados dm.q_pag_inq.First; While Not dm.q_pag_inq.Eof Do Begin dm.q_gerados_inq.Append; For i := 0 To dm.q_pag_inq.FieldCount - 1 Do Begin NomeCampo := dm.q_pag_inq.Fields[i].FieldName; dm.q_gerados_inq.FieldbyName(NomeCampo).Value := dm.q_pag_inq.FieldbyName(NomeCampo).Value; End; dm.q_gerados_inq.Post; dm.q_pag_inq.Next; fiz isso logo apos essa instrução.. mas não da certo =/ begin with dm.q_pag_inq do begin Close; SQL.Clear; SQL.Add('delete from tbl_pag_inq where vencimento Between :dataini and :datafim'); Parameters.ParamByName('dataini').Value := DateEdit3.date; Parameters.ParamByName('datafim').Value := DateEdit4.date; Open; end; aparece o erro:
  9. ixi... só que agora eu precisaria deletar as informações da tabela anterior... coloquei um dm.q_pag_inq.Delete; depois do dm.q_gerados_inq.Post; mas dai ele só transfere 1 e deleta ele... paro de transferir tudo!!! =/// como faço pra deletar todos os filtrados e transferidos??
  10. olá amigo... copiei essa programação que você passou mas dai ele só copiava 1 ... então tirei isso aqui: Application.ProcessMessages; ai agora ta certinho copiando tudo.... tem algum problema sem isso ai?
  11. humm... ainda não deu certo... ele trava o sistema, copia apenas o campo id_inq e o resto não copia nada... e fica inserindo sem apra isso no banco de dados.. criou quase 23 mil registros... rss.... oque qsera que tem de errado?
  12. Eu fiz umas alterações aqui mas não deu certo isso ai... dexa eu explicar o que eu fiz... :wacko: Tem um botão que filtra todos os vencimentos do mês e soma os resultados (Crédito - Débito), assim: Esse está funcionando tudo certinho.... var Present: TDateTime; dataini, datafim : Tdate; Ano, Mes, Dia : Word; somac : Double; somad : Double; resultado : Double; begin somac:=0; somad:=0; dm.q_pag_inq.First; Present:= EndOfTheMonth(Date); DecodeDate(Present, Ano, Mes, Dia); dataini := StartOfTheMonth(Date); datafim := EndOfTheMonth(Date); DateEdit1.Date := dataini; DateEdit2.Date := datafim; begin with dm.q_pag_inq do begin Close; SQL.Clear; SQL.Add('select * from tbl_pag_inq where vencimento Between :dataini and :datafim'); SQL.Add('AND id_inq = ' + QuotedStr(f_cad_inquilinos.Edt_inq.Text)); SQL.Add('AND baixados = ' + QuotedStr(f_cad_inquilinos.edt_baixa.Text) + 'order by vencimento asc'); Parameters.ParamByName('dataini').Value := DateEdit1.date; Parameters.ParamByName('datafim').Value := DateEdit2.date; Open; while not dm.q_pag_inq.Eof do begin if dm.q_pag_inq.fieldbyname('tipo').AsString = 'C' then somac := somac + dm.q_pag_inq.Fieldbyname('valor').AsFloat else somad := somad + dm.q_pag_inq.Fieldbyname('valor').AsFloat; dm.q_pag_inq.Next; label3.Caption := FloatToStrF(somac,ffCurrency , 15,2); label4.Caption := FloatToStrF(somad,ffCurrency , 15,2); resultado := (somad - somac); label5.Caption := FloatToStrF(resultado,ffCurrency , 15,2); bt_gerar.Visible := true; end; end; end; end; Depois disso tem um outro botão que gera o recibo... e somente depois que o cliente pedir pra gerar recibo é que deve transferir os dados filtrados... esse botão está assim: begin qr_rec_inq := Tqr_rec_inq.Create(Self); qr_rec_inq.qr_total.Caption := f_rec_inq.Label5.Caption; qr_rec_inq.qr_locatario.caption := f_cad_inquilinos.DBEdit2.Text; qr_rec_inq.qr_endereco.caption := f_cad_inquilinos.db_endereco.Text; qr_rec_inq.qr_bairro.caption := f_cad_inquilinos.db_bairro.Text; qr_rec_inq.qr_n.caption := f_cad_inquilinos.db_n.Text; begin qr_rec_inq.QRImage1.Picture.Bitmap := Nil; if dm.q_config.Fields.FieldByName('logo').AsString <> '' then if FileExists(dm.q_config.fields.fieldbyname('logo').AsString) then qr_rec_inq.QRImage1.Picture.LoadFromFile(dm.q_config.fields.fieldbyname('logo').AsString); qr_rec_inq.QuickRep1.Preview; begin while dm.q_pag_inq.Eof do begin dm.q_gerados_inq.Fields[0].value := dm.q_pag_inq.Fields[0].value; dm.q_pag_inq.next; f_rec_inq.close; end; end; end; end; Ele gera o recibo com os dados filtrados anteriormente e o valor final, tudo certo... mas não transfere os dados... aparece o seguinte erro: o que tem de errado? =//// obrigado novamente!!
  13. Pessoal, estou com um pequeno problema entre filtrar e transferir vários dados de uma tabela para outra. tenho aqui a tabela aonde os recibos são gerados: tbl_pag_inq e a tabela para onde os dados devem ir que é: tbl_gerados_inq fiz um filtro por data de vencimento (tem varias datas diferentes de vencimento de um cliente dentro do mes, então esse filtro pega tudo o que vence dentro do mes, independente do dia) Esse filtro está tudo certo e funcionado. Ficou assim: var Present: TDateTime; dataini, datafim : Tdate; Ano, Mes, Dia : Word; begin dm.q_pag_inq.First; Present:= EndOfTheMonth(Date); DecodeDate(Present, Ano, Mes, Dia); dataini := StartOfTheMonth(Date); datafim := EndOfTheMonth(Date); DateEdit1.Date := dataini; DateEdit2.Date := datafim; begin with dm.q_pag_inq do begin Close; SQL.Clear; SQL.Add('select * from tbl_pag_inq where vencimento Between :dataini and :datafim'); SQL.Add('AND id_inq = ' + QuotedStr(f_cad_inquilinos.Edt_inq.Text)); SQL.Add('AND baixados = ' + QuotedStr(f_cad_inquilinos.edt_baixa.Text) + 'order by vencimento asc'); Parameters.ParamByName('dataini').Value := DateEdit1.date; Parameters.ParamByName('datafim').Value := DateEdit2.date; Open; end; end; end; *** até aqui eu fiz o filtro, gera o recibo tudo certinho... porém, quando o usuario solicitar esse filtro dos pagamentos abertos no mes e gerar recibos todos os valores devem ser transferidos para uma outra tabela (tbl_gerados_inq)... e é aqui que eu não consigo. depois de toda essa programação ai em cima, tentei fazer isso: begin dm.q_pag_inq.Close; dm.q_pag_inq.sql.Clear; dm.q_pag_inq.sql.add('INSERT INTO tbl_gerados_inq SELECT * FROM tbl_pag_inq where vencimento between :dataini and :datafim'); dm.q_pag_inq.SQL.Add('AND id_inq = ' + QuotedStr(f_cad_inquilinos.Edt_inq.Text)); //aqui ele filtra pelo codigo do cliente dm.q_pag_inq.SQL.Add('AND baixados = ' + QuotedStr(f_cad_inquilinos.edt_baixa.Text) + 'order by vencimento asc'); //aqui ele filtra os campos que estão como baixados "N" dm.q_pag_inq.ExecSQL; ** não dá erro... mas também não funciona *** Além de transferir somente os dados filtrados, precisaria também alterar todos os campos BAIXADOS de "N" para "A" dos que forem ser transferidos. //essa parte eu nem tenho ideia de como fazer Os nome das Querys: tbl_gerados_inq -> q_gerados_inc tbl_pag_inq -> q_pag_inq Obs: As 2 tabelas criei exatamente iguais Obrigado!!!
  14. Insert - Criar Novo Post - Gravar Delete - Excluir CancelUpdates - Cancelar Registros (antes de gravar) Refresh - Atualizar First - Primeiro Registro Last - Último Registro Next - Avança 1 registro Prior - Volta 1 registro Edit - Editar Esses acho que são os principais. Se você usar o componente ADOQuery, fica assim: (Exemplo pra o botão gravar) begin ADOQuery1.Post; end; Você pode digitar também ADOQuery1. (e depois do ponto aperta CTRL + ESPAÇO que vai aparecer uma lista de opções). Abraços
  15. Olá amigo! Clica sobre o campo, Vai na aba Events, dê 2 cliques no OnKeyPress if key=#13 then Edit2.SetFocus;
  16. humm... mas e se no caso a máquina não tiver IP fixo, tem como ser pelo nome dela na rede igual eu fazia no access?
  17. Pessoal, bom dia! Estou apanhando aqui com o MySQL... Tem algumas coisas que ainda preciso entender... No Access, por exemplo, eu criava o novo banco de dados e as tabelas tudo de forma visual, tem algum software que possibilita fazer isso com o MySQL? (como vou criar um BD e tabelas nele?) Depois eu já salvava o BD direto na pasta do meu sistema, como faço isso no mysql? o MySQL precisa rodar em algum servidor? (tipo o firebird, por exemplo)? E por último, no access pra rodar em rede os sistemas que eu fazia, eu colocava ele no servidor e criava atalhos do aplicativo nos terminais... No componente ADOConnection, eu colocava o caminho do BD dessa forma: \\server\wiimob\dados\base.mdb e tudo ia beleza, como vou fazer pra rodar em rede o BD em MySQL? :wacko: Obrigado!! :blush:
  18. Amigos, boa tarde! baixei várias apostilas aqui de MySQL estou estudando, realmente é sem comparação... vou trabalhar nisso pra migrar sim! Em relação a programação (no Delphi) terá que ser alterado muitas coisas? e os componentes de ligação, quais utilziar, quais são melhores? abraços!
  19. bom dia pessoal!!! Estou pensando em migrar de BD. Li que o Access é meio ruim... Então pensei em migrar do Access para o MySQL. O que vocês acham dessa migração? É um bom negócio? o MySQL é um ótimo BD? O que existem de prós e contras? ----- Algumas coisas que achei sobre: Access: 2GB de limite MySQL: não tem limite MySQL é um BD confiável, leve, rápido, seguro, multiplataforma e não tem limites de conexão simuntâneas. Access não é confiável quando se aplica em redes e acess simuntaneos (máximo 255 conexões), quando começa ficar com muitas informa~çoes fica lento (tornando assim seu aplicativo mais lento). O que mais podemos falar/comparar desses 2? Obrigado.
  20. poxa cara.... obrigado mesmo por essa força, de coração! eu precisava muito resolver esse problema... agora vou fazer as adaptações no meu sistema, e vou começar a ler as apostilas e estudar mais... também vou atras da biblia do delphi.... mais uma vez, muito obrigado!!! abração!
  21. olá amigo, funcionou quase certo.... só que vamos supor que eu gere hoje 24 parcelas com vencimento no dia 30... ai acontece assim, até chegar em fevereiro do ano que vem todos os vencimentos ficam para dia 30... só que dai de fevereiro pra frente ficam todos 28... como faço para só o mês 2 ficar com o vencimento dia 28 e depois voltar para o dia 30? :unsure:
  22. olá... li umas coisas que achei e tentei fazer isso... mas não deu certo... não dá erro.. mas também não gerar parcelas... (não acontece nada quando clico no botão gerar)... var valor : real; venc : double; mes2 : double; parcelas, i, mes : integer; Present: TDateTime; Year, Month, Day: Word; begin valor := StrToFloat(Edit1.text); Venc := StrToDate (DateEdit1.text); parcelas := StrToInt(Edit3.text); memo1.Clear; Query1.Active := false; ClientDataSet1.Active := false; Query1.Active := true; ClientDataSet1.Active := true; Present:= venc; // coloque a data inicial aqui ( no lugar do now ) DecodeDate(Present, Year, Month, Day); if month <> 2 then mes2 := month else begin if not IsLeapYear(year) then begin Inc(Month); Day := 2; mes2 := EncodeDate(year, month, day); end else begin Inc(Month); Day := 1; mes2 := EncodeDate(year, month, day); for i := 1 to parcelas do begin ClientDataSet1.Last; // ultimo registro ClientDataSet1.Append; // adicionar novo registro ClientDataSet1.Edit; // editar registro // Atribuir os valores das variaveis aos campos do registro na tabela if mes2 > 11 then begin mes2 := 1; Year := Year + 1; end else inc(mes); ClientDataSet1parcelas.Value := inttostr(i) +'/'+inttostr(parcelas); // campo String ClientDataSet1Valor.Value := valor; // campo Float ClientDataSet1Vencimento.Value := strtodate(IntToStr(Day) + '/' + FloatToStr(Mes2) + '/' + IntToStr(Year)); // campo Data ClientDataSet1.Post; // salvar o registro ClientDataSet1.ApplyUpdates(-1);// atualizar o registro end; Query1.Active := false; ClientDataSet1.Active := false; Query1.Active := true; ClientDataSet1.Active := true; end; end; end;
  23. Amigo, deu tudo certo aqui... mas tem só 1 um detalhezinho.... primeiro como ficou: Coloquei aonde vai a data inicial (que antes era um Edit) um "TDateEdit" depois: Venc := StrToDate (DateEdit1.text); Present:= venc; // coloque a data inicial aqui ( no lugar do now ) DecodeDate(Present, Year, Month, Day); mes := month; ficou bem legal, era exatamente isso que eu precisava!!! Agora o único problema pra finalizar é: vamos supor que eu coloque o vencimento todo dia 30 (tenho muito dessa caso aqui...) então quando chega em Fevereiro, o sistema da erro falando que não existe "30/02/2012"... como eu faço para quando o mês for "2" ele automaticamente jogar para o dia 28? obrigado mais uma vez!! :blush:
  24. Amigo, tentei fazer agora isso... mas aparecem os seguintes erros: como resolver isso? obrigado e desculpe por tantas perguntas.... :wacko:
×
×
  • Criar Novo...