Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Problemas al guardar hash md5

Buenas gentes tengo el siguiente codigo
Código Delphi [-]
procedure Tfconfiguracion.Button1Click(Sender: TObject);
begin
 if edit1.text = edit2.text
  then
    begin
    fmodulo.tempresa.Active := true;
    fmodulo.tempresa.Edit;
    fmodulo.tempresa.Fields.FieldByName ('pas').AsString := CalcHash2(Edit1.Text, haMD5);
    fmodulo.tempresa.Post;
    application.MessageBox(pchar('Contraseña guardada exitosamente'),
    pchar('ERROR'), (MB_OK + MB_ICONINFORMATION))
    end
  else
    application.MessageBox(pchar('Las contraseñas no coinciden, intentte nuevamente'),
    pchar('ERROR'), (MB_OK + MB_ICONINFORMATION))
end;

Cuando quiero hacer el post me sale el siguiente error type mismatch for field expecting widememo actual widestring supongo que es por el tipo de campo en el que estoy guardando (en mi caso varchar (500)) pero he probado con varios y me tira diferentes errores que puede ser?
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #2  
Antiguo 07-12-2017
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado The Cid James:

El hash MD5 te devuelve siempre una cadena string de 32 caracteres, por lo tanto no es necesario definir un campo con un largo mayor a ese.


Saludos cordiales
Responder Con Cita
  #3  
Antiguo 07-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Muchas gracias por la aclaración desconocía del tema.

Sigo buscando informacion sobre widememo

Saludos
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #4  
Antiguo 07-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Alguien que me ilustre al respecto porque cada vez entiendo menos del tema, estuve buscando informacion sobre widememo todo el dia y no encontre algo que me clarifique al respecto.
Otra cosa que intente es
Código Delphi [-]
procedure Tfconfiguracion.BCpassClick(Sender: TObject);
var
password: string;
begin
 if edit1.text = edit2.text
  then
    begin
    fmodulo.tempresa.Active := true;
    fmodulo.tempresa.Edit;
    password := CalcHash2(Edit1.Text, haMD5);
    fmodulo.tempresa.Fields.FieldByName ('pas').AsString:= password;
    fmodulo.tempresa.Post;
    application.MessageBox(pchar('Contraseña guardada exitosamente'),
    pchar('ALERTA'), (MB_OK + MB_ICONINFORMATION))
    end
  else
    application.MessageBox(pchar('Las contraseñas no coinciden, intentte nuevamente'),
    pchar('ERROR'), (MB_OK + MB_ICONINFORMATION))
end;
Pero luego me di cuenta de que el tipo de variable ya es un string

Resultado... estoy mas perdido que en un principio con respecto a los tipos de datos que maneja delphi y sql
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #5  
Antiguo 07-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, pero exactamente qué problema es el que tienes.
Responder Con Cita
  #6  
Antiguo 07-12-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola, a mi ha pasado ese error con los componentes Zeos, es un bugs de este paquete por lo menos en la versión que yo utilizo.

El error en particular se da cuando a un componente de datos (TzQuery o TzTable) le asignas en diseño los campos, y el componente les pone el tipo de dato que considera oportuno y cuando en ejecución intentas acceder a ese campo suele dar un error del tipo que comentas, "el campo esperado es distinto al actual". Sobre todo ocurre con las ultimas versiones en donde se ha implementado el UNICODE a los campos de tipo texto.

Una de las soluciones mas simples pasa por dejar la lista de campos vacía y que esta se llene de forma automática al abrir la tabla
Responder Con Cita
  #7  
Antiguo 07-12-2017
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Hola, el error te da al asignar o grabar en la tabla?
Probaste
Código Delphi [-]
fmodulo.tempresa.Fields.FieldByName ('pas').AsString := widestring( CalcHash2(Edit1.Text, haMD5) );

Creo que es así.
__________________
Suerte
Alejandro
Responder Con Cita
  #8  
Antiguo 08-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hola, pero exactamente qué problema es el que tienes.
Como dije al abrir el hilo me sale el siguiente error mismatch for field expecting widememo actual widestring cuando intento hacer el post a la base de datos

Cita:
Empezado por bucanero Ver Mensaje
hola, a mi ha pasado ese error con los componentes Zeos, es un bugs de este paquete por lo menos en la versión que yo utilizo.

El error en particular se da cuando a un componente de datos (TzQuery o TzTable) le asignas en diseño los campos, y el componente les pone el tipo de dato que considera oportuno y cuando en ejecución intentas acceder a ese campo suele dar un error del tipo que comentas, "el campo esperado es distinto al actual". Sobre todo ocurre con las ultimas versiones en donde se ha implementado el UNICODE a los campos de tipo texto.


Una de las soluciones mas simples pasa por dejar la lista de campos vacía y que esta se llene de forma automática al abrir la tabla
efectivamente estoy usando zeos 7.2.1-rc, no comprendo muy bien a que te referis a que se llene de forma automatica

Cita:
Empezado por aledieb Ver Mensaje
Hola, el error te da al asignar o grabar en la tabla?
Probaste
Código Delphi [-]fmodulo.tempresa.Fields.FieldByName ('pas').AsString := widestring( CalcHash2(Edit1.Text, haMD5) );


Creo que es así.
Lo acabo de probar y me dice exactamente lo mimo, como sino tomara el cambio mismatch for field expecting widememo actual widestring
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #9  
Antiguo 08-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Buenas despues de darle vueltas al asunto y gracias a lo que dijo bucanero note que en zeos lib haciendo click en el componente (tztable en este caso), te salen las propiedades de los campos y en algunos casos los campos tienen la propiedad BlobType, supongo que es dependiendo el tipo de campo que tengas en la base de datos, pero aun no comprendo muy bien porque solo algunos campos tienen esta propiedad.


En fin cuando cambie la propiedad dicha a ftwidestring pude hacer finalmente el post en la base de datos. Muchas gracias a todos por tomarse el tiempo de ayudarme

Saludos
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.

Última edición por The Cid James fecha: 08-12-2017 a las 04:42:35.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tablas Hash godel Lazarus, FreePascal, Kylix, etc. 3 19-02-2008 12:40:03
codigo hash maco2007 Varios 4 20-10-2007 18:01:04
Calcular hash md5 Lepe Trucos 1 10-05-2007 16:11:58
Hash RaulChemical Varios 1 07-09-2004 21:10:11
¿Hash or not Hash? hgiacobone Varios 5 17-07-2003 20:43:26


La franja horaria es GMT +2. Ahora son las 22:21:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi