domingo, 18 de mayo de 2014

DBOR , create type as object and table of object , in SQL


Instrucciones basicas en SQL para la creación de objetos y tablas de objetos:

Comentario de texto en SQL se hace con 2 guiones "--" al pricipio de la linea!

1. crear un objeto
-- Para heredar de un objeto creado, se le tiene que especificar "NOT FINAL" .

CREATE OR REPLACE TYPE nom_objeto AS OBJECT (
           atributo1  VARCHAR2(123)  [, atributo2  NUMBER(2) ] [ ,atributo3 DATE] ,
           MEMBER FUNCTION getAtributo1 return VARCHAR2,
           MEMBER PROCEDURE setAtributo1(nuevoValor  VARCHAR2),
      
)       NOT FINAL  ;

Ejemplo, heredar del objeto "nom_objeto":

CREATE OR REPLACE TYPE nom_objeto2  UNDER  nom_objeto  (
--atributos
--declaración de metodos
);


2. definir los metodos de cada objeto creado :

CREATE OR REPLACE TYPE BODY  nom_objeto AS 

     MEMBER FUNCTION getAtributo1 RETURN VARCHAR AS 
          --entre "as" y "begin" inicializar variables de esta funcion, si hace falta.
          BEGIN
               RETURN SELF.atributo1;
          END getAtributo;


     MEMBER PROCEDURE setAtributo1(nuevoValor   VARCHAR2)  AS 
          BEGIN
               SELF.atributo1 : =  nuevoValor ;
          END setAtributo;
END;


3. Crear tabla de este objeto :


CREATE TABLE nomTabla OF nom_objetoPRIMARY KEY(atributo1));

INSERT INTO nomTabla VALUES('valor del atributo1 del objeto' );
INSERT INTO nomTabla VALUES('hola ' );
INSERT INTO nomTabla VALUES('mundooo ' );


SELECT * FROM nomTabla  T  WHERE  T.atributo1 = '   hola  '  ;

result :

ATRIBUTO1
---------------------------------------------------
hola                                                            

jueves, 8 de mayo de 2014

ORA-12560: TNS:error del adaptador de protocolo


En este apartado, explicaré en unos sencillismos pasos solucionar este problema que nos puede dar Oracle  en Windows
ORA-12560: TNS:error del adaptador de protocolo
ORA-12560: TNS:protocol adapter error

  1. Damos click derecho en 'Mi PC', y click en propiedades, en la pestaña 'Opciones Avanzadas' y el botón de debajo del todo con el nombre 'Variables de Entorno'.
  2. Click en 'Nueva' y escribimos en el nombre 'ORACLE_SID'
  3. Para saber el valor del nombre de nuestra instancia nos dirigimos a la siguiente ruta: C:/Windows/system32/ y buscamos ''servicios.msc'' y lo abrimos
  4. Buscamos 'OracleServiceNOMBRE' y según el nombre que ponga, lo escribimos en el valor de la variable.

En mi caso el valor era XE

martes, 15 de abril de 2014

Proyecto base Core Data

Pasos a seguir para crear un proyecto base en Xcode que utilice Core Data


  1. New > project > Aplication > empty application > Next > seleccina "use coreData".
  2. Crear el storyBoard : new > file > user interfaces > story board. Ir a la raiz del proyecto y seleccionar en "developer info " > " Main interfaces" selecciona con el desplegable el storyboard. Ir a "appdelegate.m" y en el metodo "application:(UIAplicatio *) application didFinishLaunchingWithOptions:(NSDirectionary *) launchOptions " borrar todo y agregar SOLO "return YES;"
  3. En el archivo XXXX.xcdatamodel abajo a la derecha esta el icono de "editor style", cambiamos a modo "table grap" (editar las tablas de forma visual)
  4. Abajo a la izquierda en "add empty" añadimos una entidad (tabla)
  5. En la derecha vista "Utilidades" en "data model inspector" editamos la tabla. (nom, agregar property con su respectivo tipo... etc.)
  6. agregar relaciones entre las tablas : cambias el tipo de vista para las tablas, seleccionas la entidad, en "relationShip" con el boton de añadir "+" agregamos una relacion con su nombre, origen , destino (en todas seleccionas la inversa) . Selecciona la relacion (haciendo clic encima para que este en azul) y en la derecha en "type" selecciona "to many " en caso que sea una relacion uno a muchos. (explicacion para tontos: en la entidad con la relacion 1 (uno) tiene que tener una flecha, en la entidad con la relacion n (muchos) tiene que tener 2 flechitas. )
  7. Crear las clases ".h", ".m" de cada entidad: seleccionas las clases en modo "visual" (que se vean las tablas) , en la parte izquierda de la pantalla en "EMPTIES" , luego New File > CoreData > NSManagerObject Subclass. > next > next

