- Code: Select all Expand view
- 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.)
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
- Code: Select all Expand view
- select *,cast(campoIndice as int) Dexri
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 los campos 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.