Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2004
Nidia H. Ochoa Nidia H. Ochoa is offline
Miembro
 
Registrado: feb 2004
Posts: 24
Poder: 0
Nidia H. Ochoa Va por buen camino
objeto TADODataSet

Buen dia...
Mi problema es algo confuso y la verdad es dificil de solucionar creo que tanto como tratar de explicarlo, pero ahi voy...

Tengo una forma que contiene el objeto TADODataSet... este componente lo utilizo para poder conectarlo a un DBGrid el cual contiene datos generados por un Stored Procedure, todo esto es por que no quiero que se quede la conexion abierta mientras se tenga abierta esta forma...

Bueno todo esto se trabaja en servidores... se cuenta con un servidor el cual se le llama Desarrollo (que raro no ) y tenemos otro de aplicaciones (mas raro aun ).... todo funciona de maravilla cuando se trabaja en Desarrollo pero en cuanto se realizo el traspaso a aplicaciones resulto que al querer abrir el componente para obtener los datos me cierra la pantalla y toda la aplicacion sin ningun motivo aparente, sea revisado el codigo y pues no genera ningun problema...

pondre la parte del codigo donde presenta esto...

creo que es muy largo el codigo espero y lo puedan entender
Nota : cabe mencionar que dentro de ShowMassage('alto') esa es la linea que me cierra toda la aplicacion sin ningun mensaje de error

Código:
procedure TfrmBuscaFPXFecProv.cmdFindClick(Sender: TObject);
  var
	MDBuscarFPs   : TMDBuscaFPXFecProv;   // variable a base de datos
	LSDesde	   : String;			   // contiene la fecha inicial para el query
	LSHasta	   : String;   			// contiene la fecha final para el query
	LSProvee	  : String;			  // bandera del proveedor AS/400
	LSError	   : String;			   // mensaje del modulo de datos
	LNError	   : Byte;				 // contiene le numero de mensaje para el usuario
begin
	try
	  // inicializa variables
	  LNError := 0;
	  LSError := '';
	  LSProvee := 'N';
	  // formato de la fecha para el query
	  LSDesde := fFGuionSTime(DateToStr(dtpDesdeFec.Date));
	  LSHasta := fFGuionSTime(DateToStr(dtpHastaFec.DateTime));
	  if cmbProv400.ItemIndex > 0 then
		LSProvee := 'S';
	  // crea variable para el manejo de la base de datos
	  MDBuscarFPs := TMDBuscaFPXFecProv.Create(Application);
	  MDBuscarFPs.adoConexion.Close;
	  MDBuscarFPs.adoConexion.Open;
	  // crea parametros
	  if Fuente.CommandText <> 'Pagos.dbo.SPPSPSBuscaFPsXFecProv' then
	  begin
		with fuente.Parameters do
		begin
		  Clear;
		  // crea los parametros para los datos del datagrid
		  CreateParameter('@PMenu',ftString,pdInput,20,'');			 //menu del stored procedure
		  CreateParameter('@PPosProv',ftInteger,pdInput,6,0);		   //posicion del combo de proveedores
		  CreateParameter('@PTipoFind',ftString,pdInput,4,'');		  //tipo de busqueda (criterios con los que cuenta la forma)
		  CreatePArameter('@PFDesde',ftDateTime,pdInput,100,0);		 //limite de fecha para busqueda
		  CreateParameter('@PFHasta',ftDateTime,pdInput,100,0);		 //limite de fecha para busqueda
		  CreateParameter('@PPosProvee',ftInteger,pdInput,6,0);		 //posicion del combo de prov400
		  CreateParameter('@PFlagProv400',ftString,pdInput,1,'N');	  //bandera de proveedor 400 especifico
		  CreateParameter('@PMensaje',ftString,pdOutput,100,'');		//mensaje de salida del stored procedure
		end;
	  end;

