Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   ayuda con datamodule en delphi (https://www.clubdelphi.com/foros/showthread.php?t=59640)

microbiano 03-09-2008 07:49:24

ayuda con datamodule en delphi
 
hola tengo el siguiente problema a ver si alguien me puede ayudar.

1. la base de datos que utilizo es sql server 200
2.- version de delphi 7

3.- tengo un data module con el nombre de Dconexion y en el un objeto adoConection con el nombre conexion hasta ahi ningun problema.

4.- tengo un form con 2 Tedit uno para pedir el nombre y otro para la contraseña de usuario y un boton con el nombre aceptar el cual al precionarlo ejecuta el siguiente codifo:
Código Delphi [-]
begin
dconexion.conexion.Close;
dconexion.conexion.ConnectionString:=
 'Provider=MSDASQL.1;'+
 'Persist Security Info=True;' +
 'User ID=' + fr_menuu.txtusuario.Text + ';' +
 'Password='+ fr_menuu.txtcontrasena.Text + ';' +
 'Data Source=' + fr_menuu.txtBD.Text;(aqui va el nombre del odbc SAPA)
try
    dconexion.conexion.Connected:=true;
    MessageDlg('Se ha conectado correctamente a la BD: ' + chr(13) +
        txtBD.Text,mtinformation, [mbok], 0);
         fr_usuarioss.ShowModal;
        exit;
except
    raise;
end;

aqui valida el usuario y no hay ningun problema si los datos de usuario son correctos inicia la sesion y si no manda el error.

5.- en otro formulario tengo 2 Tedit para prueba uno pide el numero de contrato y otro el nombre, aparte tengo un Tstoreproc el cual en el nombre de base le pongo el OBDC con el nombre SAPA y configuro los paramentros de entrada para dicho procedimiento, en el boton de aceptar para que ejecute el procedimiento esta este codigo:
Código Delphi [-]
begin
  try
    frcontrato.sp_nvocontrato.Params[0].asstring:=frcontrato.txtcontrato.Text;      frcontrato.sp_nvocontrato.Params[1].asstring:=frcontrato.txtnombre.Text;
    frcontrato.sp_nvocontrato.ExecProc;
  except
    {MessageDlg('Se produjo un error al registrar el nuevo contrato' + chr(13) +
     txtBD.Text,mtinformation, [mbok], 0);}
     Application.messagebox('Contraseña','Información',mb_iconerror);
  end;
end;


aqui esta el verdadero problema ya que cuando preciono el boton de aceptar me manda este mensaje de error: ERROR DE INICIO DE SESION DEL USUARIO(NULL) MOTIVO: NO ESTA ASOCIADO A UNA CONEXION DE SQL SERVER DE CONFIANZA.

LA PREGUNTA ES: como puedo usar la sesion que ya inicie en el data module al pasarle la conexion en todos los formularios de mi proyecto.

por su ayuda de antemano muchas gracias

tcp_ip_es 03-09-2008 08:17:18

Pues en principio la sesión se debería mantener si no la has cerrado. Solo se me ocurre que no tengas el KeepConnection de la AdoConnection a true, o el loginprompt a false vamos que lo que deberías tener es:

AdoConnection:
* KeepConnection: true
* loginprompt: false

y un timeout alto (30 segundos)

a parte antes de lanzar un storedproc.....
Código Delphi [-]
    
frcontrato.sp_nvocontrato.prepared:=false;
frcontrato.sp_nvocontrato.Params[0].asstring:=frcontrato.txtcontrato.Text;      frcontrato.sp_nvocontrato.Params[1].asstring:=frcontrato.txtnombre.Text;
frcontrato.sp_nvocontrato.prepared:=true;
    frcontrato.sp_nvocontrato.ExecProc;

Me extraña tb que el storedproc no lo tengas en dconexion ya que haces un datamodule metelo ahí bueno eso va en gustos....

Caro 03-09-2008 13:23:22

Hola microbiano, si te conectas a SqlServer en Provider no debería ser SQLOLEDB.1 en vez de MSDASQL, mas o menos así.

Código Delphi [-]
dconexion.conexion.ConnectionString:='Provider=SQLOLEDB.1;'+
'Persist Security Info=False;User ID='+fr_menuu.txtusuario.Text+
';PassWord='+fr_menuu.txtcontrasena.Text+
';Initial Catalog='+BaseDatos+';Data Source='+Servidor;
...............

Saluditos

ContraVeneno 03-09-2008 18:29:06

además, un ADOConnection conectado a SQL Server no debería utilizar ningún ODBC

microbiano 04-09-2008 01:20:16

hola gracias por responder pero la verdad no se que este pasando por que todo lo tengo como dices, que posibilidad hay de que me mande un ejemplo de como se ejecuta el prcedimiento almacenajdo.

de antemano muchas gracias

Caral 04-09-2008 01:51:23

Hola
La verdad no entiendo.
Pregunto:
1-La conexión con la base de datos con que componente la haces?, bde o ado?.
2-La conexión la haces al iniciar el loguin?.
3-Esta ligado el form del loguin con el form fr_usuarioss en el uses?
4- El form fr_usuarioss tiene algun componente que enlaza a la tabla? donde estan los usuarios?.
De momento son mis dudas.
Saludos


La franja horaria es GMT +2. Ahora son las 01:11:06.

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