
nsouza
Membros-
Total de itens
323 -
Registro em
-
Última visita
Tudo que nsouza postou
-
(Resolvido) Incrementar procedimento para excluir
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
(Resolvido) Incrementar procedimento para excluir Obrigado aos dois colegas por ter ajudado. No fim apliquei o exemplo do Douglas. -
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;
-
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
-
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?
-
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.
-
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!
-
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'.
-
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?
-
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!
-
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
-
É 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.
-
Obrigado! você conhece algum procedimento para importar os dados do DBGrid apos seleciona-los?
-
Pelo contrário, o text deu erro, mas enfim concertou e estou rodando normal. obrigado de novo.
-
Obrigado, funcionou (Resolvido) Não consigo abrir dataset
-
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!
-
Jhonas, estou usando um TSQLQuery, e não encontrei esta propriedade, você usou este componente quando fez o teste?
-
(Resolvido) Digito a mais ou a menos no campo
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
Jhonas muito obrigado (Resolvido) -
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
-
Desculpe eu reativar esta código, mas como faço para declarar e chamar esta função?
-
(Resolvido) Digito a mais ou a menos no campo
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
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) -
(Resolvido) Digito a mais ou a menos no campo
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
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! -
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;
-
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á?
-
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?
-
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)