Supongamos que queremos que nuestro gestor de bases de datos nos avise cuando se modifiquen ciertos datos. En este caso concreto, quiero recibir un email a mi cuenta cuando los datos de una tabla no concuerden con los datos de otra (es decir, que la cantidad de un artículo que hay en una tabla sea diferente a la cantidad de ese mismo artículo en otra tabla). Parece lioso, pero se ve rápido con un ejemplo:
TABLA datos_almacen
Codigo_articulo varchar(16)
Cantidad decimal(12,3)
TABLA datos_almacen_2
Codigo_articulo varchar(16)
Cantidad decimal(12,3)
Entonces, si la cantidad del mismo artículo es diferente para las dos tablas, quiero que me avise. Supongamos que tengo la siguiente vista que muestra todos los artículos con diferencias:
CREATE VIEW mi_vista AS
SELECT *
FROM datos_almacen a inner join datos_almacen_2 b
on a.codigo_articulo = b.codigo_articulo
and a.cantidad <> b.cantidad
Correcto, esta vista muestra las diferencias (recuerda que estamos suponiendo que ambas tablas tienen los mismos códigos de artículo, si en uno hubiese más que en otro habría que hacer un JOIN lateral). Ahora el trigger para que salte cuando aparezca alguna diferencia:
lunes, 27 de septiembre de 2010
MS SQL 2005: Crear una vista
Lo que hace una vista es devolver el resultado de una consulta de selección como si se tratase de un select, pero de forma que podemos impedir al usuario el acceso a las tablas sobre las que se ejecuta la consulta.
Un ejemplo:
CREATE VIEW mi_vista AS
select *
from mi_tabla
Ahora podemos quitarle permisos a un usuario sobre la tabla 'mi_tabla' pero darle permisos sobre la vista 'mi_vista' y el usuario podría consultar los datos de la tabla (los que nosotros, DBAs, queramos, jeje) sin tener acceso directo a la misma.
Un ejemplo:
CREATE VIEW mi_vista AS
select *
from mi_tabla
Ahora podemos quitarle permisos a un usuario sobre la tabla 'mi_tabla' pero darle permisos sobre la vista 'mi_vista' y el usuario podría consultar los datos de la tabla (los que nosotros, DBAs, queramos, jeje) sin tener acceso directo a la misma.
martes, 27 de julio de 2010
MYSQL: dar permisos a usuarios
GRANT [SELECT | UPDATE | etc.. ] ON [basedatos | *].[nombretabla | *] TO nombreUsuario
MYSQL: crear y borrar usuarios
Crear:
CREATE USER nombreUsuario IDENTIFIED BY 'password';
Eliminar:
DROP USER nombreUsuario;
CREATE USER nombreUsuario IDENTIFIED BY 'password';
Eliminar:
DROP USER nombreUsuario;
MS SQL 2005: importar datos de una hoja excel a una bbdd
Microsoft explica en esta página varios métodos para hacerlo. El que yo he seguido y me ha funcionado a la primera ha sido el siguiente:
Utilizar un servidor vinculado
Después de haber vinculado un servidor ya podemos hacer una consulta del tipo:
SELECT * FROM nombreAsignado...[nombreHoja$]
Utilizar un servidor vinculado
Después de haber vinculado un servidor ya podemos hacer una consulta del tipo:
SELECT * FROM nombreAsignado...[nombreHoja$]
miércoles, 21 de julio de 2010
PHP: conexión a base datos MICROSOFT SQL
Conseguir las DLLs
Lo primero que nos hace falta es conseguir las DLLs para conectarnos a un SQL Server, por defecto estas DLLs no van en el paquete de instalación automática, así que tendrás que bajar, si no lo tienes ya, el paquete con la instalación completa.
Descomprime el paquete con la distribución completa y busca el fichero "php_mssql.dll" que está dentro del directorio "extensions", copia este fichero al directorio "dlls" en donde tengas instalado el PHP.
Editar el PHP.ini
Ahora hay que decirle al PHP que tiene una librería nueva y que la debe usar. Así que editaremos el PHP.ini con el Notepad, normalmente el PHP.ini está en el directorio C:\WINNT.
Busca la línea en la que pone "extension_dir = " y modifícala para que apunte al directorio donde hemos copiado la DLL. Con esto le indicamos al PHP donde están las DLL de extensión.
Ahora busca la línea ";extension=php_mssql.dll" y modifícala quitándole el ";" del principio.
Graba el fichero PHP.ini y ya está.
Ejemplo de conexión
Solo nos queda probar que funciona la conexión con el servidor SQL Server, para ello vamos a conectarnos con la base de datos “Northwind” que viene como ejemplo en la instalación de SQL Server. Listaremos el nombre del producto y el precio de la tabla productos.
$conectID = mssql_connect("NombreServidor","SA","");
mssql_select_db("Northwind");
$result=mssql_query("select * from products",$numero );
while ($row=mssql_fetch_array($result)) {
$counter++; $c1=$row["ProductName"];
$c2=$row["UnitPrice"];
echo ("$counter c1: $c1 c2: $c2\n");
}
mssql_close($conectID);
Gracias a http://www.webestilo.com/php/articulo.phtml?art=19
Lo primero que nos hace falta es conseguir las DLLs para conectarnos a un SQL Server, por defecto estas DLLs no van en el paquete de instalación automática, así que tendrás que bajar, si no lo tienes ya, el paquete con la instalación completa.
Descomprime el paquete con la distribución completa y busca el fichero "php_mssql.dll" que está dentro del directorio "extensions", copia este fichero al directorio "dlls" en donde tengas instalado el PHP.
Editar el PHP.ini
Ahora hay que decirle al PHP que tiene una librería nueva y que la debe usar. Así que editaremos el PHP.ini con el Notepad, normalmente el PHP.ini está en el directorio C:\WINNT.
Busca la línea en la que pone "extension_dir = " y modifícala para que apunte al directorio donde hemos copiado la DLL. Con esto le indicamos al PHP donde están las DLL de extensión.
Ahora busca la línea ";extension=php_mssql.dll" y modifícala quitándole el ";" del principio.
Graba el fichero PHP.ini y ya está.
Ejemplo de conexión
Solo nos queda probar que funciona la conexión con el servidor SQL Server, para ello vamos a conectarnos con la base de datos “Northwind” que viene como ejemplo en la instalación de SQL Server. Listaremos el nombre del producto y el precio de la tabla productos.
$conectID = mssql_connect("NombreServidor","SA","");
mssql_select_db("Northwind");
$result=mssql_query("select * from products",$numero );
while ($row=mssql_fetch_array($result)) {
$counter++; $c1=$row["ProductName"];
$c2=$row["UnitPrice"];
echo ("$counter c1: $c1 c2: $c2\n");
}
mssql_close($conectID);
Gracias a http://www.webestilo.com/php/articulo.phtml?art=19
martes, 6 de julio de 2010
PHP: conocer los índices y los contenidos de un array
Dada una variable cualquiera $mi_array, sabemos que es un array pero no sabemos más. Para conocer los índices y los valores almacenados en cada uno de estos índices, podemos usar el siguiente bucle que recorrerá todos los índices del array:
foreach ($mi_array as $key => $value) {
// Sentencias
}
En $key tendremos el valor del índice, mientras que en $value tendremos el valor almacenado en dicho índice.
foreach ($mi_array as $key => $value) {
// Sentencias
}
En $key tendremos el valor del índice, mientras que en $value tendremos el valor almacenado en dicho índice.
Suscribirse a:
Entradas (Atom)