domingo, 17 de noviembre de 2013
lunes, 30 de septiembre de 2013
ANALISIS RESULTADOS
Análisis de Resultados y Resumen de la Primera Experiencia
El presente Proyecto se implemento según lo visto y aprendido en clases, ademas de la investigación por aparte de los lenguajes y programas utilizados en la elaboración del mismo. Se implemento siguiendo la programación por capas, las cuales son: Capa de interfaz, capa de negocio y capa de datos según lo aprendido en clases, véase también: Programacion por capas
Este Proyecto nos ayudo a crecer como estudiantes ya que aprendimos varios lenguajes de programación que no conocíamos y tuvimos muchos problemas en la realización del mismo durante el tiempo en que se realizó la tarea. Muchos errores que desconocíamos completamente nos quitaron bastante tiempo ya que en varias ocasiones se debieron invertir varias horas en la búsqueda de su solución.
Entre los lenguajes aprendidos están (y utilizados pues tal vez ya los conocíamos pero no a profundidad):
SQL: utilizado para la creación e interacción con la base de datos
C#: para la creación de la aplicación de escritorio, usando Visual Studio
PHP: implementado en la interacción del lado del servidor en la Aplicación web, este se comunica con la capa de interfaz y la capa de datos.
HTML: usado en la capa de interfaz que es el encargado de interactuar con el usuario, conocida también como capa de presentación.
Otros, utilizados pero en menor cantidad fueron CSS para darle estilo y formato a la interfaz gráfica en la Aplicación Web, JavaScript lenguaje del lado del cliente se utilizo en la capa de negocio o lógica de negocio en algunas ocasiones.
A = Tarea cumplida, B = Tarea implementada
parcialmente, pues tiene casos en los que falla, C = Tarea implementada solo en
la lógica (no se realizó su aplicación correcta), D = Tarea no implementada
Tarea
|
Cumplimiento
|
Script de creación de la Base de Datos y todos
sus objetos
|
A
|
Script de llenado de datos básicos o
catálogos
|
A
|
Script de migración de la base de
datos con datos de prueba a la BD del proyecto
|
A
|
El código de la aplicación por web
|
A
|
El código de la aplicación de
escritorio para el administrador
|
A
|
Horas trabajadas en el Proyecto: 90
Horas trabajadas por cada estudiante:
Cristian Araya: 83
David Vargas: 80
domingo, 29 de septiembre de 2013
INVESTIGACION: Script para eliminar todos los datos de las tablas MS SQL
Un script encontrado en la web y que es de gran importancia es eliminar todos los datos que se encuentran en todas las tablas en una base de datos. Esto lo utilizamos a la hora de hacer la migración, necesitábamos borrar todos los datos y navegando por la web encontramos el siguiente script. Sin embargo este script no reinicia los primary key, lo cual hay que hacerlo manualmente para cada tabla.
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
GO
EXEC sp_MSForEachTable
'BEGIN TRY
TRUNCATE TABLE ?
END TRY
BEGIN CATCH
DELETE FROM ?
END CATCH;'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
GO
Para reiniciar los primary key lo vimos en una entrada anterior que era de la siguiente forma:
DBCC CHECKIDENT (Tabla, RESEED, 0)
Cristian Araya
David Vargas
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
GO
EXEC sp_MSForEachTable
'BEGIN TRY
TRUNCATE TABLE ?
END TRY
BEGIN CATCH
DELETE FROM ?
END CATCH;'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
GO
Para reiniciar los primary key lo vimos en una entrada anterior que era de la siguiente forma:
DBCC CHECKIDENT (Tabla, RESEED, 0)
Cristian Araya
David Vargas
sábado, 28 de septiembre de 2013
Investigación
Pasar varibles de una pagina php a otra:
Código empleado:
Pagina.php que lo envia:
session_start();
$_SESSION['valores'] = $varObtenerTipo;
Donde $varObtenerTipo; es el arreglo que se va a enviar.
Pagina.php que la recibe:
session_start();
$mi_array = $_SESSION['valores'];
$b = $mi_array[0];
echo "Largo de la lista... ".count($mi_array)."<br />"; // Largo de la lista
echo "Nombre ".$b['Nombre']; // Para saber el nombre del primer elemento de la lista que se recibio
// si es que tiene elementos
Cristian Araya
David Vargas
Horas empleadas: 1
viernes, 27 de septiembre de 2013
AVANCE: Migrar Datos de Excel a una Base de Datos Prueba
Se nos entregaron los siguientes archivos de Excel:
Y se entregan varios archivos .txt haciendo referencia a los libros y su contenido
Se realiza con los tres archivos de excel, lo mencionado en la investigación que esta en la entrada anterior. De la cual obtenemos las siguientes tres tablas:
Cristian Araya
David Vargas
Horas Laboradas: 5horas
- TablaHistorial
- TablaUsuario
- TablaVentas
Y se entregan varios archivos .txt haciendo referencia a los libros y su contenido
Se realiza con los tres archivos de excel, lo mencionado en la investigación que esta en la entrada anterior. De la cual obtenemos las siguientes tres tablas:
Cristian Araya
David Vargas
Horas Laboradas: 5horas
INVESTIGACION: Documento de Excel a una tabla en SQL
Tenemos el siguiente Excel y queremos trasladar estos datos a una base de datos en SQL Server.
Nos vamos a Microsoft SQL Server Management y le damos click derecho en una base de datos y seleccionamos la opción Tareas.
Se selecciona la opción importar datos
Aparecerá la siguiente ventana donde tenemos que elegir el documento de Excel y elegir la versión de Excel, así como seleccionar la opción que viene.
Se elige la opción finalizar
A continuación se realizara el proceso, y podemos ir viendo paso por paso, y ver si algo falla, cuando todo ha sido exitoso se muestra la siguiente ventana
Y ahora podemos ver que nuestra nueva tabla esta creada, y consultamos los datos y vemos que son los que contenía el archivo de Excel.
Nos vamos a Microsoft SQL Server Management y le damos click derecho en una base de datos y seleccionamos la opción Tareas.
Se selecciona la opción importar datos
Aparecerá la siguiente ventana donde tenemos que elegir el documento de Excel y elegir la versión de Excel, así como seleccionar la opción que viene.
Se selecciona el destino tanto como el servidor como la base de datos
En la siguiente ventana podremos elegir copiar toda la tabla, o bien escribir una consulta para solo agregar algunos datos
Luego se seleccionan las pestañas del archivo de Excel y la tabla a la que se va a transferir
Se elige la opción finalizar
INVESTIGACION: Conexion con credenciales explicitas
Como vimos en la entrada anterior, hay varias maneras de conectarse a una base de datos, en esta ocasión hablaremos de la conexión de credenciales explicitas. Se pueden realizar de dos maneras solicitando las credenciales o bien usar las credenciales predeterminadas.
Solicitando las credenciales, se piden los datos y se concatenan al string de conexión.
Para usar credenciales predeterminadas no es nada recomendable poner la información en el código, ya que cualquiera lo podría ver, para esto se recomienda guardarlas cifradas en el archivo Web.config o bien en el registro de Windows como una subclave personalizada.
Para guardarlo en el archivo Web.config se debe creer un apartado de la siguiente manera:
<appSettings> <add key="mappedname" value="MyWebAppUser"/> <add key="mappedkey" value="Aje$31"/> </appSettings>
Y en la aplicación leemos las credenciales de la propiedad estática AppSettings.
Dim user As String = System.Configuration.ConfigurationSettings. _
AppSettings("mappedname")
Cuando usamos C# hay que agregar esta referencia al proyecto,
Y se escriben los valores en el app.config.
Para ver un ejemplo completo y ejemplo de como hacerlo en el registro de windows podemos acceder al link que se encuentra al final de esta entrada.
Fuente: http://msdn.microsoft.com/es-es/library/aa984237(v=vs.71).aspx
INVESTIGACION: Botones Submit HTML
INVESTIGACION
Submit Buttons
Multiples Botones Submit en un from de html
Problema: No se podían usar varios botones de tipo "Submit" de HTML porque cuando se seleccionaba cualquiera de ellos redireccionaban a la misma pagina y lo requerido era que cada uno lo hiciera a una diferente dependiendo de lo deseado en la aplicación.
Solución: Pagina consultada: Multiple submit buttons
Script:
<script>
function submitForm(action)
{
document.getElementById('form1').action = action; // El id del form
document.getElementById('form1').submit();
}
</script>
Horas empleadas en la solucion: 3
Cristian Araya
David Vargas
AVANCE: AplicacionWeb
Aplicacion Web
Trabajo de implementación de la solución a la aplicación Web.
Los días trabajados: 19,20,23,24
Se realizó: o Búsqueda y investigación de los elementos de html y su forma de interactuar y compartir información con php.
o Investigación del lenguaje php
o Solución de problemas como lo fue implementar un Script con JavaScript a forms para el uso de multiples botones Submit.
o Llenado de un Select en HTML usando php con la base de datos.
Codigo:
En este caso se utilizó una variable global que fue cargada desde un metodo creado en una clase php, el cual llama un stored procedure y la carga con los tipos de datos de la base de datos creada
Cristian Araya
David Vargas
Horas Invertidas: 21
INVESTIGACION: Select de varias tablas
La instrucción select recupera filas de la base de datos y habilita la selección de una o varias filas o columnas de una o varias tablas. El poder y complejidad que tiene esta instrucción es de gran alcance, conocer todas las facilidades y clausulas que puede tener un insert nos facilitara la tarea a la hora de consultar datos o extraer datos de una base de datos.
En esta ocasión mostramos como usar un select para crear una tabla o una consulta, con la información de varias tablas.
Como se puede observar estamos haciendo una consulta, donde queremos crear una tabla compuesta por información de otras tres tablas, donde cada tabla le ponemos un prefijo para ahorrarnos escribir mas, y comparamos elementos de las tablas, para tener lo que queremos.
Hay operadores como union, intersect y except entre otros que son importantes, y que en un futuro los aprenderemos.
INVESTIGACION: Reiniciando los datos en una base de datos
Muchas veces queremos reiniciar o volver los datos desde 0 en una base de datos, sin embargo muchas veces solo eliminamos los datos, y no reiniciamos la llave primaria, o bien en caso contrario reiniciamos la llave primaria pero no borramos los datos de la base datos, lo cual nos puede afectar nuestro trabajo ya que se crearía llaves repetidas.
Para volver una base de datos desde 0 se debe ejecutar los siguientes comandos:
delete * from tabla
DBCC CHECKIDENT (tabla, RESEED, 0)
Mostramos un ejemplo, se tiene la tabla persona con los siguientes datos:
Se borran todos los datos de la tabla
Se reinicia llave primaria
A la hora de insertar un nuevo elemento podemos ver que el ID ha comenzado otra vez desde el número 1.
INVESTIGACION: Comparar Fechas SQL Server
Para el manejo y la comparación de fechas, SQL ofrece herramientas muy practicas, que cuando estamos usando una variable de tipo date debemos saber. A continuación veremos varios aspectos de las fechas en SQL:
- Se ingresan en comillas simples
- Se puede ingresa - , y . como separadores
- La fecha actual del servidor se puede obtener con el comando getdate()
- Los operadores relacionales se pueden utilizar en las fechas.
- Existe el comando YEAR(fecha) que retorna el año de una fecha
- De igual forma existe el comando MONTH
- Existe una función que retorna el numero de semana: DATEPART
Por ejemplo:
MONTH(getdate()) obtiene el mes de la fecha actual
DATEPART(week,V.Fecha) obtiene el número de semana de la fecha
miércoles, 25 de septiembre de 2013
INVESTIGACION: Analisis Tipos de Conexion
Para poder conectarse a una base de datos, existen dos grandes modos de poder hacerlo, en cada uno presentamos sus ventajas como desventajas y un ejemplo de como se haria en C#.
Modo de Autentificación de Windows o Seguridad Integrada
Usa el protocolo de seguridad de Kerberos, proporciona la aplicación de directivas de contraseñas en cuanto a la validación de la complejidad de las contraseñas seguras, ofrece compatibilidad para el bloqueo de cuentas y admite la caducidad de las contraseñas. Usa una serie de mensajes cifrados para autenticar usuarios en SQL Server.
Ejemplo:
Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security = True
Mode de Autentificacion de SQL Server – Conexión con credenciales explicitas
Ocupa un usuario y una contraseña, las cadenas de conexión de se pueden guardar ya sea en el archivo Web.config y en el catálogo COM+ Admin.
Ejemplo:
data source = ServidorSQL; initial catalog = BaseDatos;
user id = Usuario; password = Contraseña
Desventajas:
Tener que proporcionar las credenciales de SQL Server cada vez que se conectan a la base de datos puede resultar molesto.
La autenticación de SQL Server no puede utilizar el protocolo de seguridad de Kerberos.
Los nombres y contraseñas de SQL Server se pasan a través de la red, lo que hace de este un método menos seguro.
Ventajas:
Permite a los usuarios conectarse desde dominios desconocidos o que no son de confianza
Permite que SQL Server admita entornos con sistemas operativos mixtos
Permite a SQL Server admitir las aplicaciones anteriores y las que proporcionan terceros y requieren la autenticación de SQL Server.
Autenticación de SQL Server por medio de SOAP : Es un modo de autenticación del pasado, que ya no es utilizado debido a las ineficiencias de seguridad que han sido encontradas
Referencias
http://msdn.microsoft.com/es-es/library/aa289855(v=vs.71).aspx
http://technet.microsoft.com/es-es/library/ms144284.aspx
http://msdn.microsoft.com/es-es/library/aa984237(v=vs.71).aspx
Modo de Autentificación de Windows o Seguridad Integrada
Usa el protocolo de seguridad de Kerberos, proporciona la aplicación de directivas de contraseñas en cuanto a la validación de la complejidad de las contraseñas seguras, ofrece compatibilidad para el bloqueo de cuentas y admite la caducidad de las contraseñas. Usa una serie de mensajes cifrados para autenticar usuarios en SQL Server.
Ejemplo:
Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security = True
Mode de Autentificacion de SQL Server – Conexión con credenciales explicitas
Ocupa un usuario y una contraseña, las cadenas de conexión de se pueden guardar ya sea en el archivo Web.config y en el catálogo COM+ Admin.
Ejemplo:
data source = ServidorSQL; initial catalog = BaseDatos;
user id = Usuario; password = Contraseña
Desventajas:
Tener que proporcionar las credenciales de SQL Server cada vez que se conectan a la base de datos puede resultar molesto.
La autenticación de SQL Server no puede utilizar el protocolo de seguridad de Kerberos.
Los nombres y contraseñas de SQL Server se pasan a través de la red, lo que hace de este un método menos seguro.
Ventajas:
Permite a los usuarios conectarse desde dominios desconocidos o que no son de confianza
Permite que SQL Server admita entornos con sistemas operativos mixtos
Permite a SQL Server admitir las aplicaciones anteriores y las que proporcionan terceros y requieren la autenticación de SQL Server.
Autenticación de SQL Server por medio de SOAP : Es un modo de autenticación del pasado, que ya no es utilizado debido a las ineficiencias de seguridad que han sido encontradas
Referencias
http://msdn.microsoft.com/es-es/library/aa289855(v=vs.71).aspx
http://technet.microsoft.com/es-es/library/ms144284.aspx
http://msdn.microsoft.com/es-es/library/aa984237(v=vs.71).aspx
martes, 24 de septiembre de 2013
INVESTIGACION: Bloque Try / Catch SQL Server
Los errores de código en el SQL Server pueden tratarse de forma similar a lenguajes como C# o C++. Constan del bloque try y del bloque catch, donde el bloque catch controla la excepción que se puede producir en el bloque try. Deben de ir primero el bloque try, seguido inmediatamente del bloque catch.
El SQL Server presenta varios tipos de errores, que los mostramos a continuacin:
- ERROR_NUMBER() devuelve el número de error.
- ERROR_MESSAGE() devuelve el texto completo del mensaje de error. El texto incluye los valores suministrados para los parámetros sustituibles, como longitudes, nombres de objeto u horas.
- ERROR_SEVERITY() devuelve la gravedad del error.
- ERROR_STATE() devuelve el número de estado del error.
- ERROR_LINE() devuelve el número de línea dentro de la rutina en que se produjo el error.
- ERROR_PROCEDURE() devuelve el nombre del procedimiento almacenado o desencadenador en que se produjo el error.Algo que cabe mencionar son las dos situaciones donde el bloque try/catch no los puede controlar como lo son:- Errores de Compilación- Errores que se producen durante la recompilación de instruccionesInstrucción rollback : Revierte una transacción explícita o implícita hasta el inicio de la transacción o hasta un punto de retorno dentro de la transacción y de igual manera libera los recursos que mantiene la transacción.Instrucción commit: Hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, libera los recursos mantenidos por la transacciónEn el siguiente ejemplo se muestra el machote que seguimos en cada uno de nuestros procedimientos, para hacer uso de un manejo efectivo de errores y excepciones.create procedure insertarHistoricoDocumento
@Documento int,
@Administrador int,
@Descripcion varchar (50),
@Contenido text
as
begin
begin try
begin transaction
insert HistoricoModDocumento(FKDocumento,FKAdministrador,DescripcionCambio,Contenido)
values(@Documento,@Administrador,@Descripcion,@Contenido)
commit transaction
end try
begin catch
select ERROR_NUMBER() as ErrorNumber;
return -1;
rollback transaction
end catch
end
Para mas información se puede consultar los siguientes enlaces :
http://technet.microsoft.com/es-es/library/ms179296(v=sql.105).aspx
http://technet.microsoft.com/es-es/library/ms181299.aspx
Cristian Araya
David Vargas
Horas Invertidas: 2 horas
martes, 17 de septiembre de 2013
Conceptos Aprendidos: Seguridad
Para realizar una aplicación y una base de datos con una seguridad estable, se recomiendan las siguientes cosas:
- Conexion a la base de datos desde otro lenguaje de programación: Se debe encriptar la cadena de conexión, para que estos no sean visibles desde el código y por tanto que nadie ajeno a los desarrolladores los pueda ver. En resumen estar en la capa de acceso a datos y no debe estar en la capa lógica.
-Usar try/catch en las operaciones de store procedure: Se recomienda encerrar las operaciones de un store procedure, en un try/catch para evitar errores.
-Verificar parámetros en los store procedure: Se debe verificar que los parámetros sean correctos a la hora de entrada, como por ejemplo que no sean nulos.
-Llamar store procedure desde otros lenguajes: Cuando se llama un store procedure desde otros lenguajes, se debe de hacer esta llamana desde un bloque try/catch para prevenir errores y liberar recursos. En nuestro caso el C# también permite hacerlo con la instrucción using.
-Parámetros privados: Hay ciertos parámetros que se recomiendan encriptar, como es el caso de las contraseñas, que requieren una seguridad mayor.
-Para encriptar parámetros se pueden usar algoritmos y tecnicas que ya han sido investigadas antes, como por ejemplo usar el Algoritmo de Hash Seguro (SHA). Sin embargo como sabemos toda encriptacion requiere mas espacio y memoria, por lo cual las operaciones se realizaran más lentas y tendran una complejidad mayor.
- Conexion a la base de datos desde otro lenguaje de programación: Se debe encriptar la cadena de conexión, para que estos no sean visibles desde el código y por tanto que nadie ajeno a los desarrolladores los pueda ver. En resumen estar en la capa de acceso a datos y no debe estar en la capa lógica.
-Usar try/catch en las operaciones de store procedure: Se recomienda encerrar las operaciones de un store procedure, en un try/catch para evitar errores.
-Verificar parámetros en los store procedure: Se debe verificar que los parámetros sean correctos a la hora de entrada, como por ejemplo que no sean nulos.
-Llamar store procedure desde otros lenguajes: Cuando se llama un store procedure desde otros lenguajes, se debe de hacer esta llamana desde un bloque try/catch para prevenir errores y liberar recursos. En nuestro caso el C# también permite hacerlo con la instrucción using.
-Parámetros privados: Hay ciertos parámetros que se recomiendan encriptar, como es el caso de las contraseñas, que requieren una seguridad mayor.
-Para encriptar parámetros se pueden usar algoritmos y tecnicas que ya han sido investigadas antes, como por ejemplo usar el Algoritmo de Hash Seguro (SHA). Sin embargo como sabemos toda encriptacion requiere mas espacio y memoria, por lo cual las operaciones se realizaran más lentas y tendran una complejidad mayor.
AVANCE: Comienzo aplicacion de escritorio
Se comienza a hacer la aplicación de escritorio, en este avance realizamos los metodos de manejo para los libros y creacion de administradores. Se realiza:
- Ventana Crear Administrador
- Ventana inicio de sesión
- Ventana Crear un documento
- Ventana Editar Documento
- Ventana Buscar Documento
Se muestran unas imágenes mostrando la aplicación al momento:
Hecho por:
Cristian Araya
David Vargas
Horas Laboradas: 8 horas
- Ventana Crear Administrador
- Ventana inicio de sesión
- Ventana Crear un documento
- Ventana Editar Documento
- Ventana Buscar Documento
Se muestran unas imágenes mostrando la aplicación al momento:
Hecho por:
Cristian Araya
David Vargas
Horas Laboradas: 8 horas
AVANCE: Prueba Conexion SQL Server y C#
Se realiza una pequeña aplicación en C# con la base de datos de prueba que realizamos de persona, para verificar la conexión a la base de datos. A continuación se muestran unas imágenes del código usado y de la aplicación realizada.
Aplicación Corriendo
David Vargas
Cristian Araya
Horas Dedicadas: 6horas
Aplicación Corriendo
Base de Datos utilizada
Código de Conexión Integrada a SQL Server en C#
Función en C#, que llama un store procedure echo en la base de datos
David Vargas
Cristian Araya
Horas Dedicadas: 6horas
sábado, 14 de septiembre de 2013
AVANCE: Diseño de Aplicación Escritorio
El día de hoy decidimos realizar en papel el diseño de la aplicación en escritorio, a continuación mostramos una foto de lo realizado. En resumen se determinan las diferentes ventanas y funciones que tendrá la aplicación de escritorio y de igual manera se establecen los Store Procedure principales que tenemos que crear para que la aplicación pueda correr de forma optima, estos son:
- autentificacion
- crearDocumento
- crearAdministrador
- modificarDocumento
- eliminarDocumento
- buscarDocumento
- buscarVenta
- buscarHistorialVenta
- buscarHistorialDocumento
Cristian Araya
David Vargas
Horas: 4 horas
AVANCE: Diagrama Bases de Datos V3.0
Se realizan cambios al diagrama antes mostrado y con este se comienza a trabajar en las diversas aplicaciones
Cristian Araya
David Vargas
Horas Dedicadas: 4 horas
viernes, 13 de septiembre de 2013
EXPERIENCIA: PHP y HTML
Conceptos PHP y HTML
Los días 9, 10, 11 y 12 de septiembre se dedicaron horas al proyecto en la sección de la aplicación de escritorio, por ejemplo se aprendieron conceptos como:
a) Elementos de HTML y la unión con el código de PHP
b) Como conectar desde PHP a la base de datos
c) Dar un mejor formato a los elementos de HTML con codigo CSS
d) Pasar variables de un documento.php a otro
e) en general el manejo de la logica de HTML, PHP y la base de datos en SQL Server 2012
<HTML LANG="ES">
<HEAD>
<TITLE>Holis Mundo</TITLE>
</HEAD>
<BODY>
<form>
<label for="matricula">Matricula:</label>
<input type="text" id="matricula" name="matricula" value=""/> <br/>
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" value=""/> <br/>
<label for="materno">Materno:</label>
<input type="text" id="materno" name="materno" value=""/>
</form>
<H1>Prueba de Hola Mundoo</H1>
<!-- Caja de texto -->
<input type="text" size="15" maxlength="30" value="Nombre" name="nombre">
<!-- Codigo PHP -->
<?php
echo "Codigo php.<br />";
// Connect to SQL Server and check for errors
//$serverName = "CHARLIE-PC\SQLEXPRESS"; //serverName\instanceName
// Puesto que no se han especificado UID ni PWD en el array $connectionInfo,
// La conexión se intentará utilizando la autenticación Windows.
/*$connectionInfo = array( "Database"=>"BD-Proyecto1");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
// EJECUCION DE LA CONSULTA
$tsql_callSP = "{call eliminaCliente( ?)}"; /* Nombre del procedure, cada ? es un parametro*/
$Id = 3;
$vacationHrs = 1;
$params = array( /* Array para agregar los parametros, si el procedure devuelve algo es un PARAM_OUT*/
array($Id, SQLSRV_PARAM_IN)
);
/* Execute the query. */
$stmt3 = sqlsrv_query( $conn, $tsql_callSP, $params); /*Ejecuta la vara*/
if( $stmt3 === false )
{
echo "Error in executing statement 3.\n";
die( print_r( sqlsrv_errors(), true)); /* Imprime el tipo de error */
}
/* Display the value of the output parameter $vacationHrs. */
sqlsrv_next_result($stmt3); /*Esto es por si el procedure devuelve algo se trabaja de esta manera*/
echo "Remaining vacation hours: ".$vacationHrs;
/*Free the statement and connection resources. */
sqlsrv_free_stmt( $stmt3);
sqlsrv_close( $conn);*/
?>
</BODY>
</HTML>
Paginas Consultadas:
o http://answers.yahoo.com/question/index?qid=20110128160534AAEuOca
o http://www.w3schools.com/html/
o http://technet.microsoft.com/en-us/library/cc644932(v=sql.105).aspx (Muy importante)
David Vargas
Cristian Araya
Horas invertidas: 15
Suscribirse a:
Entradas (Atom)

























