FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
q_detallefac.First;
while not q_detallefac.Eof do begin if (copy(q_detallefac['CVE_ART'],1,2)<>'00') AND (q_detallefac['PREC']>0) and (importe>0) then begin q_ParFac.sql.Clear; q_ParFac.SQL.Add ('Select * from PARTIDAS_FAC'); q_parfac.sql.add (' where sucursal=' + QuotedStr(trim(inttostr(num_sucursal)))); q_parfac.sql.add (' and trim(FACTURA)=' + QuotedStr(TRIM(q_cobranza['refer']))); q_parfac.SQL.add (' and trim(CVE_CONC)=' + QuotedStr(TRIM(q_detallefac['cve_art']))); q_parfac.SQL.add (' and CANTIDAD=' + QuotedStr(TRIM(inttostr(q_detallefac['cant'])))); q_ParFac.Active:=true; anticipo:=0; hay_partida:=0; if q_parfac.RecordCount>0 then begin hay_partida:=1; if q_parfac['Pagado']<q_parfac['subtotal'] then anticipo:=q_parfac['pagado']; end; if (hay_partida=0) or ((hay_partida=1) and (anticipo>0)) then begin dias:=q_cobranza['FECHA_APLI']-q_facturas['FECHA_DOC']; nom_agente:=' '; q_agentes.sql.clear; q_agentes.sql.add('select * from Vendedores'); q_agentes.sql.add(' where numero=' + quotedstr(trim(num_agente))); q_agentes.SQL.add(' and sucursal=' + quotedstr(trim(inttostr(num_sucursal)))); q_agentes.Active:=true; if q_agentes.RecordCount>0 then nom_agente:=q_agentes['nombre'] else nom_agente:='NULL'; por lo regular num_agente me dice q valor indefinido cuando al inicio siempre la inicializo al menos con 0 |
#2
|
|||
|
|||
Creo que el problema viene por que estas trabajando los valores directamente como variants sin asignarles un tipo. Prueba de acceder a los valores mediante Query1.FieldByName('CAMPO').Asstring/asfloat/asinteger/asdatetime y trabajar de esta manera ( o mediante Query1.ParamByName('CAMPO').As...).
PD: dias que tipo de variable es? es variant tambien? Última edición por coso fecha: 18-06-2008 a las 19:51:52. |
#3
|
|||
|
|||
ok. voy a intentarlo, pero sabes q es lo mas chistoso q este programa lo ejecuto en mi pc y funciona correctamente, en cambio en otras pc's no lo hace bien marca el error,
|
#4
|
||||
|
||||
Creo haber encontrado el error, pero no borro todo el mensaje que ya había escrito:
ojito con los nulos que la sintaxis en sql es distinto a cualquier otro valor, ejemplo correcto:
Ejemplo incorrecto (dará fallo en ejecución):
... y ahora el resto del mensaje: Lo primero que veo es eso del if copy (..... ) <> '00' ¿seguro que la consulta va a tener registros que cumpla esa condición siempre ? if q_parfac.RecordCount>0 then sustitúyelo por if not q_parfac.IsEmpty then El recordCount puede no estar implementado según el motor de bases de datos y devolver cero o menos uno "-1" pero no el valor correcto. En cuanto al fallo de parámetros, normal, lo primero es que no tienes parámetros en tus sqls, los parámetros se definen dentro del sql, por ejemplo: Pero tú no usas nada de eso, es lógico que el debugger te diga que los parámetros están vacíos. tus sqls son dinámicas y no tienen parámetros. De hecho, se inventaron los parámetros para no montar el lío ese de "QuotedStr(TRIM(" Es muy probable que el error venga por el valor de algún campo involucrado en el where de esas consultas. El que no aparezca en el debugger puede ser tan simple como por ejemplo, no mostrarlo por optimización. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error "Invalid field Type" entre Delphi 2007 y Firebird 1.5 | saltamirano | Varios | 2 | 24-12-2007 23:38:07 |
Error "Invalid pointer operation" en función contenida en DLL | Albano | OOP | 2 | 20-06-2007 23:01:31 |
Acceso a Outlook 2003 Reminders y error "Invalid Variant Operation" | saldanaluis | Providers | 2 | 24-05-2007 21:17:58 |
alguien sabe como es esto me tira error en la lineadel where "invalid use of keyword" | todook | Conexión con bases de datos | 5 | 16-11-2006 21:58:02 |
Error "Invalid User/Password" al intentar conectar con dbexpress | vivim82 | Conexión con bases de datos | 1 | 30-04-2004 03:22:49 |
|