Ir para conteúdo
Fórum Script Brasil

nsouza

Membros
  • Total de itens

    323
  • Registro em

  • Última visita

Tudo que nsouza postou

  1. (Resolvido) Incrementar procedimento para excluir Obrigado aos dois colegas por ter ajudado. No fim apliquei o exemplo do Douglas.
  2. Colegas, o procedimento abaixo esta funcionando, mas gostaria de colocar a opção de Yes, No, Cancel Tentei mas duplicou a mensagem. SE Yes, arquiva o registro e depois deleta, SE No, deleta o arquivo Se Cancel, cancela a operação. Poderiam incrementar este codigo para mim. obrigado! procedure TF_Condominio.Excluir1Click(Sender: TObject); begin if Application.MessageBox('Deseja arquivar antes de excluir excluir este registro?','Exclusão', + MB_YESNO + MB_ICONQUESTION) = IDYES then begin arquivar; DMConsultas.CDs_ListaMorador.Delete; DMConsultas.CDs_ListaMorador.ApplyUpdates(-1); DMConsultas.CDs_ListaMorador.Refresh; exit; end else begin DMConsultas.CDs_ListaMorador.Delete; DMConsultas.CDs_ListaMorador.ApplyUpdates(-1); DMConsultas.CDs_ListaMorador.Refresh; exit; end; end;
  3. Este é o meu procedimento para gravar no banco de dados. with DM.CDs_Condominio do begin FieldByName('nome').AsString := edtCondominio.Text; FieldByName('endereco').AsString := edtEndereco.Text; FieldByName('numero').AsString := edtNumero.Text; FieldByName('complemento').AsString := edtComplemento.Text; FieldByName('bairro').AsString := edtBairro.Text; FieldByName('cidade').AsString := edtCidade.Text; FieldByName('estado').AsString := cbEstado.Text; FieldByName('cep').AsString := mkeCep.Text; if mkeMandato.Text <> (' / / ') then FieldByName('mandato').AsString := mkeMandato.Text; FieldByName('email').AsString := edtEmail.Text; FieldByName('sindico').AsString := edtSindico.Text; FieldByName('telefone').AsString := mkeTelefone.Text; FieldByName('celular').AsString := mkeCelular.Text; FieldByName('qtdeapt').AsString := edtQtde.Text; FieldByName('aptinicial').AsString := edtAptinicial.Text; FieldByName('aptfinal').AsString := edtAptfinal.Text; if mkeInicioCont.Text <> (' / / ') then FieldByName('iniciocontrato').AsString := mkeInicioCont.Text; if mkeFimCont.Text <> (' / / ') then FieldByName('fimcontrato').AsString := mkeFimCont.Text; FieldByName('vlrcondominio').asstring:= edtValorCond.Text; end; Respondendo a suas perguntas: 1) Notei que sua procedure Alterar está pegando os dados do seu TDataSet. É nesse momento que aparece o erro? R: O erro aparece quando clico no botão confirmar ativando a procedure gravar. Quando você está puxando os dados para os edits? Ou é em outro momento, quando você transfere os dados alterados para o TDataSet e tenta gravar? R: É neste ponto que aparece o problema. 2) Qual é banco de dados que você está utilizando? R: Estou utilizando o mysql v. 5.0.77 Quais são os campos em questão que estão dando problema e quais os tipos e restrições atribuídos a eles? R: Esta dando problema no campo vlrCondominio. E um campo que usei o componente EditNum. Você consegue inserir normalmente o valor "60,35" diretamente no banco? Talvez seja algum problema na definição do campo. R: No banco de dados consigo inserir normamente, o problema é quendo mando do delphi para o banco. O campo é do tipo Double(9,2) 3) Quando você debuga a aplicação onde exatamente aparece o erro? Em que momento da aplicação? Como sou iniciate e estou fazendo o curso a distância e desenvolvento um sistema em paralelo ao que aprendo no curso para aplicar meus conhecimentos, ainda não cheguei na parte que ensina a debugar. E como disse só ocorre ao gravar
  4. Denis, essa não é a origem do problema, quando se usa o componente EditNum ele já vem com o formato 0.00 que é mostrado para o usuário 0,00. Mesmo assim fiz as alterações que você pediu e continua. Outro ponto é o seguinto caso, em que os valores não digitados em um formulário. Olhe para você ver?
  5. Acho que nisso eu posso ajudar. Que tal você colocar uma variável do tipo inteiro dentro da estrutura de loop, iniciando ela com 0 e incrementando +1 a cada loop. Depois, no showmessa você concatena a string da mensagem com o o número contido na variável. Nisso, você estará exibindo o número de registros transferidos. Testa aí e depois nos fale =] abraços você poderia dar um exemplo de como fazer esse loop, sou iniciante no delphi.
  6. Colegas, o que pesquisei aqui não resolveu meu problema. Tenho um campo no banco de dados mysql 5.0 chamado vlrCondominio tipo: (double 9,2) . Quando insiro o valor ex: 60,50 direto no banco de dados ele aceita, mas quando digito no campo do formulário um EditNum o valor 60,50 da a mensagem de erro: Truncated incorret double value: '60,50' No delphi eu programei o tamanho do campo para Maxlength 15 Outro caso. Criei um campo chamado status integer(11), este campo é uma chave estrangeira da tabela status que tem os campos codigo (integer,11) e descricao (varchar,50) o campo codigo é autoincremente, já o campo estatus na outra tabela quando vou marcar as opões not null e unsigned para criar a chave estrangeira da a mensagem: 'Data Truncated for colunm'status' at row1' Desde já obrigado!
  7. bom.. eu fiz algo dessse tipo aqui esses dias procedure TForm.SpeedButton1Click(Sender: TObject); var idx :integer begin fdados.tabelareceptora.append; with DBGrid1.DataSource do if DBGrid1.SelectedRows.Count > 0 then for Idx :=0 to DBGrid1.SelectedRows.Count-1 do begin fdados.tabelaexportadora.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[Idx])); fdados.tabelareceptora.FieldByName('NOME').Value := fdados.tabelaexportadora.FieldByName('NOME').Value; fdados.tabelareceptora.FieldByName('PROFISSAO').Value := fdados.tabelaexportadora.FieldByName('PROFISSAO').Value; fdados.tabelareceptora.FieldByName('SALARIO').Value := fdados.tabelaexportadora.FieldByName('SALARIO').Value; Fdados.tabelareceptora.Append; end; Fdados.tabelareceptora.ApplyUpdates(0); end; não esqueça que a tabela que receberá os dados deve conter campos com a mesma estrutura da que esta enviando os dados e não esqueça de habilitar as opçoes no dgbrid : dgMultiSelect, dgRowSelect não pude testar se esta funcionando mas o meu aqui trabalha de forma semelhante e funciona Muito obrigado, era exatamente o que eu queria! Gostaria de saber se é possivel apos salvar os dados na tabela exibir uma mensagem de qtos registros foram arquivados ex.: showmassage: 'Foram arquivados (5) registros'.
  8. Isso é normal +----------+------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+------------------------------+------+-----+---------+----------------+ | id | tinyint(3) unsigned zerofill | NO | PRI | NULL | auto_increment | | name | varchar(15) | NO | | | | | password | char(32) | NO | | | | | fullname | varchar(50) | NO | | | | +----------+------------------------------+------+-----+---------+----------------+ mensagem 'Data truncated for collunm mat row1'. Truncated incorret DOUBLE value 60,35. Dados truncados para a coluna Mat linha 1 Valor Double truncado incorreto 60,35 Pode ser bug do Mysql ou valor passado de forma incorreta http://bugs.mysql.com/bug.php?id=21475 abraço Caro Jhonas, obrigado pelo retorno, mas tenho dificuldade com o Inglês, como poderia resolver esse problema?
  9. se voce postar o código fica mais facil alguém te ajudar abraço Esta é a procedure que uso para alterar um registro procedure TF_Condominio.alterar; begin with DM.CDs_Condominio do begin edtCodigo.Text := FieldByName('codCondominio').AsString ; edtCondominio.Text := FieldByName('nome').AsString ; edtEndereco.Text := FieldByName('endereco').AsString ; edtNumero.Text := FieldByName('numero').AsString ; edtComplemento.Text := FieldByName('complemento').AsString ; edtBairro.Text := FieldByName('bairro').AsString ; edtCidade.Text := FieldByName('cidade').AsString ; cbEstado.Text := FieldByName('estado').AsString ; mkeCep.Text := FieldByName('cep').AsString ; mkeMandato.Text := FieldByName('mandato').AsString ; edtEmail.Text := FieldByName('email').AsString ; edtSindico.Text := FieldByName('sindico').AsString ; mkeTelefone.Text := FieldByName('telefone').AsString ; mkeCelular.Text := FieldByName('celular').AsString ; edtQtde.Text := FieldByName('qtdeapt').AsString ; edtAptinicial.Text := FieldByName('aptinicial').AsString ; edtAptfinal.Text := FieldByName('aptfinal').AsString ; mkeInicioCont.Text := FieldByName('iniciocontrato').AsString ; mkeFimCont.Text := FieldByName('fimcontrato').AsString ; edtValorCond.Text := FieldByName('vlrcondominio').AsString ; //cbvencimento.Text := FieldByName('vencimento').AsString ; end; end; No campo em negrito estou usando um EditNum, pois é um valor EX: 60,35 que sera digitado. No banco de dados mysql 5.0 o campo esta como vlrcondominio (double(9,2). Quando digito o valor e confirmo utilizando o código acima da a mensagem de erro: Truncated incorret DOUBLE value 60,35. Também direto do banco de dados, criei um campo tipo integer quer sera uma chave estrangeiro, quando vou marcar a opção Not null e unsigned da a mesma mensagem. Esta campo ainda não fiz nada no formulário com ele. Obrigado!
  10. Colegas, tenho dois campos Status (integer(11) vrlCondominio(double(9,2) Estou tentando salver os registros e retorna a mensagem 'Data truncated for collunm mat row1'. Como posso resolver este problema? obrigado
  11. É por ai mesmo no meu caso seria: Nome | prifissão | salario Carlos | Pedreiro | 600,00 Jose | pintor | 500,00 Maria | faxineira | 450,00 Suponho que no dbgrid eu seleciono as linhas Jose e maria, depois eu clico no botão confirmar no formulário e ele exporta os dados para uma tabela qualquer. Ou seja, no preciso saber o código de botão confirmar para realizar esta atividade uma vez que o dbgrid terá duas ou mais linha, tantas qtas forem necessario selecionar.
  12. Obrigado! você conhece algum procedimento para importar os dados do DBGrid apos seleciona-los?
  13. Pelo contrário, o text deu erro, mas enfim concertou e estou rodando normal. obrigado de novo.
  14. Obrigado, funcionou (Resolvido) Não consigo abrir dataset
  15. Senhores, eu estou criando um form para importar os dados para uma tabela. para isso exibi os dados em um DBGrid onde o usuario irá selecionar e ao clicar no botão confirmar os dados serão inseridos na tabela. Gostaria de usar o DbGrid como se usa no excel. Ao clicar na linha ele seleciona a linha toda mas com a opção de se o usuário quiser selecionar varios registros ele pressiona a tecla shift e vai marcando qtos registros quiser e depois é so clicar no botão confirmar e os dados serão importado. Tem jeito? Obrigado!
  16. Jhonas, estou usando um TSQLQuery, e não encontrei esta propriedade, você usou este componente quando fez o teste?
  17. Estou usando o DBExpress com o cliente dataset. Mas no evento deste Grid estou usando uma query Q_ImportaMorador porque a função dela é somente gravar os dados e unidirecional. Quando usei o cliente dataset deu o mesmo erro. Abaixo o codigo do evento OnCellClick.. Fiz desta maneira com o intuito de abrir ou ativar a query. Ai deu a mensagem que enviei anteriormente. Messagem Q_ImportaMorador: Cannot modify a read only dataset procedure TF_ImportaMorador.DBGrid1CellClick(Column: TColumn); begin DMConsultas.Q_ImportaMorador.Close; DMConsultas.Q_ImportaMorador.Open; DMConsultas.Q_ImportaMorador.Active:=false; DMConsultas.Q_ImportaMorador.Active:=true; if Column.ID = 0 then begin if DMConsultas.Q_ImportaMoradorarquivo.asstring = 'X' then begin DMConsultas.Q_ImportaMorador.Edit; DMConsultas.Q_ImportaMoradorarquivo.asstring := ''; DMConsultas.Q_ImportaMorador.post; end else begin DMConsultas.Q_ImportaMorador.Edit; DMConsultas.Q_ImportaMoradorarquivo.asstring := 'X'; DMConsultas.Q_ImportaMorador.post; end; end; end
  18. Desculpe eu reativar esta código, mas como faço para declarar e chamar esta função?
  19. Jhonas, copiei o codigo e fiz tudo como orientado no tutorial. O Problema é que um dos CEP'S DE MG É 36050-130 e da a mensagem "Cep inválido" mesmo se eu simular um CEP tipo 45888-555 que não é de MG. Continua a mesma mensagem. Quanto ao CPF veio um arquivo ponto .PAS como procedo neste caso? Obrigado mais uma vez! Mas foi isso que eu fiz. o Edit um equivale ao mkeCep do meu programa e o edit 2 equivale a cbStado. ai fica 36000-10 (maskedit) e MG(Combobox)
  20. Jhonas, copiei o codigo e fiz tudo como orientado no tutorial. O Problema é que um dos CEP'S DE MG É 36050-130 e da a mensagem "Cep inválido" mesmo se eu simular um CEP tipo 45888-555 que não é de MG. Continua a mesma mensagem. Quanto ao CPF veio um arquivo ponto .PAS como procedo neste caso? Obrigado mais uma vez!
  21. Jhonas, fiz o que você orientou de ativar a query, mas da a mensagem abaixo. Messagem Q_ImportaMorador: Cannot modify a read only dataset Como posso resolver esta problema. Desculpe por insistir em erros que pra você talvez sejam basicos. procedure TF_ImportaMorador.DBGrid1CellClick(Column: TColumn); begin DMConsultas.Q_ImportaMorador.Close; DMConsultas.Q_ImportaMorador.Open; DMConsultas.Q_ImportaMorador.Active:=false; DMConsultas.Q_ImportaMorador.Active:=true; if Column.ID = 0 then begin if DMConsultas.Q_ImportaMoradorarquivo.asstring = 'X' then begin DMConsultas.Q_ImportaMorador.Edit; DMConsultas.Q_ImportaMoradorarquivo.asstring := ''; DMConsultas.Q_ImportaMorador.post; end else begin DMConsultas.Q_ImportaMorador.Edit; DMConsultas.Q_ImportaMoradorarquivo.asstring := 'X'; DMConsultas.Q_ImportaMorador.post; end; end; end;
  22. Colegas, eu tenho o campo CEP 35000120 com o maskedit fica 36000-120. Gostaria que quando alguém digita abaixo ou acima de 8 digitos desce a uma mensagem avisando que falta ou excede caracter. O mesmo para o CPF. Obrigado pela sua ajuda desde já?
  23. nsouza

    Valor padrão

    Já estaou baixando. Mas uma dúvida. Eu já tenho o mysql 5.0 instalado e o apache 2.2. Da ultima vez que instalei um tal de xammp que tinha o mysql, apache, phpadmim, não consgui abrir meu banco de dados em dalphi, deu um monte de erro. Como faço para instala-lo sem inteferir nas minha aplicações?
  24. Not Null significa Não Nulo ( ou seja o campo sempre deverá ter um valor ) o erro que ocorreu é uma tentativa de converter um valor nulo em uma string ... entendeu ? por isso verifique a definição de sua tabela e o código que está usando para trabalhar com essa tabela abraço Obrigado (Resolvido)
×
×
  • Criar Novo...