Cómo ejecutar varias consultas de acción SQL a Oracle con RDO.

Seleccione idioma Seleccione idioma
Id. de artículo: 189677 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

A veces resulta ventajoso para confirmar varias instrucciones SQL que realizan consultas de acción en una única instrucción EXECUTE. Esto normalmente sería el caso si trabaja en una línea WAN lenta y procesamiento por lotes estas consultas de acción dará como resultado mejoras de rendimiento. En este artículo muestra cómo ejecutar un lote de instrucciones INSERT de SQL en un único comando RDO ejecutar.

Más información

El proyecto de Visual Basic de ejemplo que sigue creará una única instrucción de SQL que contiene un número de instrucciones INSERT de SQL para insertar filas en una tabla de Oracle. Esta aplicación funciona contra una tabla de Oracle que tiene una columna de clave principal (PK), por lo tanto, para evitar la inserción de filas con valores de PK duplicados, la instrucción también crea un valor único para el PK Para hacer este trabajo, cada instrucción INSERT debe tener terminó con un CR/LF y ajustado en una instrucción BEGIN/END. La instrucción que se envía al servidor será similar a esto:
   BEGIN
   INSERT something
   DELETE something
   UPDATE something
   etc.
   END;
				

En este ejemplo, se inserta sólo las filas.

Esta aplicación funciona con una tabla de Oracle que está definida por esta secuencia de comandos:
     CREATE TABLE Insert_Test (
     ID       NUMBER(3) NOT NULL PRIMARY KEY,
     FldOne   VARCHAR2(20)
     );
				

Nota: Necesario adquirir e instalar Microsoft Data Access Components (MDAC) para el ejemplo en este artículo. Consulte el artículo enumerado en la sección referencias para obtener más información acerca de MDAC.

Paso a paso

Para crear la aplicación, abra un nuevo proyecto EXE estándar y siga estos pasos:
  1. En Project - referencias, asegúrese de hacer referencia a Microsoft Remote Data Objects 2.0.
  2. Agregar dos CommandButtons al formulario.
  3. Pegue el código siguiente en la sección de declaraciones de general del formulario:
         'This Connect string does a DSN-Less connection
         'Change the settings of the Connect string to match your setup.
         Const gstrConnect As String =  _
                 "DRIVER={Microsoft ODBC for Oracle};" & _
                 "CONNECTSTRING=MyServer;" & _
                 "UID=MyUID;" & _
                 "PWD=MyPassword;"
         Dim MyConn As rdoConnection
         Dim MyRS As rdoResultset
    
         Private Sub Form_Load()
              rdoEnvironments(0).CursorDriver = rdUseClientBatch
              Set MyConn = rdoEnvironments(0).OpenConnection _
              ("", rdDriverNoPrompt, False, gstrConnect)
              Command1.Caption = "Insert"
              Command2.Caption = "Delete"
              Command1.Enabled = False
    
              Caption = "Opening Connection..."
              Debug.Print MyConn.Connect
              Command1.Enabled = True
         End Sub
    
         Private Sub Command1_Click()
              Dim strSQL, strSQL1, strSQL2, strSQL3 As String
              Dim i As Integer
    
              Caption = "Running Query..."
    
              ' Create the SQL statement
    
              strSQL1 = "Insert INTO Insert_Test (ID, FldOne) Values ("
              strSQL2 = ", 'HELLO');"
              strSQL3 = "BEGIN " & vbCrLf
              i = 1
    
              For i = i To 10
                  strSQL3 = strSQL3 & strSQL1 & i & strSQL2 & vbCrLf
    
              Next i
              strSQL3 = strSQL3 & "END;"
              Debug.Print strSQL3
    
              MyConn.Execute strSQL3
    
              strSQL = "SELECT * FROM Insert_Test"
              Set MyRS = MyConn.OpenResultset(strSQL, _
                         rdOpenStatic, _
                         rdConcurRowVer)
              Debug.Print "The Rowcount is " & MyRS.RowCount
              Do Until MyRS.EOF
                  Debug.Print MyRS(0) & ", " & MyRS(1)
                  MyRS.MoveNext
              Loop
              Command2.Enabled = True
    
              Caption = "Complete..."
    
         End Sub
    
         Private Sub Command2_Click()
                   ' Delete all rows from the table
                   MyConn.Execute "DELETE FROM Insert_Test"
                   Command2.Enabled = False
         End Sub
    
         Private Sub Form_Unload(Cancel As Integer)
             MyConn.Close
             Set MyConn = Nothing
         End Sub
    
    					

Referencias

Para obtener información adicional acerca de MDAC, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
175018Cómo adquirir e instalar al controlador ODBC para Oracle de Microsoft

Propiedades

Id. de artículo: 189677 - Última revisión: sábado, 22 de febrero de 2014 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbdatabase kbhowto kboracle kbrdo KB189677 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 189677

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com