Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2020
Lettar Lettar is offline
Registrado
 
Registrado: jul 2018
Posts: 4
Poder: 0
Lettar Va por buen camino
error al llamar a una funcion del datamodule

hola, necesito hacer una validacion simple de usuario y contraseña y para eso cree una funcion en el datamodule y ocupe un query para revisar si existia un usuario con ese nombre y contraseña
Código:
function TDataModule3.VerificarInicioSesion(Usuario, contraseña: string):boolean;
Var
Vusuario,Vpassword:string;
begin
//Verificacion de usuario
Vusuario:=#39+usuario+#39;
Vpassword:=#39+contraseña+#39;
 Qingreso.close;
 Qingreso.SQL.Clear;
 with Qingreso do
 begin
   SQL.add('select usuario,contraseña');
   SQL.add('from usuario');
   SQL.add('where usuario = :usuario');
   SQL.add('and contraseña = :contraseña');
   prepare;
   parambyname('usuario').AsString:= VUsuario;
   parambyname('contraseña').AsString:= Vpassword;
   open;
 end;
  result :=Qingreso.IsEmpty;

end;
y luego la llame de la unidad1 verificando si los edits no estaban vacios
Código:
//Confirmar que estén los campos llenos
if (Eusuarioingr.text <>'') and (contraseñaedit.Text <> '') then
 begin
   //revisar si existe el usuario
   if unit3.DataModule3.VerificarInicioSesion(Eusuarioingr.Text,contraseñaedit.Text)  then
  begin
     LIS.Visible:=false;

  end;
 end;
pero al ejecutarlo me sale 'access violation at address 00d84af5 in module proyect1.exe ' el error ocurre cuando llamo a la función, ni siquiera entra a ejecutarla alguien me dice como puedo solucionarlo o ideas sobre lo que estoy haciendo mal?
Responder Con Cita
  #2  
Antiguo 07-08-2020
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Un 'acces violation' suele deberse a que intentas acceder a algo que no existe, bien porque aún no ha sido creado o no está inicializado o lo has liberado antes de tiempo.
Responder Con Cita
  #3  
Antiguo 07-08-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.276
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hay 2 formas de crear Formularios/Datamodules en los proyectos de delphi.

O se crean automáticamente al inicio y se mantienen en memoria o los creas y los destruyes cuando necesites. Cada sistema tiene sus ventajas y sus inconvenientes.

Revisa las opciones de tu proyecto. Eso te puede dar una pista de los que se están creando solos y los que no.



Y ese Datamodule3 no está en la lista y no lo estás creando tú ahí está el problema.

También puedes:
1) Poner un Breakpoint en esa línea.
2) Ejecutar el programa paso a paso
3) Cuando el programa se detenga, ver el contenido de DataModule3 (si no está asignado estará a nil).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 07-08-2020
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Además de lo que te han contestado los compañeros, es muy común que se haya creado primero el formulario antes que el datamodule. Por defecto, Delphi lo hace así. Por tanto, si tu formulario al crearse intenta validar el usuario, no funcionará.

Pero como dice Germán, si vas a las opciones del proyecto y seleccionas el datamodule y lo arrastras para que sea el primero en crearse, puede que ya no aparezca el error

No se si van por ahí los tiros

Un saludo
Responder Con Cita
  #5  
Antiguo 07-08-2020
Lettar Lettar is offline
Registrado
 
Registrado: jul 2018
Posts: 4
Poder: 0
Lettar Va por buen camino
revise que el datamodule se creara primero y asi es, vi donde especificamente daba el error y es en el open; cuando se ejecuta el query, le saque los parametros y concatene, cambien el open por un execsql aunque se que ese se una para insert y aun asi me sale el mismo error
Responder Con Cita
  #6  
Antiguo 08-08-2020
Lettar Lettar is offline
Registrado
 
Registrado: jul 2018
Posts: 4
Poder: 0
Lettar Va por buen camino
al final puse un query en el form1 y la conecte al datamodule e hice la función de ahí y me funciono bien, pero gracias igual a los que contestaron
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
llamar una funcion en javascrip a php novato_erick PHP 2 12-09-2018 00:12:01
Error al Llamar Función en DLL (Interface not suported). webmasterplc OOP 4 17-06-2013 00:58:48
Llamar funcion dll con una cadena... robinsongm Varios 6 26-02-2010 20:55:21
Llamar de una función a otra jorgegetafe Varios 6 05-06-2007 15:53:19
problema al llamar una función sgarrido Varios 3 27-07-2004 01:14:33


La franja horaria es GMT +2. Ahora son las 16:38:33.


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