My sql en delphi 7

25
DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IV DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IV Docente: Ing. Fidel Darío Montes de Oca Docente: Ing. Fidel Darío Montes de Oca BASE DE DATOS I BASE DE DATOS I Acceso a MySQL Desde Delphi Acceso a MySQL Desde Delphi

Transcript of My sql en delphi 7

Page 1: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

BASE DE DATOS IBASE DE DATOS I

Acceso a MySQL Desde DelphiAcceso a MySQL Desde Delphi

Page 2: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Definir una Fuente de Definir una Fuente de Datos ODBCDatos ODBC

Page 3: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 2: Descargar MyODBC desde http://dev.mysql.com/downloads/connector/odbc/5.1.html#win32APILICACIÓN Ejemplo: Delphi

DBMS Ejemplo: MySQL ODBC es una interface (API: Aplication Program Interface) estandar para acceder a Bases

de Datos desde cualquier aplicación (Ej: Delphi).

ODBC Driver(Open DataBase Connectivity)

Paso 3:Instalar el Software MyODBC, solo se necesita ejecutar :sql-connector-odbc-5.1.4-win32.msi y seguir los pasos del programa de instalación

Modelo de Dos Capas

DB

Paso 1Hacer un Script para crear la DB

Page 4: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 3:Para poder acceder a una base de datos a través de ODBC debemos definir una fuente de datos (Agregar y Configurar), y utilizaremos el administrador de ODBC de Windows (Este paso se realiza solo una vez por computador):

A. Windows XP1. IR al panel de control 2. Hacer click en Performance and maintenance,

Administrative tools y luego en Data Sources (ODBC).

A. Windows Vista1. IR al panel de control2. Hacer click en Herramientas Administrativas y luego en

Fuente de Datos (ODBC).

Definir una Fuente de Datos ODBC

Page 5: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Debes seleccionar la versión de MySQL para Windows

Hacer clic en AddHacer clic en Add

Definir una Fuente de Datos ODBC

Page 6: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Seleccionar MySQL ODBC Seleccionar MySQL ODBC DriverDriver

Hacer Clic en FinishHacer Clic en Finish

Definir una Fuente de Datos ODBC

Page 7: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Definir una Fuente de Datos ODBC

Se deben introducir los datos que se piden y hacer clic en OK.

Podemos hacer clic en el Podemos hacer clic en el botón Test para verificar botón Test para verificar

la conexión con la BDla conexión con la BD

Se debe introducir la clave del Se debe introducir la clave del administrador (root) para que se administrador (root) para que se muestren las bases de datos que muestren las bases de datos que

existen en MySQLexisten en MySQL

Hacer clic en OKHacer clic en OK

Page 8: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Definir una Fuente de Datos ODBC

La fuente de datos <BD_Proyecto_Delphi> ya esta creada.

Page 9: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Aplicaciones con Acceso a BDAplicaciones con Acceso a BD

Diseño de Formularios Diseño de Formularios

Page 10: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Estructura de la Aplicación en Delphi

La fuente de datos <BD_Proyecto_Delphi> ya esta creada.

FORMULARIO

Componentes de Conexión

(DataSet - ADO)

Componentes para la Fuente de Datos

(Data Access)

Componentes de Datos(Data Controls)

BD en MySQL

Page 11: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 1: Definir una Conexión con la BD

Colocamos un componente Colocamos un componente ADOTable ADOTable

Vinculamos el componente Vinculamos el componente con una BD editando su con una BD editando su

propiedad propiedad ConnectionString.ConnectionString.

Si no esta definida la Si no esta definida la conexión, debemos conexión, debemos construirla (Build…)construirla (Build…)

1.1. Seleccionamos el Acceso a la Seleccionamos el Acceso a la Fuente de Datos definida Fuente de Datos definida anteriormenteanteriormente

2.2. Tipeamos los datos del usuario Tipeamos los datos del usuario rootroot

3.3. Seleccionamos la base de datos a Seleccionamos la base de datos a utilizarutilizar

Podemos verificar si se la conexión Podemos verificar si se la conexión se realiza satisfactoriamentese realiza satisfactoriamente

Por ultimo, si todo esta Por ultimo, si todo esta bien, ponemos la bien, ponemos la

Propiedad en true y lo Propiedad en true y lo debe tomar sin error.debe tomar sin error.

Le damos un nombre a la Le damos un nombre a la Propiedad Name, Propiedad Name, Ejemplo: TablaEjemplo: Tabla

Le damos el nombre a la Le damos el nombre a la Propiedad TableName, Propiedad TableName,

Ejemplo: LibroEjemplo: Libro

Page 12: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 2: Definir Componentes de Fuentes de Datos

En la propiedad DataSet En la propiedad DataSet Seleccionamos la conexión a Seleccionamos la conexión a

la tabla del paso anterior, la tabla del paso anterior, Ejemplo: TablaEjemplo: Tabla

Le damos un nombre a la Le damos un nombre a la fuente de datos en la fuente de datos en la

propiedad Name propiedad Name Ejemplo: Fuente_TablaEjemplo: Fuente_Tabla

La Página Data Access contiene componentespara la capa intermedia

(Data Source), quepermiten vincular los

controles de datos a los controles de conexión

Page 13: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 3: Definir Componentes de Datos - TBDGrid

En la propiedad En la propiedad DataSourceDataSourceSeleccionamos la fuente de Seleccionamos la fuente de

datos del paso anterior, datos del paso anterior, Ejemplo: Fuente_TablaEjemplo: Fuente_Tabla

La página Data Controls contiene controlesrelacionados a datos, útiles para construir la

internase del usuario (Formularios).

En la En la propiedad Namepropiedad Name le le damos un nombre damos un nombre

