Senhores, estou com o problema com a função FWBulk, estou tentando gravar alguns registros e não da erro , mas também não grava
ATUALIZAÇÃO 1
Olhando o log do dbaccess alguns registro estão estourando o tamanho do campo, mas de 16k de registos foram 600 erros
The size (8) of the decimal part of the number (0.03333333) informed is greater than the size (2) supported by the field (ZB5_LDTMR)
===================
/*/{Protheus.doc} za5Bulk
(long_description)
@type user function
@author Leandro Lemos
@since 29/09/2025
@version version
@param param_name, param_type, param_descr
@return return_var, return_type, return_description
@example
(examples)
@see (links_or_references)
/*/
Static function za5Bulk(oJSaidaProdutos)
local oBulk as object
local aFields := {} as array
local cFilSED := "" as char
local nI := 0 as numeric
local nX := 0 as numeric
local nW := 0 as numeric
Local cHrInicio := Time()
aNamesPrd := oJSaidaProdutos:GetNames()
aNamesFields := oJSaidaProdutos[aNamesPrd[1]]:GetNames()
for nW := 1 to len(aNamesFields)
cCampo := aNamesFields[nW]
aAdd( aFields, {cCampo/* , TamSx3(cCampo)[3], TamSx3(cCampo)[1], TamSx3(cCampo)[2] */})
next
if FWBulk():canBulk()
oBulk := FWBulk():new(RetSqlName("ZB5"))
cFilSED := xFilial("ZB5")
oBulk:setTable(RetSqlName("ZB5"))
oBulk:setFields(aFields)
for nI := 1 to len(aNamesPrd)
aData := {}
for nX := 1 to len(aFields)
aAdd(aData,oJSaidaProdutos[aNamesPrd[nI]][aFields[nX][1]])
next
lCanBulk := oBulk:addData(aData)
if lCanBulk
Conout('Gravou o produto '+oJSaidaProdutos[aNamesPrd[nI]]['ZB5_PRODUT'])
else
//Conout('Erro ao gravar o produto ')
Conout('Erro ao gravar o produto '+oJSaidaProdutos[aNamesPrd[nI]]['ZB5_PRODUT']+oBulk:getError())
endif
next
oBulk:close()
oBulk:destroy()
FreeObj(oBulk)
else
//Essa classe não funciona com SQLite
ConErr("Atualize o DBAccess")
endif
return