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.