FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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;
__________________
La ignorancia se supera cuando se atreve uno a preguntar. |
#2
|
||||
|
||||
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:
|
#3
|
|||
|
|||
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. |
|
|
|