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.
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