nsouza
-
Total de itens
323 -
Registro em
-
Última visita
Posts postados por nsouza
-
-
Ai quando eu fosse criar um acesso era somente cadastar o nome e atribuir um perfil e ele já daria o devido acesso.
O que voce está querendo é um controle de nível de acesso, onde o usuário somente porderá acessar algumas coisas dentro do programa
Veja esses links e tire algumas idéias
http://geocities.yahoo.com.br/marcio.theis...troleAcesso.zip
http://www.inf.ufsc.br/~prass/sources/usuarios.zip
http://www.planetadelphi.com.br/dica/6717/...1tico-e-simples
http://edn.embarcadero.com/br/article/36235
abraço
(Resolvido) Vou analisar com cuidado, obrigado pela ajuda
-
Colegas,
um colega me forneceu uma copia do delphi 2009 trial salvo como imagem em um DVD.
consegui abrir a imagem e copiar o arquivo para o meu Drive C:, mas não consigo instalar pois quando clico em
instalar aparece a tela dando as opções de instalação, eu cliquei para instalar Delphi 2009 e C++ apenas executou um
janela do prompt do DOS mas não abriu a janela de instação do delphi.
Vocês poderiam me dar uma ajuda.
A versão é a 2009, mas e tem todos os arquivos porem meu amigo salvou, compactou n o winrar e me deu, não é a que você citou não.
Embora quando eu clico ele abre o forma para instalar.
-
Colegas,
olhei alguns exemplos de administração de usuário, são bons mas gostaria de tirar uma dúvida.
alguém tem alguns sistema que funcione da seguinte forma? Obs: Estou usando o Turbo Delphi 2006
1 - Registrar o Usuario
2- Ter uma opção para definir o perfil do usuario, ou seja posso criar o perfil e definir o que que ele usará
Ex
No meu menu tenho o seguinte.
Cliente, funcionario, relatório, consulta, pedido, venda, segurança, help, Ajuda
ai faço assim:
Perfil fucionario acessa:
Cliente, relatorio, consulta, venda, pedido
Perfil Administrador
Acessa tudo
Perfil Vendedor
Acessa Relatorio, Consulta
Ai quando eu fosse criar um acesso era somente cadastar o nome e atribuir um perfil e ele já daria o devido acesso.
Ex:
Jose Maria -> Perfil funcionario
Maria Jose -> Perfil Vendedor
Ronaldo Souza ->Pefil Administrador
Desta forma eu não teria que ficar atibuindo todos os menus eu crio o perfil e atribuo o perfil ao nome.
Muito obrigado, esta ajuda será muito importante.
-
Colegas,
um colega me forneceu uma copia do delphi 2009 trial salvo como imagem em um DVD.
consegui abrir a imagem e copiar o arquivo para o meu Drive C:, mas não consigo instalar pois quando clico em
instalar aparece a tela dando as opções de instalação, eu cliquei para instalar Delphi 2009 e C++ apenas executou um
janela do prompt do DOS mas não abriu a janela de instação do delphi.
Vocês poderiam me dar uma ajuda.
-
Não vou dizer a você que não conheço nada, estou aprendendo a programar e como todo iniciante talvez eu faça perguntas que pessoas experiente como vocês podem achar banais.
Eu tinha uma pasta no mysql com todas as minha tabelas, o problema que quando formatei meu micro fiz um backup desta pasta
agora preciso abrir o banco de dados, se eu criar um banco de dados novo terei que digitar todas a 28 tabela de novo e gostaria de reaproveitar
as tabelas deste backUp.
Alguém poderia me ajudar, levando em conta que sou um iniciante.
Desde já agradeço a ajuda bem disposta.
-
Se você cria um diretorio, como você faz para direcionar os arquivos para ele?
Obrigado!
-
Colegas,
estou precisando muito obter o delphi 2007, no site da embargadero não tem ele disponivel mais.
Será que alguém poderia disponibilizar um link o alguma coisa que pode me ajudar a baixar.
Pode ser a versão Trial.
Estou precisando muito mesmo.
Obrigado!
-
Colegas,
instalei a mysql 5.1 mas não consigo acessar a pasta onde ficam armazenadas as tabelas, já olhei em:
C:\Arquivos de programas\MySQL\MySQL Server 5.1\, mas não encontrei, mandei localizar e nada.
Como faço para acessa-la.
Obrigado.
-
Colegas, eu tenho o turbo delphi 2006 (free) , algum pode me ajudar por indicar um ferramenta de relatório com a instrução de como instalar por favor?
A versão gratuita do turbo delphi 2006 têm algumas limitações, sendo que a principal delas é a impossibilidade de instalar componentes adicionais na IDE.
Entretanto acho que voce pode usar o Fast-Report
http://ns.fast-report.com/pbc_download/
abraço
Usei o report manager, você tem algum tutorial que ensina a integrar ele ao turbo delphi já que ele é um gerador externo a IDE do delphi?
-
Colegas, eu tenho o turbo delphi 2006 (free) , algum pode me ajudar por indicar um ferramenta de relatório com a instrução de como instalar por favor?
-
Colegas,
alguém tem algum material que ensina a instalar a paleta Rave no Delphi 8?
Obrigado
-
Principais Exceções
O Delphi define muitas exceções, para cada erro existe uma exceção correspondente.
Classe
Descrição
Exception
Exceção genérica, usada apenas como ancestral de todas as outras exceções
EAbort
Exceção silenciosa, pode ser gerada pelo procedimento Abort e não mostra nenhuma mensagem
EAccessViolation
Acesso inválido à memória, geralmente ocorre com objetos não inicializados
EConvertError
Erro de conversão de tipos
EDivByZero
Divisão de inteiro por zero
EInOutError
Erro de Entrada ou Saída reportado pelo sistema operacional
EIntOverFlow
Resultado de um cálculo inteiro excedeu o limite
EInvalidCast
TypeCast inválido com o operador as
EInvalidOp
Operação inválida com número de ponto flutuante
EOutOfMemory
Memória insuficiente
EOverflow
Resultado de um cálculo com número real excedeu o limite
ERangeError
Valor excede o limite do tipo inteiro ao qual foi atribuída
EUnderflow
Resultado de um cálculo com número real é menor que a faixa válida
EVariantError
Erro em operação com variant
EZeroDivide
Divisão de real por zero
EDatabaseError
Erro genérico de banco de dados, geralmente não é usado diretamente
EDBEngineError
Erro da BDE, descende de EDatabaseError e traz dados que podem identificar o erro
try DM.Cds_Inadimplente.Post; DM.Cds_Inadimplente.ApplyUpdates(-1); [b]Except on E: Exception do[/b] begin MessageDlg('Erro ao salvar o registro.'+#13+#10+E.Message,mtError,[mbOk],0); DM.Cds_Inadimplente.CancelUpdates; end; end; DM.V_Morador.Next; end; ShowMessage ('Foi gerada a tabela referente ao mês de ' + mes_ano + ' incluindo todos os inadimplentes'); End;
Veja que voce colocou a classe basica das Exceções e dela são derivadas todas as outras
Primeiro veja que tipo de exceção esta sendo gerada para poder tratar esse erroException Base class EAbort Abort without dialog EAbstractError Abstract method error AssertionFailed Assert call failed EBitsError Boolean array error ECommonCalendarError Calendar calc error EDateTimeError DateTime calc error EMonthCalError Month calc error EConversionError Raised by Convert EConvertError Object convert error EDatabaseError Database error EExternal Hardware/Windows error EAccessViolation Access violation EControlC User abort occured EExternalException Other Internal error EIntError Integer calc error EDivByZero Integer Divide by zero EIntOverflow Integer overflow ERangeError Out of value range EMathError Floating point error EInvalidArgument Bad argument value EInvalidOp Inappropriate operation EOverflow Value too large EUnderflow Value too small EZeroDivide Floating Divide by zero EStackOverflow Severe Delphi problem EHeapException Dynamic memory problem EInvalidPointer Bad memory pointer EOutOfMemory Cannot allocate memory EInOutError IO error EInvalidCast Object casting error EInvalidOperation Bad component op EMenuError Menu item error EOSError Operating system error EParserError Parsing error EPrinter Printer error EPropertyError Class property error# EPropReadOnly Invalid property access EPropWriteOnly Invalid property access EThread Thread error EVariantError Variant problemtry DM.Cds_Inadimplente.Post; DM.Cds_Inadimplente.ApplyUpdates(-1); [b]Except on E: Exception do[/b] begin ShowMessage('Exception class name = '+E.ClassName); ShowMessage('Exception message = '+E.Message); DM.Cds_Inadimplente.CancelUpdates; end; end; DM.V_Morador.Next; end; ShowMessage ('Foi gerada a tabela referente ao mês de ' + mes_ano + ' incluindo todos os inadimplentes'); End;
http://scriptbrasil.com.br/forum/index.php...te=exce%E7%F5es
abraço
Caro Jhonas
fiz o seu exemplo usando usa explicação da a mensagem EDataBaseError with message 'Duplicate entry '201-8/2009' for key 1.
Tentei usar a classe EDataBaseError, mas deu que era desconhecida e continou dando a mesma mensaem em ingles.
Qual classe devo aplicar?
-
mas quando clico no botão esta inserindo apenas um registro.
Faça a alteração no código
procedure TF_GerarInadimplente.SpeedButton1Click(Sender: TObject); Var mes_ano:string; VarDate: TDate; i : integer; begin DM.CDs_Inadimplente.close; DM.Cds_Inadimplente.open; VarDate:= strToDate(mkeDataInicio.text); // Seleciona todos os registros da tabela morador With DM.V_Morador do begin Active:= false; SQL.Clear; SQL.Add('Select * from morador'); Active:= true; end; For i := 1 to DM.V_Morador.RecordCount do begin // Codigo para inserir registros na tabela inadimplencia If DM.V_Morador.fieldbyname('codapt').AsString <> '' then begin DM.Cds_Inadimplente.append; DM.CDs_Inadimplentecodapt.AsString := DM.V_Morador.fieldbyname('codapt').asstring; DM.Cds_InadimplenteCodCondominio.AsString := DM.V_Morador.fieldbyname('codCondominio').asstring; mes_ano:= IntToStr(MonthOf(VarDate)) + '/' + intToStr(YearOf(VarDate)); DM.Cds_InadimplenteMesAno.asstring := mes_ano; DM.Cds_Inadimplente.post; DM.Cds_Inadimplente.ApplyUpdates(-1); end; DM.V_Morador.Next; end; ShowMessage ('Foi gerada a tabela referente ao mês de ' + mes_ano + ' incluindo todos os inadimplentes'); End;
abraço
Caro Jhonas,
Funcionou, muito obrigado.
Pra ficar mais melhor eu gostaria de implementar um tratamenteo de erro usando o Try
porque que quando clico no botão da a mensagem de erro que esta com registro duplicado eu gostaria
de uma mensagem de erro mais amigavel para o usuario.
Tentei fazer mas continuou dando a mensagem em inglês do sistema, e para cada registro disparava uma mensagem
ao invés de da a mensagem no fim da importação.
Poderia analisar para mim por favor?
Fiz assim:
try
DM.Cds_Inadimplente.Post;
DM.Cds_Inadimplente.ApplyUpdates(-1);
Except on E: Exception do
begin
MessageDlg('Erro ao salvar o registro.'+#13+#10+E.Message,mtError,[mbOk],0);
DM.Cds_Inadimplente.CancelUpdates;
end;
end;
DM.V_Morador.Next;
end;
ShowMessage ('Foi gerada a tabela referente ao mês de ' + mes_ano + ' incluindo todos os inadimplentes');
End;
-
Colegas,
meu problema é que o procedimento abaixo não insere todos os registos na tabela.
Ele tem que selecionar todos os registros da tabela morador, no exemplo abaixo a tabela tem 3 registros
mas quando clico no botão esta inserindo apenas um registro.
Alguém poderia ajudar, por favor?
procedure TF_GerarInadimplente.SpeedButton1Click(Sender: TObject);
Var mes_ano:string;
VarDate: TDate;
begin
DM.CDs_Inadimplente.close;
DM.Cds_Inadimplente.open;
VarDate:= strToDate(mkeDataInicio.text);
// Seleciona todos os registros da tabela morador
With DM.V_Morador do
begin
Active:= false;
SQL.Clear;
SQL.Add('Select * from morador');
Active:= true;
end;
// Codigo para inserir registros na tabela inadimplencia
If DM.V_Morador.fieldbyname('codapt').AsString <> '' then
begin
DM.Cds_Inadimplente.append;
DM.CDs_Inadimplentecodapt.AsString := DM.V_Morador.fieldbyname('codapt').asstring;
DM.Cds_InadimplenteCodCondominio.AsString := DM.V_Morador.fieldbyname('codCondominio').asstring;
mes_ano:= IntToStr(MonthOf(VarDate)) + '/' + intToStr(YearOf(VarDate));
DM.Cds_InadimplenteMesAno.asstring := mes_ano;
DM.Cds_Inadimplente.post;
end;
DM.Cds_Inadimplente.ApplyUpdates(-1);
ShowMessage ('Foi gerada a tabela referente ao mês de ' + mes_ano + ' incluindo todos os inadimplentes');
End;
-
Muito obrigado, ficou muito bom!
O problema é que quando tenho somente um registro na Grid, ele mostra a mensagem 0 morador foi arquivado, deveria mostrar 1 morador foi arquivado. O que houve?
Primeiramente, quando existe mais de 1 registro ele dá certo? Ou ele sempre vai mostrar com um resultado a menos?
Lembre-se que a mensagem " X moradores foram arquivados com sucesso" deve estar logo após o término do LOOP
Obrigado, ficou perfeito!
(Resolvido) Selecionar linha do DBGrid;
Colegas,
desculpe por reativar este post.
O fato é o seguinte.
Tudo explicado ate agora funcionou, eu seleciono várias linha do DBGrid e ele adiciona na tabela,
Mas gostaria que as linhas que não fossem selecionadas tb fossem inseridas em uma tabela Ex.:
Linhas selecionadas -> A clicar no botão confirmar fossem para Tabela "A"
Linhas não seleciondas -> Ao mesmo tempo que o botão Confirmar fosse clicado essas dados tb seriam exportado porém para a tabela "B"
Obrigado!
-
Colegas,
gostaria de em um campo digitar valores do tipo
5% - 5,26% - 32,35% - 72,58% etc.... isto para o usuário, mas
mas no banco dedaos gravasse os valores 0,05 - 0,526 etc...
alguém tem algum exemplo?
Obrigado
-
Muito obrigado, ficou muito bom!
O problema é que quando tenho somente um registro na Grid, ele mostra a mensagem 0 morador foi arquivado, deveria mostrar 1 morador foi arquivado. O que houve?
Primeiramente, quando existe mais de 1 registro ele dá certo? Ou ele sempre vai mostrar com um resultado a menos?
Lembre-se que a mensagem " X moradores foram arquivados com sucesso" deve estar logo após o término do LOOP
Obrigado, ficou perfeito!
(Resolvido) Selecionar linha do DBGrid;
-
1 - Mas como faço para configura o campo no formato R$ 60,35 ou apenas 60,35?
2 - Na minha procedure grava (enviar os dados para o banco) devo referenciar desta forma:
DM.Q_Condominio.Fieldbyname('vlrCondominio').values := strToFloat(DBEdit1.text); ?
3- O campo no banco de dados eu formatei como Double(9,2) posso deixar assim mesmo?
na aplicação, se fosse EU, utilizaria um edit normal, com um evento no OnKeyPress para receber apenas números e a vírgula. E depois, na gravação do parâmetro, eu utilizaria:
DM.Q_Condominio.Fieldbyname('vlrCondominio').AsFloat := strToFloat(Edit1.text);
E quanto ao banco, pode deixar assim mesmo.
Qualquer dúvida, poste aí.
Calega, nada!
Coloquei o TEdit e coloquei um DBEdit, e deu a mensagem de erro:
'Data Truncated for colunm'precocondominio' at row1'
Quando gravo direto no banco de dados não da este problema, mas quando mando gravar do
formulário aparece esta mensagem.
alguém sabe como resolver isso?
-
O Jeito mais facil, e ainda traduzindo as opçoes do messageDlg para portugues (para ficar Yes= Sim No=Não e Cancel=Cancelar)
var mensagem : TForm;
begin
//MOSTRA O MESSAGEDLG (TRADUZIDO PARA PORTUGES)
Mensagem:=CreateMessageDialog(' MENSAGEM ',MtConfirmation,[MbYes,MbNo]);
Mensagem.Caption:='TITULO';
TButton(Mensagem.FindComponent('Yes')).Caption:='Sim';
TButton(Mensagem.FindComponent('No')).Caption:='Não';
Mensagem.ShowModal;
if Mensagem.ModalResult=MrYes then begin
Arquivar;
DMConsultas.CDs_ListaMorador.Delete;
DMConsultas.CDs_ListaMorador.ApplyUpdates(-1);
DMConsultas.CDs_ListaMorador.Refresh;
exit;
end;
if Mensagem.ModalResult=MrNo then begin
DMConsultas.CDs_ListaMorador.Delete;
DMConsultas.CDs_ListaMorador.ApplyUpdates(-1);
DMConsultas.CDs_ListaMorador.Refresh;
exit;
end;
end;
para adicionar o cancelar as opçoes seria só alterar MtConfirmation,[MbYes,MbNo] para MtConfirmation,[MbYes,MbNo,MBCancel]
(Resolvido) Incrementar procedimento para excluir
-
Opa, faz o seguinte, no lugar do editnum coloque um DBEdit, e link-o no field correspondente.
Já no Campo Status tente apaga-lo, e crio-o novamente, porem já coloque todas as configurações que necessita.
Abraços
1 - Mas como faço para configura o campo no formato R$ 60,35 ou apenas 60,35?
2 - Na minha procedure grava (enviar os dados para o banco) devo referenciar desta forma:
DM.Q_Condominio.Fieldbyname('vlrCondominio').values := strToFloat(DBEdit1.text); ?
3- O campo no banco de dados eu formatei como Double(9,2) posso deixar assim mesmo?
Obrigado!
-
Eu uso a ferramenta grafica EMS for mysql, quando digito o valor diretamente nela ou altero o valor funciona perfeitamente.
O problema ésta no frontend. Quando digito no formulário ai da a mensagem de erro.
Como o problema não está relacionado diretamente ao MySQL, solicito que você informe a ferramenta de programação que você usa para que eu possa transferir este tópico para a área correta.
Este tópico eu postei no forum Delphi/Kylix e não tive sucesso.
Estou usando Delphi, conexão dbexpress, mysq 5.0.77
-
Paz, amado.
Referente ao campo vlrCondominio, pode ser algum erro de formatação, no caso acho que pode ser a vírgula, no lugar da vírgula tente colocar um ponto, e veja se você conseguiu.
Fique na paz!
Já fiz isso, essa virgula é do componente EditNum, tenho um outro banco de dados que funiona normalmente com ele.
Não sei o que pode ter ocorrido! Ainda espero ajuda...
-
'nsouza' ,
Quando você executa os comandos diretamentye na linha de comando do MySQL a gravação é efetuada?
Se for, o problema pode estar em um de dois lugares: o ODBC (a versão pode estar com erro) ou o componente do Delphi.
Tenta de novo e reporte o que você vê.
Estou achando estranho pois não estou reconhecendo as mensagens de erro como sendo do MySQL.
Eu uso a ferramenta grafica EMS for mysql, quando digito o valor diretamente nela ou altero o valor funciona perfeitamente.
O problema ésta no frontend. Quando digito no formulário ai da a mensagem de erro.
-
você poderia dar um exemplo de como fazer esse loop, sou iniciante no delphi.
procedure TForm.SpeedButton1Click(Sender: TObject); var idx, //contador :integer begin fdados.tabelareceptora.append; //contador := 0; 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; //contador := contador+1; Fdados.tabelareceptora.Append; end; //onde_quer_o_texto.text := 'Foram arquivados ' + contador + ' registros.'; Fdados.tabelareceptora.ApplyUpdates(0); end;
só adicionar as linhas que eu coloquei // na frente obviamente retirando as barras ou simplesmentefdados.tabelareceptora.first; while not fdados.tabelareceptora.eof do begin contador := contador +1; fdados.tabelareceptora.next; end; onde_quer_o_texto.text := 'Foram arquivados ' + contador + ' registros.';
Muito obrigado, ficou muito bom!
O problema é que quando tenho somente um registro na Grid, ele mostra a mensagem 0 morador foi arquivado, deveria mostrar 1 morador foi arquivado. O que houve?
Ausência do campo text no firebird
em Demais Bancos
Postado
Colegas,
no mysql eu tenho o campo text ou smalltext para guardar grande qtdes de informação.
Qual campo equivale ao txt no firebird. Tem outro além de varchar? Se não tiver qual é a capacidade maxima
do varchar?
Obrigado