Ver Mensaje Individual
  #1  
Antiguo 17-01-2007
trex2000 trex2000 is offline
Miembro
 
Registrado: may 2003
Posts: 242
Reputación: 22
trex2000 Va por buen camino
Error al Insertar con ADO

Saludos
Tengo un ADOQuery que se conecta a Sql Server 2000 pero cuando trato de insertar un registro me marca el sig error:

Cita:
Cannot perform this operation on a closed dataset
El codigo que uso es el sig:
Cita:
Modulo.ADOQ_ConsultaTarjeta.Close;
Modulo.ADOQ_ConsultaTarjeta.SQL.Clear;
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('Insert Into TmpTb');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('Select MIN(history.recvtime)As Fecha1,');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('card.CardHolderId,card.CardNumber,card.Deleted AS cdeleted,');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('cardholder.RecordId,cardholder.FirstName,cardholder.LastName,ca rdholder.Deleted AS ddeleted,cardholder.Note4,');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('history.param3,history.param2,history.param1,history.link1,hist ory.link2,history.link3,history.deleted AS hdeleted');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('From card ,cardholder ,history');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('Where(card.cardholderid = cardholder.recordid)And(cardholder.recordid=history.link3)And(card.Deleted = 0)And(cardholder.Deleted = 0)');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('And(card.cardnumber Between :gnEmpIni And :gnEmpFin)');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('And(history.recvtime Between :gtFecha1 And :gtFecha2)');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('And(history.Link1=:gnPE)');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('And(cardholder.Note4 = epartamento)');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('Group By card.CardNumber, card.CardHolderID, card.Deleted,');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('cardholder.RecordID, cardholder.Deleted, cardholder.FirstName, cardholder.LastName, cardholder.Note4,');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('history.Deleted, history.Param1, history.Param2, history.Param3, history.Link1, history.Link2, history.Link3');
Modulo.ADOQ_ConsultaTarjeta.SQL.Add('Order By card.cardnumber,fecha1');
Modulo.ADOQ_ConsultaTarjeta.Parameters.Clear;
Modulo.ADOQ_ConsultaTarjeta.Parameters.CreateParameter('gnEmpIni',ftInteger,pdInput,30,null);
Modulo.ADOQ_ConsultaTarjeta.Parameters.CreateParameter('gnEmpFin',ftInteger,pdInput,30,null);
Modulo.ADOQ_ConsultaTarjeta.Parameters.CreateParameter('gtFecha1',ftString,pdInput,8,null);
Modulo.ADOQ_ConsultaTarjeta.Parameters.CreateParameter('gtFecha2',ftString,pdInput,8,null);
Modulo.ADOQ_ConsultaTarjeta.Parameters.CreateParameter('gnPE',ftInteger,pdInput,8,null);
Modulo.ADOQ_ConsultaTarjeta.Parameters.CreateParameter('Departamento',ftString,pdInput,35,null);
Modulo.ADOQ_ConsultaTarjeta.Parameters.ParamByName('gnEmpIni').Value:=T1;
Modulo.ADOQ_ConsultaTarjeta.Parameters.ParamByName('gnEmpFin').Value:=T2;
Modulo.ADOQ_ConsultaTarjeta.Parameters.ParamByName('gtFecha1').Value:=D;
Modulo.ADOQ_ConsultaTarjeta.Parameters.ParamByName('gtFecha2').Value:=E;
Modulo.ADOQ_ConsultaTarjeta.Parameters.ParamByName('gnPE').Value:=Puerta;
Modulo.ADOQ_ConsultaTarjeta.Parameters.ParamByName('Departamento').Value:=Departamento;
Modulo.ADOQ_ConsultaTarjeta.ExecSQL;
De antemano muchas gracias por su ayuda.
Responder Con Cita