miércoles, 19 de marzo de 2014

DDL- Creación de tablas













Tipo de datos
  • Varchar2 (tamaño) →  Cadena de caracteres de longitud variable. Tamaño 1...4000(alfanumérico).
  • Number (precisión, escala) → Números de tantos dígitos como indiquemos en precisión, de los que los indicados en escala serán decimales.
    Ejemplo: number (6,2) (primero carácter de 6 letras , 2 cifras → el numero máximo que puede representar será de 9999.99). Si se escribe number (3,0) no habrá decimales.
  • Char (tamaño)→ Cadena de caracteres de longitud fija (entre 1..2000)
  • Date → Fechas válidas 

Ejemplo de tabla → ALUMNO (DNI, Nombre, telefono, email)
CREATE TABLE alumno ( dni vachar2 (11),
nombre varchar2 (200), telefono number (9), email varchar2 (150));

 Restricciones de columna
Son restricciones que se aplican a un sólo atributo o columna. No podemos indicar restricciones que afecten a 2 o más columnas a la vez:
  • PRIMARY KEY → Clave primaria
  • NOT NULL → La columna no admite valores NULL
  • UNIQUE → La columna no admite duplicados. Claves alternativas.
  • REFERENCES TABLA(columna) → Clave foránea
  • CHECK → Todos los valores de la columna deben cumplir la condición indicada.

Modificación de tablas

Sintaxis:

      ALTER TABLE nombretabla
      modificar_columna
      modificar_restriccion
      RENAME to nombreNuevo
      Para modificar columna:

  • ADD columna defcolumna
  • MODIFY columna defcolumna
  • DROP COLUMN columna
Modificación de restricciones

  • ADD CONSTRAINT restricción
  • DROP CONSTRAINT restricción
  • DISABLE CONSTRAINT nombre
  • ENSABLE CONSTRAINT nombre
Renombrar tablas

      ALTER TABLE nombreviejo
      RENAME TO nombrenuevo; 


Ejemplos de aplicación de los conceptos anteriores:

*Añadir restricción a telephone  sin repetidos
  ALTER TABLE alumno14 telephone number (9) UNIQUE;

*Añadir una columna edad
  ALTER TABLE ALUMNO14 ADD EDAD NUMBER (3);

*Añadir restricción edad >18
  ALTER TABLE ALUMNO14
  ADD CONSTRAINT CH_EDAD CHECK (edad>18);




martes, 25 de febrero de 2014

How to install Burg (Graphical Grub) in Ubuntu

The purpose of that mini-tutorial is to have a great graphical boot menu in our laptops to have a better great experience using Windows and Linux together.
These steps will work for any other Linux distribution like Ubuntu, Kubuntu, Linux Mint.. etc
You have to install burg in your linux the following steps:
sudo add-apt-repository ppa:n-muench/burg
sudo apt-get update
sudo apt-get install burg burg-themes
sudo update-burg
In the following video you can see a demo about Burg. Dual boot Linux and Windows.

Pointers and References C/C++


In this chapter we are going to study:
- Pointers.
- References.
- How to use them.

Pointers

When we have to create a new variable, we type:
The variable "x" is saved to memory, then memory keep that value in a row.
 If we change the value of the variable "x" like:
int x = x + 100;
Then, the memory row that keeps the last value x = 10, now is changed to x = 110.

How to use

In the following example we can see a few lines of code to study how to use pointers and their operators:
For example, the variable (int *my_pointer) is a variable of pointer type. That kind of variable can keep a memory address that keeps an integer data type.
If we need to know a memory address about another variable or element, we have to use the &(ampersand) operator. In the code we can see how we keep the memory address of variable (int age) to a integer pointer variable (int *my_pointer).
my_pointer = &age;

References

References are exclusive of C++ language.
Example
int main(void)
{
   int code;
   int &code2 = code;
   code2 = 5;
}
In this case, we created a variable called (code) and a reference variable called (code2) that calls (code). Now all operations that we would do with (code2) is performed with the variable (code)
This is a fast and summarized tutorial about pointers and references for C/C++.

Alex - aferrerdeveloper.com