Les cuento el error estaba en que realmente el campo nrofac existe en la tabla Factura y facpro, pero el error lo daba en la tabla ctac(cuentas corrientes), y ayer con el cansancio el primero que veía era oQryfac:nrofac y el error estaba en oQrycta:nrofac que no existe en la tabla de cuentas corrientes. El problema fue que en tmysql ignora que no existe oQrycta:nrofac y graba todos los demas campos sin marcar el error. Por eso me confundí.
Este es el prg que utilizo con tmsyql hace tres años y nunca me tiró el error ni el de la fecha ni este que es mas grave, ya que nrofac no existe en la tabla.
- Code: Select all Expand view
STATIC FUNCTION ACEPTO(oMysql, lnueva, lcliente,nboton, lcredito, aItem)
LOCAL cQuery
LOCAL cQryfac
LOCAL oQrycta
LOCAL oQryfac
LOCAL cQuerysto := "SELECT * FROM detalle"
LOCAL oQrysto
LOCAL z := 0
if empty(oCta:ntotal)
msgstop("No hay datos para grabar","Ingrese datos")
return nil
endif
if lcliente
cQuery:= "SELECT * FROM ctacte ORDER by ncli"
cQryfac := "SELECT * FROM factura ORDER by nrofac"
else
cQuery:= "SELECT * FROM ctacp ORDER by ncli"
cQryfac := "SELECT * FROM facpro ORDER by nrofac"
endif
oQryfac := oMysql:Query(cQryfac)
if lnueva
oQryfac:blank()
endif
oQryfac:ncli := oCta:ncli
oQryfac:nrofac := oCta:pventa + "-"+ oCta:factura
oQryfac:fecha := oCta:fecha
oQryfac:importe := oCta:ntotal
oQryfac:plazo := oCta:condicion
oQryfac:baseimpo := oCta:subtotal
oQryfac:iva := oCta:niva
oQryfac:ingbruto := oCta:ib
oQryfac:tipo := oCta:tipocom
oQryfac:letra := oCta:letra
oQryfac:save()
oQryfac:end()
oQrycta := oMysql:Query(cQuery)
if lnueva
oQrycta:blank()
endif
oQrycta:ncli := oCta:ncli
oQrycta:nrofac := oCta:pventa + "-"+ oCta:factura //AQUÍ TRONABA EL PROGRAMA CON DOLPHIN
oQrycta:fecha := oCta:fecha
oQrycta:descripcion := oCta:tipocom
oQrycta:importe := oCta:ntotal
oQrycta:tipo := iif(lcredito,"2","1")
oQrycta:pventa := oCta:pventa
oQrycta:numero := oCta:factura
oQrycta:tipodoc := iif(lcredito,"C","F")
oQrycta:save()
oQrycta:end()
if lnueva
oQrysto := oMysql:Query(cQuerysto)
for z = 1 to len(oCta:adet)
oQrysto:blank()
iif(lcliente,oQrysto:ncli := oCta:ncli, oQrysto:npro := oCta:ncli)
oQrysto:codigo := oCta:adet[z,1]
oQrysto:nrofac := oCta:pventa + "-"+ oCta:factura
oQrysto:costo := oCta:adet[z,6]
oQrysto:fecha := oCta:fecha
oQrysto:cantidad := oCta:adet[z,5]
oQrysto:save()
next
oQrysto:end()
endif
nboton:disable()
if lcliente .and. oCta:condicion != "Contado"
if msgyesno("¿Desea imprimir documentos?","Documentos")
impdoc(aItem)
endif
endif
Les ruego sepan disculpar la segunda consulta y les agradezco la presteza y dedicación que tuvieron para ayudarme a solucionarlo.
Les aclaro que el programa con tmysql hasta el día de hoy es el que utilizo en mi negocio y nunca me dió ningún problema. Lo que pasa es que este nuevo lo estoy haciendo con harbour y la clase tmysql hecha por wormar esta hecha para xharbour y como compilo con xverce y hace tiempo esta funcionando mal, ya que no muestra la línea de error cuando compila, hace un tiempo empezé a pasarlo a dolphin, casi sin ningún cambio.
Luis