Ir para conteúdo
Fórum Script Brasil

Progr'amador

Veteranos
  • Total de itens

    1.130
  • Registro em

  • Última visita

Tudo que Progr'amador postou

  1. Ola, Se você tiver usando exatamente o código que te passei, deveria da certo. Primeiro que declarei as variaveis valor2ini, valor2fim e i tipo integer, sendo assim não teria como nenhuma desses varaveis receber um valor desse tipo (1/36), e com certeza daria erro. O codigo que postei funciona dessa forma: Variaveis valor2ini, valor2fim recebem valores inteiros, exemplo: 8 e 15 (cada uma). A variavel i tb recebe valor inteiro, que no caso é incrementado em casa loop ( inc(i) ). To testanto essas 3 variaveis, em nenhum momento testei o campo da tabela diretamente. Postae o codigo que você ta usando. Abs. Progr'amador
  2. Olá, veja os links: Decision cube Decision cube - 2ª parte Decision cube - 3ª parte Abs. Progr'amador
  3. Olá, o ideal seria que sua tabela tivesse um campo do tipo timestamp, já trazendo em DEFAULT a data e hora atual. Abs. Progr'amador
  4. Olá, essas tabalas tem campos em comum pra fazer o relacionamento entre si? seje mais especifico. Abs. Progr'amador
  5. confesso não entendi bem... você quer traduzir os dados (registros) de suas tabelas? Abs. Progr'amador
  6. Olá, isso é muito estranho.... tanto que fiz um teste aki com a mesma estrutura de tabela e deu certinho... você ta fazendo essa select direto no banco? qual a versão do seu MySQL? Abs. Progr'amador
  7. Olá, nesse link abaixo, você encontra varios demos como exemplo, inclusive o que você quer. http://www.songbeamer.com/delphi/ Abs. Progr'amador
  8. Faça exatamente assim: var valor, valor2 : real; id : string; valor2Ini, valor2Fim, i : integer; begin i := 0; id := f_cad_inquilinos.DBEdit1.text; valor2 := StrToFloat(edt_valor1.text); // aqui é o valor antigo valor := StrToFloat(edt_valor2.text); // aqui é o novo valor valor2Ini := StrToInt(edt_par.text); // aqui seria a parcela DE valor2Fim := StrToInt(edt_ate.text); //aqui seria a parcela ATE with dm do begin cds_pag_inq.Filtered := False; cds_pag_inq.Filter := 'id_inq='+id; cds_pag_inq.Filtered := True; cds_pag_inq.First; while not cds_pag_inq.Eof do begin inc(i); cds_pag_inq.Edit; if (i >= valor2Ini) and (i <= valor2Fim) then cds_pag_inqValor.Value := valor2 else cds_pag_inqValor.Value := valor; cds_pag_inq.ApplyUpdates(-1);// atualizar o registro cds_pag_inq.Next; end; cds_pag_inq.Filter := ''; cds_pag_inq.Filtered := False; end; end; Ae qualquer coisa, é só postar. Abs. Progr'amador
  9. Ahhhhh, agora você falou o que você quer na verdade, olha uma coisa é inserir novo registro outra coisa é editar um registro. Num post acima, onde mostrei um exemplo, usei seu proprio tópico onde ta inserindo novos registros, só implementei esse novo critério. Deixa eu ver se entendi: Primeiro você gera as parcelas, tudo igualzinho, ae DEPOIS você altera o valor de determinadas parcelas???? é isso mesmo? bom... se for isso, seria algo +ou- assim: while not ClientDataSet1.Eof do begin ClientDataSet1.Edit; if (i >= valor2Ini) and (i <= valor2Fim) then ClientDataSet1Valor.Value := valor2 // campo Float else ClientDataSet1Valor.Value := valor; // campo Float ClientDataSet1.ApplyUpdates(-1);// atualizar o registro ClientDataSet1.Next; end; tenta ae... a ideia seria basicamente essa. Abs. Progr'amador
  10. Olá MagoDanger, Uma forma de entender como seu programa ta trabalhando, é usando o DEBUG. Execulte o seu projeto e vai debugando (F8) linha por linha, que você vai encontrar o erro/falha, essa é uma forma bem eficaz de se fazer uma analize no seu código. Abs. Progr'amador
  11. Ola, ta meio confuso sua explicação. Tente ser mais claro. Abs. Progr'amador
  12. Olá Pra apagar você utiliza o comando DROP Então pra você alterar, você execulta o drop em seguida o create novamente. DROP TRIGGER add_valortotalvenda; Abs. Progr'amador
  13. isso, fica bloqueado pra edição vê se isso serve: procedure TForm1.DBGrid1ColEnter(Sender: TObject); begin if DBGrid1.SelectedIndex = 2 then DBGrid1.SelectedIndex := 0 end; só tem fazer adequações pro seu código conforme os campos de seu DBGrid Abs. Progr'amador
  14. Olá Geomar, tente fazer assim: procedure AdicionaAoStockLoja(produto:Integer); begin With ModuloDados.QryStockLoja do begin Close; SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L , OFI_CATEGORIAS C,'); SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = '+''''+IntToStr(produto)+''''+''); SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND'); SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO '); Open; end; ou assim: SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L , OFI_CATEGORIAS C,'); SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = :produto'); SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND'); SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO '); Parameters.ParamValues['produto'] := produto; Open; end; Abs. Progr'amador
  15. Olá pimpocvl007 realmente não existe a propriedade ENABLED para as colunas, no entanto, existe a propriedade ReadOnly para essa finalidade, basta deixar TRUE Abs. Progr'amador
  16. Lhe recomendo o Zeus. você só substituiria os compoentes da Palette ADO (dbGO) no caso: ADOQuery = ZQuery1 ADOConnection = ZConnection os da Palette Data Access, no caso o DataSource e DataSetProvider eles se conectam com qualquer componentes DataSet Abs. Progr'amador
  17. Eu ainda prefiro o MySQL. Com relação a saber qual é melhor.... acredito que MySQL é mais confiável ainda. Os componentes, já utilizei tres tipos de componentes: Zeus, DBExpress, e o BDE Abs. Progr'amador
  18. Olá MagoDanger, usando a logica do seu tópico anterior --> (Resolvido) Gerar Pagamentos ficaria +ou- assim: var valor, valor2 : real; venc, qtde_parc, i, valor2Ini, valor2Fim : integer; s : string; begin valor := StrToFloat(Edit1.text); valor2 := 650,00; valor2Ini := 8; valor2Fim := 24; Venc := StrToFloat (Edit2.text); parcelas := StrToInt(Edit3.text); memo1.Clear; Query1.Active := false; ClientDataSet1.Active := false; Query1.Active := true; ClientDataSet1.Active := true; Present:= Now; // coloque a data inicial aqui ( no lugar do now ) DecodeDate(Present, Year, Month, Day); mes := month; 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 mes > 11 then begin mes := 1; Year := Year + 1; end else inc(mes); ClientDataSet1parcelas.Value := inttostr(i) +'/'+inttostr(parcelas); // campo String if (i >= valor2Ini) and (i <= valor2Fim) then ClientDataSet1Valor.Value := valor2 // campo Float else ClientDataSet1Valor.Value := valor; // campo Float ClientDataSet1Vencimento.Value := strtodate(IntToStr(Day) + '/' + IntToStr(Mes) + '/' + IntToStr(Year))); // campo Data ClientDataSet1.Post; // salvar o registro ClientDataSet1.ApplyUpdates(-1);// atualizar o registro end; Abs. Progr'amador
  19. é possivel sim: unit Argumentos_por_EnderecoP; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; procedure Concatenar(nome, sobrenome: string); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Concatenar(nome, sobrenome: string); begin Edit3.Text := nome + ' ' + sobrenome; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; Edit1.SetFocus; end; procedure TForm1.Button3Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Button1Click(Sender: TObject); begin Concatenar(Edit1.Text,Edit2.Text); end; end. PS: Faça você mesmo uma analise e procure entender a difrença entre as duas. Abs. Progr'amador
  20. Olá André, Existe sim CURRENT_USER Abs. Progr'amador
  21. Olá Shinhatsubai, pra esse caso seria mas apropriado fazer uma function ao invés de procedure. Exemplo: unit Argumentos_por_EnderecoP; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; function Concatenar(nome, sobrenome: string) : string; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.Concatenar(nome, sobrenome: string) : string; begin Result := nome + ' ' + sobrenome; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; Edit1.SetFocus; end; procedure TForm1.Button3Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Button1Click(Sender: TObject); begin Edit3.Text := Concatenar(Edit1.Text,Edit2.Text); end; end. Abs. Progr'amador
  22. Progr'amador

    Lista de artilheiros

    outro modo: se o resultado é mesmo, a questão não é saber qual a mais correta, e sim a mais rápida, porque dependendo da número de registros pode da diferença de uma pra outra na tempo de execução. Abs. Progr'amador
  23. Olá MagoDanger Deixa eu me meter na conversa.... acho que é so você adicionar a linha do campo antes do dm.q_baixa_inq.Post; ficando assim: 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.FieldbyName('data_baixa').Value := StrToDate(edt_data.text); dm.q_baixa_inq.Post; dm.q_gerados_inq.Next; End; with dm.q_gerados_inq do while RecordCount > 0 do Delete; end; Abs. Progr'amador
  24. Olá robinhocne a ideia é +ou- assim: procedure TForm1.BitBtn2Click(Sender: TObject); var s, st1,st2,st3,st4: string; f: textfile; begin AssignFile(f, 'C:\Test\Base.txt'); Reset(F); while not Eof(f) do begin ReadLn(f,s); st1:= copy(s,1,pos(',',s)-1); delete(s,1,pos(',',s)); st2 := copy(s,1,pos(',',s)-1); delete(s,1,pos(',',s)); st3 := copy(s,1,pos(',',s)-1); delete(s,1,pos(',',s)); st4:= s; query1.close; query1.SQL.Clear; query1.SQL.Add('INSERT INTO Table(Col1,Col2,Col3,Col4) VALUES(:val1,:val2,:val3,:val4)'); query1.ParamByName('val1').Value:= st1; query1.ParamByName('val2').Value:= st2; query1.ParamByName('val3').Value:= st3; query1.ParamByName('val4').Value:= st4; query1.ExecSQL; end; CloseFile(F); end; Abs. Progr'amador
  25. Olá, tente procurar por outras fontes, alguma tem que da certo. Abs Progr'amador
×
×
  • Criar Novo...