Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) EDatabaseErro (conexão banco de dados)


Alex Ferreira

Pergunta

Olá Galera,

Eu estou aprendendo delphi e estou com um problema, bom.... eu tentei fazer uma consulta no banco de dados MySQL 5.0 para fazer autenticação de Login e senha, porem apareceu um erro que eu não conseguir indentificar, abaixo eu vou colocar o codigo que eu fiz e logo apos o erro que deu.

procedure TFrmLogin.BtnOkClick(Sender: TObject);
begin
UDM2.ConexaoADO.ADO_Usuarios.Open;
FrmMenuPrin.StatusBar1.Panels[2].Text := ' Usuário:' +
FrmLogin.EdtApelido.Text  + ' - '+  UDM2.ConexaoADO.ADO_UsuariosUsuDepto.AsSTring;

If not (UDM2.ConexaoADO.ADO_Usuarios.Locate('UsuApelido', FrmLogin.EdtApelido.Text,
[loPartialKey ])) or  (UDM2.ConexaoADO.ADO_UsuariosUsuSenha.Text <> FrmLogin.EdtSenha.Text) then
begin
      MessageDlg('Nome ou senha do usuário inválidos.'+#13+#13
      + 'Se você esqueceu sua senha, consulte '+ #13
      + 'o administrador do sistema', mtError, [mbOK], 0);
      EdtSenha.Clear; // limpa o objeto EdtSenha
      EdtSenha.SetFocus; //Ajusta o foco para o objeto EdtSenha
end
else
begin
    FrmLogin.Hide; //Esconde a tela
    FrmMenuPrin.ShowModal; //chama a tela FrmMenuPrin no modo modal
    FrmLogin.Release; //Remove a tela da memória
       FrmLogin := Nil; //Atribui conteúdo nulo para a variável de tela FrmLogin
end;

ERRO : Project Sistema.exe raised exception class EDatabaseErro with message "ADO_Usuarios: Type mismatch for field ´UsuSenha´, expecting : Integer actual:String´, Process stopped. Use Step or Run to Continue

No UsuSenha do banco de dados esta com o tipo varChar.

Abraço a todos, fico aguardando ajuda

Editado por Micheus
Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

ERRO : Project Sistema.exe raised exception class EDatabaseErro with message "ADO_Usuarios: Type mismatch for field ´UsuSenha´, expecting : Integer actual:String´, Process stopped. Use Step or Run to Continue

tradução

ERRO: Projeto Sistema.exe elevou classe de exceção EDatabaseErro com mensagem " ADO_Usuarios: Tipo incompativel para campo ´UsuSenha´, esperando,: Inteiro Atual :String, Processo parou. Use Step ou Run para Continuar

siginifica que o seu campo UsuSenha esta esperando um numero inteiro, mas atualmente esta definido como uma string

Erro:

or (UDM2.ConexaoADO.ADO_UsuariosUsuSenha.Text <> FrmLogin.EdtSenha.Text) then

Correção:

or (UDM2.ConexaoADO.ADO_UsuariosUsuSenha.Value <> strtoint(FrmLogin.EdtSenha.Text)) then

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
ERRO : Project Sistema.exe raised exception class EDatabaseErro with message "ADO_Usuarios: Type mismatch for field ´UsuSenha´, expecting : Integer actual:String´, Process stopped. Use Step or Run to Continue

No UsuSenha do banco de dados esta com o tipo varChar.

Alex, como o Jhonas já traduziu para você, a mensagem indica: "Tipo incorreto para o Field ´UsuSenha´, experado: Integer atual:String"

Se quando ocorre este erro, o programa pára na linha (ou na seguinte): UDM2.ConexaoADO.ADO_Usuarios.Open;

então, dê um duplo-click no seu dataset ADO_Usuarios, exclua o Field UsuSenha e adicione o campo novamente (Add all fields). Isto poderia ser em função de você inicialmente ter declarado, no banco, o campo como Integer e posteriormente mudado para varchar, sendo que os Fields já estavam no dataset.

Na seqüência proceda com a correção que o Jhonas citou.

eu observei que você está usando um "caminho" bem longo para uso do componentes: UDM2.ConexaoADO.ADO_Usuarios.Open;

ao que parece este UDM2 é o nome da Unit, onde o datamodule ConexaoADO armazena o dataset ADO_Usuarios. Isto é certo? Se for, então, fica a dica de que você não precisa referenciar a unit deste modo - basta que ela esteja incluída na cláusula uses (e já deve estar). Assim, você usaria apenas: ConexaoADO.ADO_Usuarios.Open;

ou ainda pode fazer uso da instrução with ... do:

with ConexaoADO do
begin
  ADO_Usuarios.Open;
  FrmMenuPrin.StatusBar1.Panels[2].Text := ' Usuário:' +
  FrmLogin.EdtApelido.Text  + ' - '+  ADO_UsuariosUsuDepto.AsSTring;
  ...
end;

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...