Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
Unhappy Problemas con Dataset

Hola a todos, de antemano gracias a los que amablemente brinden su ayuda. tengo el siguiente codigo en Delphi 6...
procedure TFrmHab.BtnEmpleadoClick(Sender: TObject);
begin
TblImprime.Open;
TblImprime.Edit;
TblImprime.Insert;
TblImprimeNumero.Value:=Edit1.Text;
TblImprime.Post;
TblImprime.Close;
RptContlstBempl.run //Ejecuta un reporte que se hace en Report Smith
end;

al ejecutar el programa y dar click sobre el boton me aparece un mensage de error que dice...
Table1: Dataset not in edit or insert mode

*Lo que deberia de pasar es que hace una consulta a una tabla TblImprime para sacer un reporte de determinado empleado por medio de su Numero de empleado.

a que se debe esto??...

Última edición por alegarreta fecha: 01-04-2010 a las 18:52:18. Razón: respuesta a Caral
Responder Con Cita
  #2  
Antiguo 01-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Que es lo que quieres hacer, insertar o editar?.
Editar:
Código Delphi [-]
procedure TFrmHab.BtnEmpleadoClick(Sender: TObject);
begin
TblImprime.Open;
TblImprime.Edit;
TblImprime.FilebyName('Numero').Value:= Edit1.Text;
TblImprime.Post;
TblImprime.Close;
// RptContlstBempl.run  // no se que es esto
end;

Insertar:
Código Delphi [-]
procedure TFrmHab.BtnEmpleadoClick(Sender: TObject);
begin
TblImprime.Open;
TblImprime.Insert;
TblImprime.FilebyName('Numero').Value:= Edit1.Text;
TblImprime.Post;
TblImprime.Close;
// RptContlstBempl.run  // no se que es esto
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
TblImprime.FilebyName('Numero').Value:= Edit1.Text; //FilebyName no es una propiedad aceptada
Responder Con Cita
  #4  
Antiguo 01-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por alegarreta Ver Mensaje
TblImprime.FilebyName('Numero').Value:= Edit1.Text; //FilebyName no es una propiedad aceptada
Hola alegarreta, FieldByName si es una propiedad que tiene el componenete Table, en tu codigo como te dice Caral debes poner o solo Insert (para añadir) o solo Edit(para modificar).

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 01-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por alegarreta Ver Mensaje
.............Lo que deberia de pasar es que hace una consulta a una tabla TblImprime para sacer un reporte de determinado empleado por medio de su Numero de empleado.
Hola de nuevo, tu código no esta haciendo ninguna consulta, debes utilizar la propiedad Filter de tu Table:

Código Delphi [-]
  TblImprime.Open;
  TblImprime.Filter := 'Numero =' +Edit1.Text;
  TblImprime.Filtered := True;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 01-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Buena observación Caro, no lo vi.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
Es decir que deberia de ser algo asi?....

procedure TFrmHab.BtnEmpleadoClick(Sender: TObject);
begin
TblImprime.Open;
TblImprime.Insert;
TblImprime.Filter := 'Numero =' +Edit1.Text;
TblImprime.Filtered := True;
TblImprime.FilebyName('Numero').Value:=Edit1.Text;
TblImprime.Post;
TblImprime.Close;
RptContlstempl.run
end;

end

lo ejecuto con F8 y cuando me sale el error antes mencionado me pone una pflecha verde en la linea TblImprime.Post;
Responder Con Cita
  #8  
Antiguo 01-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Creo que estas cometiendo varios errores.
El primero es saber que es lo que quieres hacer.
En principio muestras un codigo que inserta o edita.
Posteriormente indicas que quieres hacer una busqueda de un empleado.
Pregunto:
Que es EXACTAMENTE lo que quieres hacer?.
Ya que Caro te hizo un codigo para filtrar y yo para insertar o edtir.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
orale pues, tengo un formato hecho en Report Smith, y en el programa tengo una caja de texto donde se captura el numero del empleado (ej 4001) al precionar el boton imprimir debe salir el reporte con la informacion del empleado consultado, perdonen la confucion soy nuevo en Delphi
Responder Con Cita
  #10  
