Delphi - Delphi; imposible grabar registros en tabla tras borrar con SQL

 
Vista:

Delphi; imposible grabar registros en tabla tras borrar con SQL

Publicado por Sergio (1 intervención) el 25/11/2014 23:47:00
Hola a todos,

Espero que puedan ayudarme con mi problema, pues me estoy quedando tonto buscando por la web y no encuentro solución.

Trabajo con Delphi XE2 y mi problema lo tengo con una tabla de una base de datos de MS Access a la que conecto mediante ADO.

Utilizo el siguiente código para grabar los diferentes registros en la tabla (registros que obtengo de un Tlistview):

Repeat
With ListViewCables.Items[index] do
Begin
With DataModule1.Table_RC_Cables do
Begin
Last;
Insert;
FieldByName('ID').AsInteger:=identificador;
FieldByName('quote_number').AsString:=EditQuoteNumber.Text;
FieldByName('part_number').AsString:=Caption;
FieldByName('Lpf').AsString:=SubItems[0];
FieldByName('Lpm').AsString:=SubItems[1];
FieldByName('Total_Lenght').AsString:=SubItems[2];
FieldByName('€/m').AsString:=SubItems[3];
FieldByName('€/Cu').AsString:=SubItems[4];
FieldByName('€/Total').AsString:=SubItems[5];
FieldByName('Qtty').AsInteger:=StrToInt(SubItems[6]);
FieldByName('Weight').AsString:=SubItems[7];
FieldByName('Harnessing').AsString:=SubItems[8];
FieldByName('discount').AsString:=SubItems[9];
FieldByName('pos_quote').AsInteger:=RC_position;
Post;
End;
//Pasamos al siguiente registro del TlistView
End;
index:=index+1;
//cuando el indice sea igual al total de cables que hay en Tlistview salimos del bucle
Until index=Items_en_TLV;

El código funciona perfectamente, grabando sin problema todos los campos del Tlistview en la tabla. El problema aparece cuando ANTES de esta parte de código borro varios registros mediante esta sentencia SQL:

if condicion=true then
//si venimos de editar oferta, borramos todos los registros para volverlos a escribir con las modificaciones
With DataModule1.AQ_Cables do
Begin
Close;
SQL.Clear;
SQL.Add('DELETE FROM RC_Cables WHERE quote_number =:numero_oferta AND ID=:ident');
Parameters.ParamByName('numero_oferta').Value:=EditQuoteNumber.Text;
Parameters.ParamByName('ident').Value:=identificador;
ExecSQL;
End;

Esta parte de código también funciona perfecta, me borra todo lo que le indicó perfectamente, pero al ejecutar seguidamente el código anterior, NO GRABA NADA EN LA TABLA, y no se porque demonios no lo hace, me estoy volviendo tarumba.

Muchas gracias de antemano, espero me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder