Cursor Adapters

23/07/2003 - 06:15 por Mauricio Atanache G | Informe spam
Cuando intento crear un cursor adapter que lee datos de una tabla de excel
tengo un problema, al llamar CursorFill me da un error que dice Data Type
Mismatch

aqui esta el codigo :

LOCAL oRS as ADODB.RecordSet
LOCAL oConn as ADODB.Connection
LOCAL oCmd as ADODB.Command
LOCAL oCA as CursorAdapter

SET MULTILOCKS ON

oConn = CREATEOBJECT("ADODB.Connection")
WITH oConn
.CursorLocation = 3
.ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\develop\Pruebas.xls;Extended Properties=Excel 8.0;Persist Security
Info=False'
.OPEN()
ENDWITH
oCmd = CREATEOBJECT("ADODB.Command")
oCmd.ActiveConnection = oConn

oRS = CREATEOBJECT("ADODB.RecordSet")
WITH oRS
.ActiveConnection = oConn
.CursorType = 1 && adOpenKeyset
.CursorLocation = 3 && adUseClient
.LockType = 3 && adLockOptimistic
ENDWITH

oCA = CREATEOBJECT("CursorAdapter")
oCA.DATASOURCETYPE = [ADO]
oCA.DATASOURCE = oRS
oCA.Alias = "CA1"
oCA.BUFFERMODEOVERRIDE = 5
oCA.ALLOWUPDATE = .T.
oCA.ALLOWDELETE = .T.
oCA.ALLOWINSERT = .T.
oCA.SELECTCMD = [SELECT * FROM AnteJardin]
oCA.UPDATECMDDATASOURCETYPE = [ADO]
oCA.UPDATECMDDATASOURCE = oCmd
oCA.DELETECMDDATASOURCETYPE = [ADO]
oCA.DELETECMDDATASOURCE = oCmd
oCA.INSERTCMDDATASOURCETYPE = [ADO]
oCA.INSERTCMDDATASOURCE = oCmd
TRY
IF !oCA.CURSORFILL(.F., .F., -1, oCmd)
AERROR(aErrores)
MESSAGEBOX( aErrores(2) )
ENDIF
ENDTRY

Gracias por cualquier ayuda que me puedan brindar,


Mauricio Atanache G.
 

Leer las respuestas

#1 Mauricio Atanache G
24/07/2003 - 10:36 | Informe spam
Hola Antonio,

Muchas gracias por tus comentarios, te cuento que todo lo que me has dicho
ya lo hice, es decir con el proveedor OLEDB me funciono perfectamente
utilizando el builder, asi como desde C# igualmente se conecta sin problema,
mi problema con el builder es que la tabla es demasiado grande y el esquema
solo me soporta 255 caracteres desde el builder, de tal manera que intente
hacerlo por codigo.

En resumen, segun lo que veo el problema no es la coneccion OLEDB, ya que
desde el builder se conecta bien, y si solo utilizo un par de campos
igualmente me carga la tabla sin ningun problema, el problema desde el
builder es el espacio para el esquema, y a mano me saca el error que te
digo, tal vez definiendo un esquema grande a mano me funcione ya que el
error es de tipo invalido de datos, es lo unico que si me hace falta probar,
lo que no se es si la restriccion de 255 caracteres es del builder o de la
propiedad TableSchema del Cursor Adapter, estaré comentando los resultados
de mi pequeño problema.


Mauricio Atanache G.

Preguntas similares