Error en fw_adoexporttodbf con campos autoincrementales
Posted: Fri Nov 29, 2019 7:23 pm
Buenas tardes compañeros del foro, cuando transfiero un recordset de sql hacía DBF usando la función fw_adoexporttodbf(oRs0,dbtmp1,.f.) me surgió un detalle del que quisiera saber si me pueden ayudar, muchas de mis tablas tienen un campo autoincremental por ejemplo CampoIndex, al hacer la consulta a sql con las instrucciones:
El DBF generado contiene el campo CampoIndex, pero me da un valor nuevo para cada registro del recordset, no el valor que originalmente se tenía grabado en la tabla, para solventarlo ha tenido que generar un campo adicional donde hago un Cast del campoIndex
Solo así obtengo el valor real almacenado en la tabla, la pregunta es como podría hacer mi consulta sin tener que agregar este campo adicional?
Como dato adicional les comento por si a alguien le pasa, cuando usas la función fw_adoexporttodbf, todos _ del recordset deben tener un nombre, de otra forma no se puede generar el DBF y les manda el error "area de trabajo no usada", se que parecerá obvio, pero a mi me pasó y no tenía idea de cual era el problema, hasta que me di cuenta que uno de mis campos era calculado y no le había definido un nombre al mismo, por lo tanto no podía generar el DBF.
Code: Select all
cCadsql0:="select * from tIncide "
oRs0 := TOleAuto():New( "ADODB.Recordset" )
oRs0:CursorType := 1 // opendkeyset
oRs0:CursorLocation := 3 // local cache
oRs0:LockType := 3 // lockoportunistic
TRY
oRS0:Open( cCadsql0,'Provider='+xPROVIDER+';Data Source='+xSOURCE+';Initial Catalog='+xCATALOGA+';User Id='+xUSERID+'Password='+xPASSWORD )
CATCH oErr
MsgInfo( "Error al consultar datos" )
RETURN(.F.)
END TRY
fw_adoexporttodbf(oRs0,dbtmp1,.f.)
Code: Select all
select *,cast(campoIndice as int) Dexri
Como dato adicional les comento por si a alguien le pasa, cuando usas la función fw_adoexporttodbf, todos _ del recordset deben tener un nombre, de otra forma no se puede generar el DBF y les manda el error "area de trabajo no usada", se que parecerá obvio, pero a mi me pasó y no tenía idea de cual era el problema, hasta que me di cuenta que uno de mis campos era calculado y no le había definido un nombre al mismo, por lo tanto no podía generar el DBF.