La conexión a Oracle 10g con ODBC de Excel VBA

El siguiente código funciona. la conexión se abre bien, pero el conjunto de registros.recordCount siempre devuelve -1 cuando no hay datos en la tabla. Y Si trato de llamar a los métodos/propiedades de conjunto de registros que se bloquea a Excel. Alguna idea??
Gracias

Sub GetData()
    Dim conn As New ADODB.connection    
    Dim connString
    connString = "DSN=name;Uid=user;Pwd=pass"
    Dim rsRecords As New ADODB.recordSet

    conn.Open connString
    rsRecords.CursorLocation = adUseServer
    rsRecords.Open "select * from xxx", conn, adOpenForwardOnly, adLockReadOnly

    If conn.State = adStateOpen Then
      MsgBox rsRecords.RecordCount
    Else
       MsgBox "no connection"
    End If

    rsRecords.Close
    Set rsRecords = Nothing
    conn.Close
    Set conn = Nothing
End Sub
InformationsquelleAutor Peter Goras | 2009-11-13

2 Kommentare

  1. 1

    Si quieres Recordcount a trabajar, especialmente sin la captura de los registros, se debe utilizar adUseClient no adUseServer

    Si esta es una operación grande y que va a hacer con frecuencia, sin embargo, usted realmente debe seleccionar el count() en su lugar y hacer que la base de datos hacer el recuento por usted. Con adUseClient ADO silenciosamente recuperar todos los registros en su memoria de la aplicación si te gusta o no.

  2. 0

    Parece Excel se bloquea debido a que no puede manejar algunos tipos de datos de Oracle.
    El select * regresaba de una columna de tipo TIMESTAMP(3) CON la ZONA horaria.
    Esto podría hacer que Excel accidente tan pronto como he tratado de leer el conjunto de registros.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea