Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/02/2006, 05:45
netgame
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 18 años, 3 meses
Puntos: 0
Yo se que se puede hacer con un Recordset desconectado, encontre este ejemplo realizado con una base de datos en access, pero mi problema es que no puedo realizar el mismo procedimiento con una bd en sql server.

dejo el codigo de ejemplo
Código:
Option Explicit

' Declaración de variables objeto a nivel del formulario
Private mCnn As ADODB.Connection
Private mRst As ADODB.Recordset

Private Sub Command1_Click()
    ' Conectamos el Recordset para proceder a la
    ' actualización
    Set mRst.ActiveConnection = mCnn

    ' Actualizamos el conjunto de datos
    mRst.UpdateBatch

    ' Desconectamos de nuevo el objeto Recordset
    Set mRst.ActiveConnection = Nothing

End Sub

Private Sub Command2_Click()
    If MsgBox("¿Desea eliminar la tabla temporal?", _
        vbInformation + vbYesNo) = vbYes Then
        '
        ' Eliminamos la tabla ...
        mCnn.Execute "DROP TABLE Tabla1"

        ' Descargamos el formulario
        Unload Me
    End If

End Sub

Private Sub Form_Load()

    On Error GoTo ErrFormLoad

    ' Configuramos los distintos controles del formulario
    Command1.Caption = "Actualizar"
    Command2.Caption = "Eliminar tabla temporal"

    With DataGrid1
        .AllowAddNew = True
        .AllowDelete = True
    End With

    ' Creamos un nuevo objeto Connection
    Set mCnn = New ADODB.Connection

    ' Abrimos la conexión
    With mCnn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source = C:\Mis documentos\Neptuno.mdb"
        .Open
    End With

    ' Creamos la tabla de prueba, copiando la estructura
    ' de la tabla Clientes
    mCnn.Execute "SELECT * INTO Tabla1 FROM Clientes WHERE 1=0"

    ' Creamos un nuevo objeto Recordset
    Set mRst = New ADODB.Recordset

    ' Configuramos y abrimos el Recordset
    With mRst
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockBatchOptimistic
        .Open "Tabla1", mCnn, , , adCmdTable
    End With

    ' Enlazamos el control DataGrid con el objeto Recordset
    Set DataGrid1.DataSource = mRst

    ' Desconectamos el objeto Recordset
    Set mRst.ActiveConnection = Nothing

    Exit Sub

ErrFormLoad:
    If Err.Number = -2147217900 Then
        If MsgBox("La tabla ya existe. ¿Desea eliminarla?", _
            vbInformation + vbYesNo) = vbYes Then
            '
            ' Eliminamos la tabla ...
            mCnn.Execute "DROP TABLE Tabla1"
            ' ... y la volvemos a crear
            Resume
        End If
    End If

    Resume Next
End Sub

Private Sub Form_Unload(Cancel As Integer)

    mRst.Close
    mCnn.Close
    Set mRst = Nothing
    Set mCnn = Nothing

End Sub