Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Qu es Microsoft SQLServer?
Microsoft SQLServer es un sistema de gestin de bases de datos relacionales (SGBDR), que utiliza un lenguaje de programacin propio (TransacSQL), que permite aplicar las convenciones definidas en el lenguje de programacin SQL (Standard Query Langage), globalmente aceptado e
implementado para la realizacin de consultas por los principales proveedores de bases de datos comerciales (Oracle, Microsoft SQLServer, Microsoft
Access, MySql, Postgres, ).
Cada una de estas empresas, realizan en sus productos una implementacin de los estndares definidos a nivel global para el lenguaje de programacin
SQL.
A diferencia de otros sistemas de almacenamiento de informacin, que utilizan ficheros independientes para almacenar cada tabla o subconjunto de
informacin, los gestores de bases de datos como SQLServer almacenan toda la informacin en un fichero de base de datos que incluye todos los
objetos definidos en la misma, pudiendo utilizar segn la configuracin algn fichero adicional para almacenar un log de seguimiento de operaciones y
una serie de datos temporales.
Un sistema de gestin de bases de datos permite controlar y delimitar el acceso a cada tipo de objetos definidos en la misma as como el uso
compartido de la informacin y el acceso simultneo por parte de varios usuarios.
Conceptos SQL
El lenguaje SQL tiene como objetivo el permitir implementar y manipular de forma sencilla una serie de tablas relacionadas entre s.
DDL
Se denomina DDL (Data Definition Language) a la parte de SQL que permite definir los objetos existentes en la base de datos y las relaciones
existentes entre los mismos.
DML
Se denomina DML (Data Manipulation Language) a la parte de SQL que permite manipular la informacin almacenada en los distintos objetos de la
base de datos (Consultar, Modificar, Insertar y/o Borrar).
Tipos de Datos
Cada sistema de gestin de base de datos maneja una serie de tipos de datos o tipos de valores que se pueden asignar a los campos contenidos en cada
tabla.
Algunos de los tipos de datos ms utilizados son:
Entero (Int): Permite introducir nmeros de poca dimensin y sin decimales.
Real (Decimal): Permite introducir nmeros reales con parte decimal.
Caracter: Permite introducir un carcter (letra, nmero o smbolo especial).
Cadena: Permite introducir una cadena de caracteres. Segn el tipo concreto utilizado, esta cadena estar rellena o no con espacios hasta la
longitud definida.
DateTime: Permite introducir una informacin de tipo fecha y hora.
Cada lenguaje tiene una serie de funciones y operadores que permiten hacer comparaciones y conversiones entre datos del mismo o distinto tipo.
Base de datos
Se denomina Base de Datos a un conjunto de objetos relacionados entre s. En una base de datos, segn el proveedor y el sistema que estemos
utilizando, se pueden encontrar diferentes tipos de objetos:
Esquemas (divisin por reas de los objetos de la b.d.)
Usuarios (inicio de sesin)
Tablas
Vistas
ndices
Sinnimos
Objetos de programacin (disparadores asociados a eventos, funciones y procedimientos, restricciones).
Pasos a seguir:
1. Crear la base de datos
2. Crear todos los esquemas y tablas necesarios
3. Crear los usuarios o cuentas de login
4. Dar acceso a un usuario a una base de datos
use [prueba]
create user [usr1] for login [ordenador\usr1]
Dar acceso a un usuario a una tabla
grant execute
Quitar acceso a un usuario
revoke execute
Consideraciones de CitectVijeoProject
Normalmente se utilizan variables de tipo cadena que al guardarse o recuperarse en la base de datos, se convierten de forma automtica. Es
conveniente definir funciones auxiliares que permitan realizar todas las conversiones de datos siempre del mismo modo.
Al realizar una consulta asociada a una ventana de datos, se dispone de un lmite en el tamao de la cadena de caracteres de la sentencia a
introducir. Debido a esto, lo ideal es nombrar los campos con los mnimos caracteres posibles, dando as tambin un aadido de complejidad al
producto resultante que complica poder acceder a la informacin si no se cuenta con la documentacin adecuada.
Separadores de fecha. El formato ideal de manejo de campos de tipo fecha y hora es convertirlos a una cadena YYYY/MM/DD hh:mm:ss. De
esta forma, se consigue una cadena de texto que se puede convertir de forma automtica al guardarla en un campo de tipo fecha-hora.
Caracteres especiales (, tldes y algunos smbolos): Segn el lenguaje establecido para la base de datos y el juego de caracteres se puede dar el
caso de que algunos de estos caracteres no se interpreten bien, si se est utilizando un juego de caracteres para almacenar los datos y otro
diferente para mostrarlos (p.ej. Si un ordenador est en windows y otro en linux).
END
//select con nmeros
INT Iinicial=DateSub(TimeCurrent()-300,StrToDate("01/01/1980"));
INT Ifinal=DateSub(TimeCurrent(),StrToDate("01/01/1980"));
STRING ConsultaSQL;
INT hSQL, iResult;
INT I;
STRING FH;
//CUIDADO CON LOS REALES YA QUE HAY QUE DEFINIRLOS COMO STRINGS YA QUE EL SQL SERVER RETORNA LOS REALES CON
//SEPARACIN DECIMAL "," MIENTRAS QUE EL CITECT ESPERA UN "." Y NO FUNCIONA
STRING C00,C01,C02,C03,C04,C05,C06,C07,C08,C09;
//select con strings
//ConsultaSQL="SELECT " + NombreCampos + " FROM " + NombreTabla + " WHERE FH > '" + fechainicial + "' AND FH < '" + fechafinal + "' ORDER BY I DESC";
//iResult = SQLExec(hSQL, ConsultaSQL);
IF iResult = 0 THEN
WHILE SQLNext(hSQL) = 0 DO
I=SQLGetField(hSQL, "I");
FH=SQLGetField(hSQL, "FH");
C00=SQLGetField(hSQL, "C00");
C01=SQLGetField(hSQL, "C01");
C02=SQLGetField(hSQL, "C02");
C03=SQLGetField(hSQL, "C03");
C04=SQLGetField(hSQL, "C04");
C05=SQLGetField(hSQL, "C05");
C06=SQLGetField(hSQL, "C06");
C07=SQLGetField(hSQL, "C07");
C08=SQLGetField(hSQL, "C08");
C09=SQLGetField(hSQL, "C09");
END
END
SQLDisconnect(hSQL);
END
END
END
G ra b a r D a to s e n T a b la s d e B a s e s d e D a to s S Q L S e r v e r
R E A L v a l o r r e a l0 0 ,v a l o r r e a l0 1 ,v a lo r r e a l0 2 ,v a lo r r e a l0 3 ,v a lo r r e a l0 4 ;
R E A L v a l o r r e a l0 5 ,v a l o r r e a l0 6 ,v a lo r r e a l0 7 ,v a lo r r e a l0 8 ,v a lo r r e a l0 9 ;
/ /G r a b a r D e v ic e s
F U N C T IO N G ra b a r D e v ic e s ()
I N T i, h D e v ,in d ic e ;
/ /c a lc u lo d e l n m e r o d e s e g u n d o s p a r a in d e x a r y c o n s u lta s s q l
in d ic e = D a t e S u b ( T im e C u r r e n t( ) ,S t r T o D a te ( " 0 1 / 0 1 / 1 9 8 0 " ) );
/ /c a lc u lo d e la f e c h a y h o r a p a r a in d e x a r y c o n s u lt a s s q l
S T R I N G a n o , m e s , d i a ,h o r a ,m in u t o , s e g u n d o ;
a n o = ( D a te Y e a r ( T im e C u r r e n t ( ) ,1 ) ) ; IF ( D a te Y e a r ( T im e C u r r e n t ( ) ,1 ) ) < 1 0 T H E N a n o = " 0 " + a n o E N D ;
m e s = (D a te M o n th (T im e C u r re n t())); IF (D a te M o n th (T im e C u rre n t ()))< 1 0 T H E N m e s = " 0 " + m e s E N D ;
d ia = ( D a te D a y ( T im e C u r re n t () ) ) ;IF ( D a te D a y ( T im e C u r re n t () )) < 1 0 T H E N d ia = " 0 " + d ia E N D ;
h o r a = T im e H o u r ( T im e C u r r e n t ( ) ) ; I F T i m e H o u r ( T im e C u r r e n t ( ) ) < 1 0 T H E N h o r a = " 0 " + h o r a E N D ;
m in u t o = T im e M in ( T im e C u r r e n t ( ) ) ; I F T i m e M in ( T im e C u r r e n t ( ) ) < 1 0 T H E N m i n u t o = " 0 " + m in u t o E N D ;
s e g u n d o = T im e S e c ( T im e C u r r e n t( ) ) ; IF T im e S e c ( T im e C u r r e n t ( ) ) < 1 0 T H E N s e g u n d o = " 0 " + s e g u n d o E N D ;
S T R IN G fe c h a h o ra = "Y Y Y Y /M M /D D ;H H :M M :S S ";
f e c h a h o r a = a n o + " /" + m e s + " /" + d ia + " ;" + h o r a + " :" + m in u to + " :" + s e g u n d o ;
//c a lc u lo d e lo s v a lo r e s r e a le s
v a l o r r e a l0 0 = v a lo r r e a l0 0 + 0 . 1 ;
v a l o r r e a l0 1 = v a lo r r e a l0 0 + 0 . 2 ;
v a l o r r e a l0 2 = v a lo r r e a l0 0 + 0 . 3 ;
v a l o r r e a l0 3 = v a lo r r e a l0 0 + 0 . 4 ;
v a l o r r e a l0 4 = v a lo r r e a l0 0 + 0 . 5 ;
/ /g r a b a c i n e n la t a b la d e la b a s e d e d a t o s
h D e v = D e v O p e n ("T A B L A 1 " , 8 );
IF h D e v = -1 T H E N
D s p E rro r(" N o s e p u e d e a b rir e l D e v ic e " );
END
D e v W r ite ( h D e v , S t r T o I n t( in d ic e ) ) ;
D e v W r ite ( h D e v ,f e c h a h o r a ) ;
D e v W r it e ( h D e v , S t r T o R e a l ( v a lo r r e a l0 0 ) ) ; // C 0 0
D e v W r it e ( h D e v , S t r T o R e a l ( v a lo r r e a l0 1 ) ) ; // C 0 1
D e v W r it e ( h D e v , S t r T o R e a l ( v a lo r r e a l0 2 ) ) ; // C 0 2
D e v W r it e ( h D e v , S t r T o R e a l ( v a lo r r e a l0 3 ) ) ; // C 0 3
D e v W r it e ( h D e v , S t r T o R e a l ( v a lo r r e a l0 4 ) ) ; // C 0 4
D e v C lo s e (h D e v );
END
D iv is i n
P o n e n t e : L u is M a j
F e c h a : 1 5 /0 9 /0 6
20