ok. Daniel voy a revisar,
gracias por tu apoyo.
saludos.
"CREATE TABLE IF NOT EXISTS ctrlins (" + ;
"id_obra INT(5) UNSIGNED ZEROFILL NOT NULL," + ;
"id_ins INT(7) UNSIGNED ZEROFILL NOT NULL," + ;
"unidenv CHAR(2)," + ;
"prc_cotizado FLOAT(10,2) UNSIGNED NOT NULL," + ;
"proyectado FLOAT(10,2) UNSIGNED NOT NULL," + ;
"canttotal FLOAT(10,2)," + ;
"existencia FLOAT(10,2)," + ;
"incidencia FLOAT(7,4) UNSIGNED," + ;
"codins CHAR(7)," + ;
"INDEX idobra (id_obra)," + ;
"INDEX idinsumo (id_ins) )" + ;
"COMMENT= 'Tabla de Ctrl de Insumos'" + ;
"ENGINE= INNODB;"
// hago lo siguiente, reccorro un array, donde guardo el valor de busqueda (por inseguridad hice estas pruebas previas)
oQry:= ::oConn:oSrv:Query( "SELECT id_ins FROM ctrlins ORDER BY id_ins" )
? oQry:nRecCount // muestra correctamente la cantidad de registros
oQry:GoTo( 10 ) // se posiciona correctamente
? oQry:id_ins // muestra el valor que corresponde
for each aFieldIDIns in h1:aTotalIns
if !oQry:Find( {aFieldIDIns[_IDInsumo]}, {"id_ins"} ) > 0
? "no encontro",valtype(aFieldIDIns[_IDInsumo]),aFieldIDIns[_IDInsumo],oQry:Find( {aFieldIDIns[_IDInsumo]}, {"id_ins"} )
else
? "encontro:",aFieldIDIns[_IDInsumo] // nunca encuentra. En esta prueba tengo un rango de id_ins de 1 a 14 (tiene algo que ver que lo relleno con ceros a la izq.?)
end
end
oQry:End()
nSeek := ::oQryNotas:Seek( str(nFolio,7), "FOLIO" )
if nSeek > 0
? ::oQry:folio
else
? 'no hay'
endif
Descripción de Error generado:
___________________________________________________
Error BASE/1099 Argument error: STR
Args:
[ 1] = C 1
[ 2] = U
[ 3] = U
Llamadas al Stack:
___________________________________________________
Llamado desde: STR(0)
Llamado desde: .\source\prg\tdolpsrv.prg CLIPVALUE2SQL(2276)
Llamado desde: .\source\prg\tdolpqry.prg TDOLPHINQRY:FIND(802)
Llamado desde: D:\Fuen32\SiGIC\CI2\Source\PersConn.prg PERSISTENCIACONEXION:CALCTOTINSUMO(411)
...
//asi:
oQry:Seek( aFieldIDIns[_IDInsumo], 1 )
// o asi:
oQry:Seek( Str(aFieldIDIns[_IDInsumo],7), 1 )
// n contiene el valor a buscar, el campo 1 es código
oQ := oServer:Query( "SELECT codigo,nombre FROM codigos ORDER BY codigo")
IF oQ:Seek(n,1) > 0
RETURN .t.
ELSE
RETURN .f.
ENDIF
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 19 guests