// datos de los parametros conforme al criterio de busqueda

	  with fuente do
		begin
		  CommandText := 'Pagos.dbo.SPPSPSBuscaFPsXFecProv';
		  CommandType := cmdStoredProc;
		  Parameters.ParamValues['@PMenu'] := 'Find';
		  Parameters.ParamValues['@PPosProv'] := cmbProv.ItemIndex + 1;   //posicion del combo de proveedores
		 if rdbLigada.Checked then // FECHAS Y PROVEEDOR LIGADAS
		   Parameters.ParamValues['@PTipoFind'] := 'L';		  //tipo de busqueda (criterios con los que cuenta la forma)
Parameters.ParamValues['@PFDesde'] := LSDesde;		 //limite de fecha para busqueda
		   Parameters.ParamValues['@PFHasta'] := LSHasta;	 	//limite de fecha para busqueda
		   Parameters.ParamValues['@PPosProvee'] := cmbProv400.ItemIndex;		 //posicion del combo de prov400
		  Parameters.ParamValues['@PFlagProv400'] := LSProvee;	  //bandera de proveedor 400 especifico
		  Connection := MDBuscarFPs.adoConexion;
		  Close;
		  ShowMessage('alto');
		   Open;
		  ShowMessage('alto');
	  end;
	dtsDatos.DataSet := Fuente;
	if fuente.Recordset.RecordCount > 0 then
	// datos para el datagrid
	  res(dtsDatos)
	else
	  LNError := 1;
	fuente.Connection := nil;
	// desconecta y destruye el modulo de datos
	MDBuscarFPs.adoConexion.Close;
	MDBuscarFPs.adoConexion.Connected := False;
	MDBuscarFPs.Free;
	MDBuscarFPs := nil;
	Case LNError of
		1 : begin
				Application.MessageBox('No se tiene ningun resultado, favor de modificar su criterio de busqueda', 'Mensaje del Sistema', MB_OK + MB_ICONINFORMATION);
				dbgFind.DataSource := nil;
			  end;
	 end;
   except
	  on Err : Exception do
	  Application.MessageBox(PChar('La aplicación presenta problemas, Error: ' + Err.Message + '. Favor de informar al Administrador'),'Mensaje del Sistema', MB_IconWarning + MB_Ok);
	end;
  end;
PD. espero que se entienda el codigo... y por otro lado muchas gracias espero y esta incognita se pueda resolver... mil gracias
__________________
La ignorancia se supera cuando se atreve uno a preguntar.
Responder Con Cita
  #2  
Antiguo 06-07-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cuando dices que cambias a "Aplicaciones", que quieres decir que copias el ejecutable a aplicaciones y lo lanzas desde ahi?.

Si es así puede ocurrir que falle la conexión con los datos. ¿Como se hace la conexión con la Bd?, No será que se parte que se halla en la carpeta del ejecutable y no acepta el cambio porque no los encuentra......

En fin esperemos que nos des algún dato más para ver si te podemos ayudar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 06-07-2004
Nidia H. Ochoa Nidia H. Ochoa is offline
Miembro
 
Registrado: feb 2004
Posts: 24
Poder: 0
Nidia H. Ochoa Va por buen camino
Gracias ... por el interes ...
Si eso quiero decir con aplicaciones, ya que es donde los usuarios tienen el uso con el sistema, y en desarrollo se realizan las modificaciones del sistema.

y con respecto a la conexion a la base de datos no creo que pase ya que antes de ejecutar esa accion se realizan otras que llenan de datos al formulario...

es algo que no he podido encontrar solucion, no tiene logica para mi, ya que no es un componente nuevo ya que el mismo sistema cuenta con otras formas donde se trabaja el mismo objeto y en esas se comporta normal.

el codigo que envie contiene la conexion que realiza y la generacion de parametros considero que es todo lo que se requiere para mostrar los datos en el DBGrid...

asi que sigo con gracias de antemano...
__________________
La ignorancia se supera cuando se atreve uno a preguntar.
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


La franja horaria es GMT +2. Ahora son las 18:00:54.


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