Antiguo 01-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aclaro: No uso, ni se usar, Report Smith.
Para hacer un reporte se necesita enlazarlo.
Ninguna de las formas que te hemos indicado sirve para ese fin, lo que hacen es mostrar el dato.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
el enlace se hace por medio de un control que se llama TRReport, solamente le das los parametros y lo ejecutas, en el reporte ya estan definidas las relaciones con las tablas pertinentes que al fin son las a las que apunta el Ttable.
Responder Con Cita
  #12  
Antiguo 01-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Genericamente:
Código Delphi [-]
procedure TFrmHab.BtnEmpleadoClick(Sender: TObject);
begin
 try
   RReport:=TRReport.Create(self);
   TblImprime.Open;
   TblImprime.Filter := 'Numero =' +Edit1.Text;
   TblImprime.Filtered := True;
    RReport.Preview;
   finally
   RReport.Free;
   end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #13  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
en ese caso me abriria el reporteador con todos los registros que encuentre la consulta
Responder Con Cita
  #14  
Antiguo 01-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por alegarreta Ver Mensaje
orale pues, tengo un formato hecho en Report Smith, y en el programa tengo una caja de texto donde se captura el numero del empleado (ej 4001) al precionar el boton imprimir debe salir el reporte con la informacion del empleado consultado, perdonen la confucion soy nuevo en Delphi
Hola de nuevo, yo tampoco conocía ReportSmith, pero parece que se utilizaba con las versiones antiguas de delphi, si ya tienes enlazado el reporte con tu table TBLImprime, solo debes hacer el filtro y ejecutar tu reporte:

Código Delphi [-]
procedure TFrmHab.BtnEmpleadoClick(Sender: TObject);
begin
  TblImprime.Open;
   TblImprime.Filter := 'Numero =' +Edit1.Text;
   TblImprime.Filtered := True;
   RptContlstBempl.run;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #15  
Antiguo 01-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por alegarreta Ver Mensaje
en ese caso me abriria el reporteador con todos los registros que encuentre la consulta
Si, con todos los que coincidan con Edit1.Text en tu campo Numero.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #16  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
Bueno ya me abre el reporte pero no cambia la informacion, es decir segun el numero de empleado que ponga en la caja de texto deveria salir en el reporte pero no lo hace, habra alguna manera de pasar el dato de la caja a un registro en una tabla?, es decir tengo la table Cimp.dbf, la utilizao como filtro que tiene el campo numero, como podria pasar el dato a ese registro para que me filtre entonces cualquier numero de empleado que ingrese en la caja?
Responder Con Cita
  #17  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
por ejemplo....

TblImprime.Open;
Tblimprime.Fields.FindField('Numero'):=Edit1.Text; <---
TblImprime.Filter := 'Numero =' + Edit1.Text;
TblImprime.Filtered := True;
RptContlstempl.run;
Responder Con Cita
  #18  
Antiguo 01-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Creo que no muchos conocen de este reporteador.
Pregunto?.
Por que no usas QReport que viene con delphi 6.?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #19  
Antiguo 01-04-2010
alegarreta alegarreta is offline
Miembro
 
Registrado: abr 2010
Posts: 14
Poder: 0
alegarreta Va por buen camino
bueno es un trabajo que herede del antiguo programador, ademas no cuento con el programa en el cd de instalacion no viene, no se si sea por la licencia o algo mas.

en el reporte puse consultas sql pertinentes para el trabajo, lo que me hace falta es solamente saber como puedo pasar el valor de la caja de texto numero al valor de la tabla cimp en el campo numero, cuando se ejecute el reporte el mismo hara la consulta sobre las tablas que participan usanto a cimp como un filtro.

muchas gracias por su paciencia y su ayuda son muy atentos.
Responder Con Cita
  #20  
Antiguo 01-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que ya te ha contestado Caral con lo que quieres, mira su respuesta

Última edición por Casimiro Notevi fecha: 01-04-2010 a las 23:13:41. Razón: Me equivoqué de nombre
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
Actualizar un dataset desde otro dataset jafera Conexión con bases de datos 17 18-12-2008 23:57:10
Problemas al enlazar un QRText a un Dataset en el subdetalle de un GReport hamiltonfvi Varios 6 05-01-2008 15:34:25
Problemas al aplicar filtro a un dataset Velia Varios 2 16-03-2007 19:21:07
problemas con dataset.post barracuda Tablas planas 0 05-05-2006 22:13:08
Problemas con los tipos: TDataset y Dataset. arantzal Internet 2 24-05-2005 16:51:57


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


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