Ver Mensaje Individual
  #3  
Antiguo 13-12-2019
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Reputación: 20
amadis Va por buen camino
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, FECHA = :fe');
                                        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.
Responder Con Cita