Вы находитесь на странице: 1из 11

Base de Datos Oracle:

desarrollo de aplicaciones
ADO con VC++ 6.0
Alberto M.F.A. alb@uniovi.es

Modelo de objetos ADO




Interfaces principales




Colleciones





jul-04

Connection
Command
Recordset
Properties
Parameters
Fields
Errors
Alberto M.F.A. alb@uniovi.es

Modelo de objetos ADO




Otras Interfaces




Field
Error
Parameter

jul-04

Alberto M.F.A. alb@uniovi.es

Diagrama ADO
Connection
Errors
Error

Command

Properties

Parameters Properties
Recordset
Fields

Parameter

Properties

Field
jul-04

Alberto M.F.A. alb@uniovi.es

Pasos en la aplicacin

Inicializar libreras COM


Crear conexin
Procesamiento con ADO
Cerrar conexin
Cerrar libreras COM

jul-04

Alberto M.F.A. alb@uniovi.es






Procesamiento con ADO




jul-04

Conexin a un origen de datos


(Connection). Opcionalmente, comenzar
una transaccin.
Crear un objeto para representar un
comando SQL (Command)
Especificar valores en el comando SQL
como parmetros variables (Parameter)
Alberto M.F.A. alb@uniovi.es

Procesamiento con ADO










Ejecutar comando SQL (Command,


Connection o Recordset)
Almacenar las filas en una cach (Recordset)
Ordenar, filtrar y explorar datos (Recordset)
Modificar datos (Recordset)
Grabar datos de la cach en BDD (Recordset)
COMMIT o ROLLBACK Transaccin
(Connection)

jul-04

Alberto M.F.A. alb@uniovi.es

Interfaz Connection




Abrir una conexin


Cerrar conexin
Ejecutar comando SQL sencillo (sin
parameters). Genera RecorSet.
Controlar transacciones


jul-04

BeginTrans, CommitTrans, RollBackTrans

Acceso al esquema de BBDD


Alberto M.F.A. alb@uniovi.es

Interfaz Command






jul-04

Factoria para crear objetos Parameter


Ejecuta comandos SQL complejos (con
parmetros)
Invocar a procedimientos almacenados
Bind y Define de datos antes y
despus de execute

Alberto M.F.A. alb@uniovi.es

Interfaz Recordset







jul-04

Aadir, borrar y modificar registros


Recorrer el recorset en cualquier
direccin
Ordenar, filtrar y localizar Records
Sincronizar cach
Actualizaciones en lotes

Alberto M.F.A. alb@uniovi.es

10

Interfaz Field



Cargar y descargar LOB


Recuperar y establecer valores de
campo en un Recordset
Estn contenidos en la Collection Fields

jul-04

Alberto M.F.A. alb@uniovi.es

11

Interfaz Parameter





Permite hacer Bind de datos para una


consulta SQL o llamada a procedimiento
Soporta Bind de LOBs
Permite establecer:



jul-04

Tipo de dato
Sentido (IN, OUT, IN/OUT, ReturnValue)

Localizados en la Collection Parameters


de Command
Alberto M.F.A. alb@uniovi.es

12

Interfaz Error


Cualquier operacin ADO puede generar un


error
La Collection Error de Connection los
almacena todos
Cada Error especifica:





jul-04

Descripcin
Nmero de error
Objeto que lo provoc
Propiedades SQLState y NativeError
Alberto M.F.A. alb@uniovi.es

13

Inicializar y cerrar COM


if(FAILED(::CoInitialize(NULL)))
return -1;
try {...
Proceso ...
} catch (TipoExcepcion e){
Tratar error ...
}
::CoUninitialize();
jul-04

Alberto M.F.A. alb@uniovi.es

14

Abrir conexin


Alternativas:



jul-04

Connection.Open(strConexion, ...)
Recordset.Open(strConexion, ...)

Connection crea una conexin


disponible para la aplicacin.
Recordset la crea internamente. Se
puede recuperar con ActiveConnection()
Alberto M.F.A. alb@uniovi.es

15

Ejecutar SQL sin Parmetros




Connection.Execute(SQL, ... )

Command.ActiveConnection = conn...
Command.CommandText = SQL
Command.Execute(... )

Command.Execute(SQL, ... )




jul-04

Alberto M.F.A. alb@uniovi.es

16

Ejecutar SQL con Parmetros




SQL con placeholders

SELECT name FROM tabla WHERE id = ?


Solo con Command.Execute(...)
Antes:




Command.CreateParameter() para cada


placeholder
Ajustes en el parameter
Command.Parameters.Append(parameter)

jul-04

Alberto M.F.A. alb@uniovi.es

17

Ejecutar stored proc/fun





Con Command.Execute(...)
Sintaxis Escape de ODBC


{? = call stored_fun(? ?) }
Para cada placeholder un parameter




jul-04

CreateParameter
Parameters.Append

Ojo con los tipos de dato: NO BOOLEAN


Alberto M.F.A. alb@uniovi.es

18

Mtodos Execute

jul-04

Alberto M.F.A. alb@uniovi.es

19

Actualizacin de datos


A travs de sentencias SQL (INSERT,


UPDATE, DELETE)
Para una sola tabla tambin a travs de
un Recordset


Recordset.AddNew()




jul-04

Redorset.Fields.Item().Value = ...

Recordset.Update()
Recordset.CancelUpdate()
Alberto M.F.A. alb@uniovi.es

20

Transacciones


Controladas desde Connection






BeginTrans(...)
CommitTrans(...)
RollbackTrans(...)

Transacciones anidadas


BeginTrans(...)



jul-04

BeginTrans(...)
CommitTrans(...)

CommitTrans(...)
Alberto M.F.A. alb@uniovi.es

21

Вам также может понравиться