PROCEDIMIENTO ALMACENADO
Un procedimiento
almacenado de SQL Server es un grupo de una o varias instrucciones Transact-SQL
o una referencia a un método de Common Runtime Language (CLR) de
Microsoft .NET Framework. Los procedimientos se asemejan a las
construcciones de otros lenguajes de programación, porque pueden:
- Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.
- Contener instrucciones de programación que realicen operaciones en la base de datos. Entre otras, pueden contener llamadas a otros procedimientos.
- Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado correctamente o se han producido errores, y el motivo de estos.
Ventajas de usar
procedimientos almacenados
- Mayor seguridad
- Reutilización del código
- Mantenimiento más sencillo
- Rendimiento mejorado
Sentencias
preparadas
Las sentencias
preparadas de JDBC permiten la “precompilación” del código SQL antes de ser
ejecutado, permitiendo consultas o actualizaciones más eficientes. En el
momento de compilar la sentencia SQL, se analiza cuál es la estrategia adecuada
según las tablas, las columnas, los índices y las condiciones de búsqueda
implicados. Este proceso, obviamente, consume tiempo de procesador, pero al
realizar la compilación una sola vez, se logra mejorar el rendimiento en
siguientes consultas iguales con valores diferentes.
Otra ventaja de las
sentencias preparadas es que permiten la parametrización: la sentencia SQL
se escribe una vez, indicando las posiciones de los datos que van a cambiar y,
cada vez que se utilice, le proporcionaremos los argumentos necesarios que
serán sustituidos en los lugares correspondientes. Los parámetros se
especifican con el carácter ‘?’.
public class
Actualizacion{private
PreparedStatement sentencia;public void
prepararInsercion(){String sql =
"insert into personas values ( ?, ? ,? )";sentencia = conexion.prepareStatement(sql);}public void
insertarPersona(String nombre, dirección, telefono){sentencia.setString(1,
nombre);sentencia.setString(2,
direccion);sentencia.setString(3,
telefono);sentencia.executeUpdate();}}
Al utilizar esta clase,
obviamente, deberemos llamar primero al método que prepara la inserción, y
posteriormente llamar tantas veces como sea necesario al método
insertarPersona.
Se definen tres
parámetros en la sentencia SQL, a los cuales se hace referencia mediante
números enteros consecutivos:
String sql =
"insert into personas values ( ?, ? ,? )";
La clase
PreparedStatement incluye un conjunto de operaciones de la forma setXXXX(),
donde XXXX es el tipo de dato para los campos de la tabla. Una de esas
operaciones es precisamente setString() que inserta la variable en un campo de
tipo cadena.
TRANSACCIÓN
|
|
Una transacción es una interacción con una estructura de datos compleja,
compuesta por varios procesos que se han de aplicar uno después del otro. La
transacción debe realizarse de una sola vez y sin que la estructura a medio
manipular pueda ser alcanzada por el resto del sistema hasta que se hayan
finalizado todos sus procesos.
Propiedades
Las transacciones deben cumplir cuatro propiedades ACID:
- Atomicidad (Atomicity): es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
- Consistencia (Consistency): es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos.
- Aislamiento (Isolation): es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información nunca generará ningún tipo de error.
- Permanencia (Durability): es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.
La forma algorítmica que suelen tener las transacciones
es la siguiente:
iniciar transacción (lista de recursos a bloquear)
ejecución de las operaciones individuales.
if (todo_ok){
aplicar_cambios
}
else{
cancelar_cambios
}
En cualquier momento, el programa podría decidir que es necesario hacer fallar
la transacción, con lo que el sistema deberá revertir todos los cambios hechos
por las operaciones ya hechas. En el lenguaje SQL se
denomina COMMIT a aplicar_cambios y ROLLBACK a cancelar_cambios.
Las transacciones suelen verse implementadas en sistemas de bases de
datos y, más recientemente, se han visto incorporadas a como
gestiona un sistema operativo la interacción
con un sistema de archivos (como varias
características de las bases de datos, debido a que son muy similares
arquitectónicamente).
Crear conexiones a bases de datos de Access
Visual Studio .NET
2003
Nota de
seguridad El
almacenamiento de los detalles de la cadena de conexión (como el nombre de
servidor, el nombre de usuario y la contraseña) puede afectar a la seguridad de
la aplicación. El uso de la Seguridad integrada de Windows es un modo más
seguro de controlar el acceso a una base de datos. Para obtener más
información, vea Seguridad de bases de datos.
Existen dos maneras de conectarse a una base de datos de Access:
- Visualmente, con herramientas de tiempo de diseño.
- Mediante programación.
Conectar a una base de datos de Access en el Explorador
de servidores
El establecimiento de una conexión con una base de datos de Access en el
Explorador de servidores permite crear fácilmente objetos OleDbConnection, OleDbDataAdapter y OleDbCommand
arrastrando objetos de datos desde el Explorador de servidores hasta los
formularios o diseñadores.
Para crear una conexión en el Explorador de servidores
- En el Explorador de servidores, haga clic con el botón secundario en Conexiones de datos y, a continuación, en Agregar conexión.
- En el cuadro de diálogo Propiedades de vínculo de datos, elija la ficha Proveedor.
- Haga clic en Proveedor OLE DB de Microsoft Jet 4.0 y después en Siguiente.
- Haga clic en el botón de puntos suspensivos (...) para buscar el archivo de Microsoft Access (.mdb) al que desea obtener acceso.
- Escriba el Id. de usuario que desea utilizar para la autenticación cuando inicie una sesión en el origen de datos.
- Escriba la Contraseña que desea utilizar para la autenticación cuando inicie una sesión con el origen de datos.
- Haga clic en Aceptar.
Conectar con una base de datos de Access desde la
aplicación
La creación de conexiones a orígenes de datos desde la aplicación se puede
llevar a cabo visualmente utilizando las herramientas de tiempo de diseño de
Visual Studio .NET (incluidos el Explorador de servidores y el Cuadro de
herramientas) o mediante programación, creando objetos de conexión a datos en
el código.
Conectar a una base de datos de Access Visualmente
Visual Studio admite la creación de objetos de datos arrastrando elementos
desde el Explorador de servidores o la ficha Datos del Cuadro de herramientas
hasta el formulario o diseñador.
Para crear una conexión desde el Explorador de servidores
- Cree una Conexión de datos en el Explorador de servidores para la base de datos de Access. Para obtener más información, vea la sección anterior titulada "Conectar a una base de datos de Access en el Explorador de servidores".
- Arrastre la conexión desde el Explorador de servidores hasta el formulario o diseñador.
Aparecerá un objeto OleDbConnection en la bandeja
de componentes.
- Avance hasta la sección "Pasos siguientes" que aparece más adelante en este tema.
Para crear una conexión desde la ficha Datos del Cuadro
de herramientas
- Arrastre un objeto OleDbConnection hasta el formulario o diseñador.
Aparecerá un objeto OleDbConnection no configurado
en la bandeja de componentes.
- En la ventana Propiedades, haga clic en la propiedad ConnectionString.
- Siga uno de los procedimientos siguientes:
- Haga clic en una conexión existente en la lista desplegable.
O bien
- Haga clic en Nueva conexión para abrir Propiedades de vínculo de datos (Cuadro de diálogo) y configure una conexión nueva.
- Avance hasta la sección "Pasos siguientes" que aparece más adelante en este tema.
Conectar a una base de datos de Access mediante
programación
Puede crear un objeto OleDbConnection directamente en el código.
Para crear una conexión mediante programación entre la
aplicación y una base de datos de Access
- El código siguiente crea un objeto OleDbConnection, define la propiedad OleDbConnection.ConnectionString y abre la conexión.
' Visual Basic
Public Sub ConnectToAccess()
Dim conn As New System.Data.OleDb.OleDbConnection()
' TODO: Modify the connection string and include any
' additional required properties for your database.
conn.ConnectionString = & _
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
"C:\Documents and Settings\username\My Documents\dbFile.mdb"
Try
conn.Open()
' Insert code to process data.
Catch ex As Exception
MessageBox.Show("Failed to connect to data source")
Finally
conn.Close()
End Try
End Sub
// C#
public void ConnectToAccess()
{
System.Data.OleDb.OleDbConnection conn = new
System.Data.OleDb.OleDbConnection();
// TODO: Modify the connection string and include any
// additional required properties for your database.
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= C:\Documents and Settings\username\" +
@"My Documents\AccessFile.mdb";
try
{
conn.Open();
// Insert code to process data.
}
catch (Exception ex)
{
MessageBox.Show("Failed to connect to data source");
}
finally
{
conn.Close();
}
}


No hay comentarios:
Publicar un comentario