Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error al Insertar con ADO (https://www.clubdelphi.com/foros/showthread.php?t=39359)

trex2000 17-01-2007 22:02:25

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 = :Departamento)');
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.

Neftali [Germán.Estévez] 18-01-2007 11:16:52

Haz una ejecución paso a paso y dinos exactamente en qué línea te está fallando.
Al ExecSQL no le veo problemas, tal vez alguna relacionada con los parámetros.


La franja horaria es GMT +2. Ahora son las 20:24:23.

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