apropiado al TDBEditapropiado al TDBEditEjemplo: Grid_LibroEjemplo: Grid_Libro

Page 14: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 3: Definir Componentes de Datos - TBDGrid

Luego de seleccionar la Luego de seleccionar la fuente (Data Source) deben fuente (Data Source) deben mostrarse los datosmostrarse los datos de la de la

tabla en el Gridtabla en el Grid

Page 15: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 3: Definir Columnas de Datos - TBDGrid

Permite adicionar Permite adicionar todos los campos al todos los campos al

Grid y así poder Grid y así poder configrarlosconfigrarlos

Permite crear Permite crear nuevas columnasnuevas columnas

Luego, debemos hacer clic (…) Luego, debemos hacer clic (…) en la en la propiedad Columnspropiedad Columns para para configurar los campos que se configurar los campos que se

mostrarán en el Gridmostrarán en el Grid

Page 16: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 3: Definir Columnas de Datos - TBDGrid

Hacemos clic en Hacemos clic en cada campo para cada campo para

configurarloconfigurarlo

Podemos cambiar el Podemos cambiar el anchoancho de las de las

columnas con el columnas con el mouse o con la mouse o con la

propiedad Widthpropiedad Width

Podemos configurar Podemos configurar su su alineaciónalineación

Podemos cambiar el Podemos cambiar el nombre de la nombre de la columnacolumna, su , su

alineación, entre alineación, entre otros.otros.

Page 17: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Algunas Características de TBDGrid

Page 18: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Características de las Columnas de un TBDGrid

Page 19: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 4: Definir Componente de Comando SQL

Este componente nos permite colocar en la propiedad

CommandText el comando SQL que vamos a ejecutar

Vinculamos el Vinculamos el componente con una componente con una

BD editando su BD editando su propiedad propiedad

ConnectionString.ConnectionString.

Le damos un nombre al Le damos un nombre al componente.componente.

Se usara cuando se Se usara cuando se manden a ejecutar los manden a ejecutar los

comandos SQLcomandos SQL

Page 20: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Paso 5: Operaciones SQL

Añadimos los botones Añadimos los botones para incluir, modificar y para incluir, modificar y

eliminareliminar

Page 21: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

procedure TForm1.Acc_IncluirClick(Sender: TObject);Begin { Construir un comando SQL, Concatenación } ADOCommand.CommandText := ‘INSERT INTO Libro

(cod_libro, titulo) VALUES (“'+Cod_Libro.Text+‘”, "'+Titulo.Text+'")';

{ Policía - Para mostrar el comando SQL } ShowMessage(Command.CommandText);

{ Para ejecutar el comando SQL } ADOCommand.Execute;

{ Para que se muestre en el Grid el registro incluido } Tabla.Requery();end;

Paso 5: Incluir Registros (INSERT SQL)

Page 22: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

procedure TForm1.Acc_EliminarClick(Sender: TObject);var cod_libro_Aux : String; I : Integer; La_Tabla : TDataSet;begin La_Tabla := Grid_Libro.DataSource.DataSet; if (Grid_Libro.SelectedRows.Count > 0) then begin if (MessageDlg('Esta seguro de eliminar?', mtWarning, [mbYes, mbNo], 0)

= mrYes) then begin for i:=0 to Grid_Libro.SelectedRows.Count-1 do begin La_Tabla.BookMark := Grid_Libro.SelectedRows.Items[I]; Cod_Libro_Aux := La_Tabla['Cod_Libro']; ADOCommand.CommandText := 'DELETE FROM Libro WHERE

Cod_Libro="'+ Cod_Libro_Aux+'“ ';

ShowMessage(ADOCommand.CommandText); ADOCommand.Execute; Tabla.Requery(); end; end; end;end;

Paso 5: Eliminar Registros (DELETE SQL)

Page 23: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

procedure TForm1.Grid_LibroDblClick(Sender: TObject);var I : Integer; La_Tabla : TDataSet;begin La_Tabla := Grid_Libro.DataSource.DataSet; if (Grid_Libro.SelectedRows.Count = 1) then begin for i:=0 to Grid_Libro.SelectedRows.Count-1 do begin La_Tabla.BookMark :=

Grid_Libro.SelectedRows.Items[I]; Cod_Libro.Text := La_Tabla['Cod_Libro']; Titulo.Text := La_Tabla['Titulo']; end; endend;

Paso 5: Modificar Registros (UPDATE SQL)

Page 24: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

procedure TForm1.Acc_ModificarClick(Sender: TObject);begin if length(Cod_Libro.Text)>0 then begin ADOCommand.CommandText := 'UPDATE Libro '+ 'SET Titulo = "'+Titulo.Text+'" '+ 'WHERE Cod_Libro =

"'+Cod_Libro.Text+'“ '; ShowMessage(ADOCommand.CommandText); ADOCommand.Execute; Tabla.Requery(); end else ShowMessage('Debe seleccionar un libro (doble clic)');end;

Paso 5: Modificar Registros (UPDATE SQL)

Para eliminar un registro debemos seleccionarlo en el Grid con un DobleClic, para que se muestre en los componentes Edit. Una vez modificado se hace clic en el botón Modificar.

Otra forma es editar los campos TEdit y luego hacer clic en el botón eliminar.

Page 25: My sql en delphi 7

DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD DBMS – ACCESO A BASE DE DATOS MYSQL DESDE DELPHI – UNIDAD IVIV

Docente: Ing. Fidel Darío Montes de Oca C.Docente: Ing. Fidel Darío Montes de Oca C.

Notas:

El Grid no debe ser editable (dgEditing)

Activamos la propiedad dgMultiSelected