Que tal Amigos,
les cuento que logré ejecutar el query pero no se cómo.
Resulta, que como el query que fallaba era el segundo (el UPDATE CLIENTES), pues para testear primero reemplacé en la asignación de valores a parametros, el .value del campo del clientdataset por su valor correspondiente (.asstring, .asfloat, etc). Y seguía fallando
Luego lo corté todo y comencé a ejecutar el query con un solo parametro y un campo a actualizar, y funcionaba, y luego fui agregando de a uno los parametros a los respectivos campos. Iba funcionando, hasta que en el campo LOCALIDAD, falló, revisé que podía haber de raro ahí y no encontré nada, lo salteé, agregué el resto de los campos, y funcionó todo incluso agregué un campo DOMICILIO que originalmente había olvidado y actualizó, y después volví a poner el parametro y campo localidad en su lugar y todo funciona, pero no entiendo que cambió.
Así me quedó ahora el bloque del query funcionando
Código Delphi
[-] QryRec.Close;
QryRec.SQL.Clear;
QryRec.Connection := datos.FDconmovil;
QryRec.UpdateTransaction := datos.FDTrans;
QryRec.Transaction := datos.FDTrans;
QryRec.SQL.Append('UPDATE CLIENTES');
QryRec.SQL.Append('SET NOMBRES = :nom, CUIT = :cuit,TEL = :tel, CEL = :cel, EMAIL = :mail, IVA = :iva, PROVINCIA = ro, LOCALIDAD = :loc, ZONA = :zo, LISTA = :list, DESCUENTO = :desc, VENDEDOR = :ven, DOCUMENTO = :doc, LIMITE = :lim, DOMICILIO = :dom, FECHA = :fe');
QryRec.SQL.Append('where ID = :id and (fecha < :fe)');
QryRec.ParamByName('id').AsInteger := cdscliid.AsInteger;
QryRec.ParamByName('fe').AsDateTime := cdscliactualiz.AsDateTime;
QryRec.ParamByName('nom').AsString := cdsclinombres.AsString;
QryRec.ParamByName('cuit').AsString := cdsclicuit.AsString;
QryRec.ParamByName('tel').AsString := cdsclitel.AsString;
QryRec.ParamByName('cel').AsString := cdsclicel.AsString;
QryRec.ParamByName('mail').AsString := cdscliemail.AsString;
QryRec.ParamByName('iva').AsString := cdscliiva.AsString;
QryRec.ParamByName('pro').AsInteger := cdscliprovincia.AsInteger;
QryRec.ParamByName('loc').AsString := cdsclilocalidad.AsString;
QryRec.ParamByName('zo').AsInteger := cdsclizona.AsInteger;
QryRec.ParamByName('list').asinteger := cdsclilista.AsInteger;
QryRec.ParamByName('desc').AsFloat := cdsclidescuento.AsFloat;
QryRec.ParamByName('ven').AsInteger := cdsclivendedor.AsInteger;
QryRec.ParamByName('doc').AsInteger := cdsclidocumento.AsInteger;
QryRec.ParamByName('dom').AsString := cdsclidomicilio.AsString;
QryRec.ParamByName('lim').AsFloat := cdsclilimite.AsFloat;
QryRec.ExecSQL;
act := act+1;
Application.ProcessMessages;
Pero no veo ningún cambio significativo que antes hubiese podido causar la falla.