Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
insertando datos en una tabla en mysql 5.7.11 con la función AES_ENCRYPT

Hola a todos tengo un problem insertando datos en una tabla en mysql 5.7.11 con la función AES_ENCRYPT, estoy usando delphi seattle y zeos, me da un error de sintaxis de sql, también como utilizo AES_DECRYPT cuando el usuario hace el login


Código Delphi [-]
procedure TForm1.btnSafeClick(Sender: TObject);
var
User: String;
Role: String;
Pass: String;
begin

User := txtName.Text;
Role := cbRole.Text;
Pass := txtPassword.Text;

      Zquery1.Close;
      Zquery1.SQL.Clear;
      Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT("Pass", "abcd")');
      Zquery1.ExecSQL;


Muchas gracis
Responder Con Cita
  #2  
Antiguo 26-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y el error?
Responder Con Cita
  #3  
Antiguo 26-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y el error?
raised exception class EZSQLException with message 'SQL Error: You have an error in your syntax; check the manual that corresponds to your MySql server version for the right syntax to use near "at line 1".
Responder Con Cita
  #4  
Antiguo 27-02-2017
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 149
Poder: 18
aposi Va por buen camino
prueba con los parametros con comillas simples

Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT('Pass', 'abcd')');

http://www.w3resource.com/mysql/encr..._encrypt().php
Responder Con Cita
  #5  
Antiguo 27-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por aposi Ver Mensaje
prueba con los parametros con comillas simples

Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT('Pass', 'abcd')');

http://www.w3resource.com/mysql/encr..._encrypt().php
no funciona me da este error ')'expected put identifier 'Pass" found
Responder Con Cita
  #6  
Antiguo 27-02-2017
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 149
Poder: 18
aposi Va por buen camino
Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT(''Pass'', ''abcd'')');


las comillas de pass y abcd sin simples
Responder Con Cita
  #7  
Antiguo 27-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por aposi Ver Mensaje
Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT(''Pass'', ''abcd'')');


las comillas de pass y abcd sin simples
da el mismo error que al principio error de syntax
Responder Con Cita
  #8  
Antiguo 27-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código SQL [-]
INSERT into users (u_username, u_rolecode, u_password) 
VALUES ('User', 'Role', AES_ENCRYPT('Pass','abcd') )

Ejecuta esa sentencia con tu programa "manager" de msysql
Responder Con Cita
  #9  
Antiguo 27-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código SQL [-]
INSERT into users (u_username, u_rolecode, u_password) 
VALUES ('User', 'Role', AES_ENCRYPT('Pass','abcd') )

Ejecuta esa sentencia con tu programa "manager" de msysql
funciona bien pero en delphi no
Responder Con Cita
  #10  
Antiguo 27-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues danos más información, no podemos trastear tu pc y tu código
Responder Con Cita
  #11  
Antiguo 27-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pues danos más información, no podemos trastear tu pc y tu código
Código Delphi [-]
procedure TForm1.btnSafeClick(Sender: TObject);
var
User: String;
Role: String;
Pass: String;
begin

User := txtName.Text;
Role := cbRole.Text;
Pass := txtPassword.Text;

      Zquery1.Close;
      Zquery1.SQL.Clear;
      Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT("Pass", "abcd")');
      Zquery1.ExecSQL;

este es el código, uso delphi seattle, mysql 5.7.11 y zeos
Responder Con Cita
  #12  
Antiguo 27-02-2017
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 149
Poder: 18
aposi Va por buen camino
passa todos los valores por parametro
Responder Con Cita
  #13  
Antiguo 27-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por aposi Ver Mensaje
passa todos los valores por parametro
Intenté hacerlo asi y me sale un error que los param's no existen
Responder Con Cita
  #14  
Antiguo 27-02-2017
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Yo cuento 4 parentesis a la izquierda "(" y tres a la dereacha ")"
A ver si es esto.

Saludos

Josep
Responder Con Cita
  #15  
Antiguo 27-02-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Es como dice jafera. Falta el paréntesis de cierre del VALUES.

LineComment Saludos
Responder Con Cita
  #16  
Antiguo 28-02-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Es como dice jafera. Falta el paréntesis de cierre del VALUES.

LineComment Saludos
Código Delphi [-]
 Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT("Pass", "abcd"))');

ok este codigo esta funcionando pero no guarda la información escrita en txtName y cbRole lo que está guardando es User y role
Responder Con Cita
  #17  
Antiguo 28-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por chino150 Ver Mensaje
ok este codigo esta funcionando pero no guarda la información escrita en txtName y cbRole lo que está guardando es User y role
Como dice Neftali: "A mejores preguntas, mejores respuestas"
Es que llevamos varios días "tirándote de la lengua" para que des información
Dices que no se guarda esos datos, así que la pregunta lógica es: ¿has verificado que esas variables tienen valores o acaso están vacías? ¿puede ser que alguna sea campo clave y ya exista, por lo que no permita duplicarla?
Responder Con Cita
  #18  
Antiguo 28-02-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por chino150 Ver Mensaje
Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password)VALUES("User", "Role", AES_ENCRYPT("Pass", "abcd"))');

ok este codigo esta funcionando pero no guarda la información escrita en txtName y cbRole lo que está guardando es User y role
Yo creo que todos dábamos por sentado que estabas poniendo sólo ejemplos y no los datos reales. Si la sentencia de arriba es exactamente la que tienes en tu programa, pues claro que lo que va a guardar en la base de datos son las palabras textuales "User" y "Role". Para pasar los valores de tus controles txtName y cbRole debes poner tu sentencia con parámetros:

Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password) VALUES(:user, :role, AES_ENCRYPT("Pass, "abcd"))');

y sustituirlos por los valores de los controles:

Código Delphi [-]
Zquery1.ParamByName('user').AsString := txtName.Text;
Zquery1.ParamByName('role').AsString := cbRole.Text;

LineComment Saludos
Responder Con Cita
  #19  
Antiguo 01-03-2017
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Poder: 17
chino150 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Yo creo que todos dábamos por sentado que estabas poniendo sólo ejemplos y no los datos reales. Si la sentencia de arriba es exactamente la que tienes en tu programa, pues claro que lo que va a guardar en la base de datos son las palabras textuales "User" y "Role". Para pasar los valores de tus controles txtName y cbRole debes poner tu sentencia con parámetros:

Código Delphi [-]
Zquery1.SQL.Add ('INSERT into users(u_username,u_rolecode,u_password) VALUES(:user, :role, AES_ENCRYPT("Pass, "abcd"))');

y sustituirlos por los valores de los controles:

Código Delphi [-]
Zquery1.ParamByName('user').AsString := txtName.Text;
Zquery1.ParamByName('role').AsString := cbRole.Text;



LineComment Saludos
Gracias el codigo arriba funciono
Responder Con Cita
Respuesta



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
Mover datos de tabla en memoria a tabla mysql webmasterplc SQL 0 07-04-2014 06:12:33
Update de un campo, en funcion a datos de otra tabla oscarac SQL 3 08-02-2013 17:32:28
Problemas insertando en mysql delphi 2010 nickolas Conexión con bases de datos 9 20-08-2012 01:33:20
Error en funcion almacenada para insertar datos a tabla dark_monk9 PostgreSQL 3 16-01-2012 15:57:31
Insertando, editando y buscando datos en un mismo formulario canelita Conexión con bases de datos 6 05-09-2007 08:40:30


La franja horaria es GMT +2. Ahora son las 01:46:43.


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