Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia
Mostrando entradas con la etiqueta Base de datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Base de datos. Mostrar todas las entradas

9/8/12

Consultas y Parámetros con ADO.NET

JAN29

En este tutorial veremos la forma de crear una consulta con parámetros de entrada utilizando la tecnología de ADO.NET:

ADO.NET proporciona un puente entre los objetos creados en VB o C#  y la base de datos MySQL asociada a la aplicación, ademas proporciona una vista orientada a objetos de la base de datos a través de TablaAdapter para mediar entre los objetos y los componentes de la base de datos, que pueden ser tablas, consultas, procedimientos almacenados, vistas, funciones, etc.

Necesitamos:

Nuestra base de datos de prueba, se llama "dbtest" y esta conformado por una sola tabla "animales" la cual es:
-- 
-- Estructura de tabla para la tabla 'animal'
-- 

CREATE TABLE animal (
  id bigint(20) NOT NULL auto_increment,
  nombre varchar(64) NOT NULL,
  clase varchar(16) NOT NULL,
  PRIMARY KEY  (id)
);

-- 
-- Volcar la base de datos para la tabla 'animal'
-- 

INSERT INTO animal VALUES (1, 'Cocodrilo', 'reptil');
INSERT INTO animal VALUES (2, 'Tortuga', 'reptil');
INSERT INTO animal VALUES (3, 'León', 'mamifero');
INSERT INTO animal VALUES (4, 'Pinguino', 'ave');
INSERT INTO animal VALUES (5, 'Tigre', 'mamifero');
INSERT INTO animal VALUES (6, 'Mono', 'mamifero');
INSERT INTO animal VALUES (7, 'Gato', 'mamifero');
INSERT INTO animal VALUES (8, 'Condor', 'ave');
INSERT INTO animal VALUES (9, 'mi perro', 'ET');
INSERT INTO animal VALUES (10, 'El gato del vecino', 'El diablo');

Comencemos.

1. Crea un nuevo proyecto en VS

2. Añade un nuevo origen de datos, importante ESTE ORIGEN DE DATOS DEBE ESTAR VACÍO. (ver tutorial anterior).

3. Con el DataSource abierto, clic derecho y elegir ADD -> TABLEADAPTER
4. Utilizando la conexión creada en el paso 1, presionamos NEXT y elegimos la opción USE SQL STATEMENTS -> NEXT

5. En la siguiente ventana podemos escribir directamente la consulta SQL o hacer uso del Query Builder, en este ejemplo haremos uso de lo segundo. Con el Query Builder abierto formamos la consulta SQL y para indicar que se hará uso de un parámetro de entrada debemos escribir en la condición WHERE la sentencia @parametro donde @ indica a VS que es un parámetro de entrada, para confirmar si la consulta esta bien hecha, puedes probar haciendo clic en "Execute Query", después OK para terminar
6. volvemos a la ventana anterior donde ya estará escrita nuestra consulta SQL y presionamos NEXT.
En la ventana "Choose Methods to Generate", habilita la primera opción "Filla Data Table" y dale un nombre, por ejemplo "Obtener_Animal", entonces NEXT y FINISH

7. En nuestro DataSource se creara un nuevo TableAdapter como en la imagen siguiente:
8. Selecciona la pestaña del Form1, entonces en la ventana de DataSource, en el DataSet elige la opción DataGridView y entonces arrastra hacia el formulario
9. Se añade entonces al formulario los controles necesarios para manejar la consulta, como hacemos uso de un parámetro de entrada, se añade también controles para su utilización.

10. Ejecuta y ya podrás realizar una consulta a la base de datos :-D
enjoy!!!

continue reading

14/6/12

Lectura y escritura de imagenes JPG en PostgreSQL

JAN29

En este tutorial veremos una forma para registrar archivos JPG en una base de datos PostgreSQL y recuperarlos para utilizarlos en controles Swing. Como vimos en un tutorial anterior a este donde utilizamos una base de datos MySQL, el procedimiento es prácticamente el mismo, claro con pequeñas diferencias.

Cuando se desea almacenar fisicamente el contenido de una imagen en una base de datos, este debe ser convertido a una cadena de bytes, para esto el campo donde se guardara la imagen debe ser del tipo BOOL en MySQL y para Postgres tenemos el tipo BYTEA, de esta manera podemos almacenar el contenido de un archivo JPG en la base de datos, ahora para recuperar el contenido de esta imagen y utilizarlo en nuestra aplicación, debemos procesar la cadena de bytes y convertirlo nuevamente en una imagen con la cual podamos trabajar.

Ver tutorial

continue reading

26/3/12

Proyecto Prestamos con Tojorí

JAN29


Proyecto java de de base de datos "Prestamos" con MySQL programado en Netbeans 6.9 utilizando la libreria "Tojorí 0.2.8"

El proyecto consta de las siguientes interfaz
Para la creación de este proyecto se hizo uso de las siguientes librerias:


  • MySQL Driver JDBC - "mysql-connector-java" Libreria necesaria para la conexion a la base de datos
  • JCDesktopPane - Contenedor utilizado para crea interfaz multidocumento con imagen de fondo
  • J2Button - JButton con imagenes y multilínea
  • Tojori-0.2.8 - Libreria para creación de base de datos


Para que el proyecto pueda ser ejecutado se deben agregar esas librerias a Netbeans.

Descargate el proyecto "DBPrestamos" completo junto a sus instrucciones de instalación

continue reading

15/2/11

Relaciones entre Objetos Semánticos

JAN29

Las relaciones entre Objetos Semánticos, se establece a través de referencias cruzadas (relaciones binarias, ternarias y unarias o reflexivas), atributos de grupo, objetos de asociación, objetos padre-subtipo (herencia) y arquetipo-versión (dependencia).

Por ejemplo las siguientes relaciones:

Relación Binaria:

Relación Ternaria:

Relación Unaria (Reflexiva o Recursiva)

Cuando se trata de relaciones muchos a muchos (binaria, ternaria, unaria) con atributos de relación, se debe crear un nuevo objeto de asociación que contenga los atributos de la relación.
Cuando la relación es uno a muchos con atributos de relación, dicho atributo pasa al objeto con multiplicidad a muchos.

continue reading

12/2/11

Tipos de Objetos Semanticos

JAN29

Son siete tipos de objetos semanticos:
  1. Objeto simple
  2. Objeto Compuesto
  3. Objeto Combinado
  4. Objeto Hibrido
  5. Objeto de Asosiación
  6. Objeto Padre-Subtipo
  7. Objeto Arquetipo-Version.

Objeto Simple. Solo tiene atributos de valor simple y que no son de objetos.

Objeto Compuesto. Tiene uno o más atributos de valor multiple (de grupo).

Objeto Combinado.Tiene al menos un atributo de objeto semantico.

Objeto Hibrido. Tiene al menos un atributo de grupo y de objeto semantico.

Objeto de Asociación. Relaciona dos o más objetos y contiene datos referentes a tal relación (atributos de relación). Es equivalente a la Agregación del MER

Modelo lógico de datos

EMPRESA ( NIT, NombreEmpresa, Direccion, Telefono, e-mail )
FUNCIONARIO ( Item, NombreFuncionario, FechaNacimiento, Sexo, Direccion )
CONTRARO ( NIT, item )

Objeto Padre-Subtipo. Permiten la representación de la Herencia. Un objeto Subtipo hereda las caracteristicas (Atributos) del objeto padre. Es equivalente a la Generalización-Especializacion del MER.

Modelo lógico global de datos:

FIGURA GEOMETRICA ( CodigoFigura, Area, Perimetro, Color )
CUADRADO ( CodigoFigura, Lado )
CIRCULO ( CodigoFigura, Radio )
TRIANGULO (CodigoFigura, Base Altura)

Objetos Arquetipo-Versión. Un objeto arquetipo, produce otros objetos que representan versiones, etapas o ediciones del mismo.

Modelo logico de datos:
LIBRO ( Codigo, Titulo, Autor, Editorial )
EDICION ( Codigo, NumEdicion, Fecha, NumPaginas)

continue reading

28/1/11

Conexion base de datos Access y Java

JAN29


Para poder acceder a una base de datos de Acces 2000-2010 de Microsoft, podemos utilzar dos formas, una de ellas es utilizando un Origen de Datos ODBC para utiliarlo como puente entra Access y Java, ó,una forma mas directa, es enlazar la base de datos Access con Java utilizando la API JDBC de java y especificando el driver, la base de datos y el password (si es que tuviera) para realizar una conexion como se hizo con MySQL y Java. (Conexion a Base de datos)


Nuestra clase java para poder realizar una conexion, es la iguiente:

Clase: Access_connection.java
codigo fuente
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class Access_connection {
   //contraseña a la base de datos si es que tuviera, si no se deja vacio
   static String password = "";
   //nombre de la base de datos Acces con extension *.mdb o *.accdb
   static String dbName = "TU_BASE_DE_DATOS.mdb";
   //direccion de la base de datos
   static String bd = System.getProperty("user.dir") + "\\" + dbName + ";PWD=" + password;
   //driver para base de datos Access 2000, 2003, 2007, 2010
   static String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + bd;
   Connection conn = null;
   
   public Access_connection() {
      try{
         //obtenemos el driver para Access 
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         //obtenemos la conexión         
         conn = DriverManager.getConnection(url);
         //si la conexion tuvo exito
         if (conn!=null){
            System.out.println("Conexión a base de datos "+bd+". listo");
         }
      }catch(SQLException e){
         System.out.println(e);
      }catch(ClassNotFoundException e){
         System.out.println(e);
      }
   }
   
   /**Permite retornar la conexión*/
   public Connection getConnection(){
      return conn;
   }

   //como dice su nombre, termina la conexion a la base de datos
   public void desconectar(){
        try {
            conn.close();
            //conn = null;
            System.out.println("La conexion a la  base de datos " + bd + " a terminado");
        } catch (SQLException ex) {
            Logger.getLogger(Access_connection.class.getName()).log(Level.SEVERE, null, ex);
        }
       
   }
}

La direccion a la base de datos  se la realiza utilizando el comando "System.getProperty("user.dir")", el cual nos retorna la direccion de nuestro proyecto (*.JAR), si se desea especificar otra dirección, por ejemplo: "E:/mi base de datos/db.mdb", solamente se debe eliminar esa instruccion.

La forma de implementar esta clase, es similar a la clase conexion MySQL Conexion a Base de datos. osea:


public class Main {

    public static void main(String[] args) {
      //se realiza la conexion   
        Access_connection access = new Access_connection();
 //se cierra la conexion
        access.desconectar();
    }
    
}

Access cuenta con dos extensiones para base de datos, para versiones antiguas 2000-2003 utiliza la extension  *.mdb y para las versiones recientes de access 2007-2010, utiliza *.accdb, esta clase, Access_connection.java, realiza la conexion para ambas versiones.

fin?

continue reading

13/3/10

Base de Datos PRESTAMOS (proyecto completo)

JAN29


Ahora aqui dejo para su analisis un mini proyecto sobre una base de datos "PRESTAMOS" que consiste en llevar un control de los equipos prestados en una empresa constructora.

El modelo de datos Semantico es el siguiente:
y su equivalente en MER (Modelo Entidad Relacion)

La aplicacion para su conexion a la base de datos MYSQL, hace uso de la clase "conectate.java" y de la libreria  mysql-connector-java-5.0.7-bin, ademas para el control de la interfaz con la base de datos, se crea la clase "sqlclass.java" que consiste en varios metodos para INSERTAR, ELIMINAR, ACTUALIZAR registros de la base de datos.

Esta clase es utilizada por la interfaz para manipular los registros de  cada una de las tablas, como se ve en la imagen de arriba para la tabla Herramientas, donde se insertan los datos obtenidos de la base de datos en un objeto JTable, asi mismo esta clase tiene los metodos InsertarRegistro, DeleteRegistro, UpdateRegistro, que se implementan en la interfaz mediante una llamada:

String datos[] = {CodHer,descripcion,tipo,precio};
herramienta.InsertarRegistro(datos, "insert into herramienta values(?,?,?,?)");

donde el parametro datos es un objeto de tipa array que contiene la informacion a insertar en la base de datos y el parametro sql, que contiene la instruccion en sql para realizar la accion.
Igualmente para el metodo UpdateRegistro, se pasan los parametros datos(array de datos) y la instruccion sql

herramienta.UpdateRegistro(datos, "update Herramienta set descripcion=?, tipo=?, precio=? where CodHer=?");

finalmente la sintaxis para el uso del metodo eliminarRegistro, es:


herramienta.DeleteRegistro("herramienta", "CodHer", codigo);

donde se pasa como parametros, el nombre de la tabla en la cual se eliminaran registros, el nombre de la columna que contiene la llave primaria y el codigo (ID) de la fila del registro a eliminar

La clase "sqlclass.java" en su totalidad:

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class sqlclass {
  conectate con;
  
  public sqlclass (){
    con = new conectate();
  } 
  
  /* INSERTRA UN NUEVO REGISTRO EN LA BASE DE DATOS
   * PARAMETROS(Un array de String con los datos a insertar,la instruccion sql)*/
  public void InsertarRegistro(String datos[], String sql){
       try {          
            PreparedStatement pstm = con.getConnection().prepareStatement(sql);
            for(int i=0; i<=datos.length-1;i++){
             
            }  
            pstm.execute();
            pstm.close();
         }catch(SQLException e){
         System.out.println(e);
      }
   }
     
  /* BORRA UN REGISTRO DE LA BASE DE DATOS
   * parametros (Nombre de la tabla, nombre columna, Codigo unico)*/
  public void DeleteRegistro(String tabla, String col, String id){  
            try {                
                PreparedStatement pstm = con.getConnection().prepareStatement("delete from " + tabla + " where " + col + " = ?");
                pstm.setString(1, id);
                pstm.execute();
                pstm.close();
            }catch(SQLException e){
            System.out.println(e);
            }            
   }
  
  /* ACTUALIZA UNA TABLA DE LA BASE DE DATOS
   * parametros (Un Array de string con los datos a actualizar, la instruccion sql )*/
    public void UpdateRegistro(String datos[], String sql){
       try {
            PreparedStatement pstm = con.getConnection().prepareStatement(sql);
            for(int i=0; i<=datos.length-1;i++){
                pstm.setString(i+1, datos[i]);
            }       
            pstm.execute();
            pstm.close();   
         }catch(SQLException e){
         System.out.println(e);
      }
   }
    
   /*  METODO PARA OBTENER TODOS LOS DATOS DE UNA TABLA
    *  parametros (Un array con los nombres de las columnas, el nombre de la tabla, la instruccion sql) */
 public Object [][] GetTabla(String colName[], String tabla, String sql){
      int registros = 0;
      //obtenemos la cantidad de registros existentes en la tabla
      try{         
         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT count(1) as total FROM " + tabla);
         ResultSet res = pstm.executeQuery();
         res.next();
         registros = res.getInt("total");
         res.close();
      }catch(SQLException e){
         System.out.println(e);
      }
      
    Object[][] data = new String[registros][colName.length];  
    String col[] = new String[colName.length];
    
    //realizamos la consulta sql y llenamos los datos en "Object"
      try{         
         PreparedStatement pstm = con.getConnection().prepareStatement(sql);
         ResultSet res = pstm.executeQuery();
         int i = 0;
         while(res.next()){            
            for(int j=0; j<=colName.length-1;j++){
                col[j] = res.getString(colName[j]);
                data[i][j] = col[j];
            }          
            i++;
         }
         res.close();
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
 }  
 
/* METODO PARA TODOS LOS DATOS DE UNA COLUMNA
 * parametros (Nombre de la tabla, nombre columna, instruccion sql ) */
public Object [] GetColumna(String tabla, String colName, String sql){
      int registros = 0;
      //obtenemos la cantidad de registros existentes en la tabla
      try{         
         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT count(1) as total FROM " + tabla);
         ResultSet res = pstm.executeQuery();
         res.next();
         registros = res.getInt("total");
         res.close();
      }catch(SQLException e){
         System.out.println(e);
      }
      
    Object[] data = new String[registros];    
      try{         
         PreparedStatement pstm = con.getConnection().prepareStatement(sql);
         ResultSet res = pstm.executeQuery();
         int i = 0;
         while(res.next()){            
            data[i] = res.getString(colName);
            i++;
         }
         res.close();
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
 }  

/* METODO PARA OBTENER UN DATO DE UNA TABLA
    PARAMETROS (nombre columna, instruccion sql) */
public String GetData(String colName, String sql){
    String data = new String();    
      try{         
         PreparedStatement pstm = con.getConnection().prepareStatement(sql);
         ResultSet res = pstm.executeQuery();         
         while(res.next()){            
            data = res.getString(colName);
         }
         res.close();
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
 }  

} //fin clase

la clase contiene ademas el metodo getTabla(), que obtiene todos los datos de una tabla de la base de datos y los coloca en un objeto Object[][] para utilizarlo mas facilmente en la interfaz, por ejemplo:


private void updateTabla(){
   String[] columNames = {"Codigo","Descripcion","Tipo","Precio"};
   String colName[] = {"CodHer","descripcion","tipo","precio"};
   //nombre de columnas, tabla, instruccion sql
   dtHer = herramienta.GetTabla(colName, "herramienta", "select * from herramienta order by CodHer");
   // se colocan los datos en la tabla
   DefaultTableModel datos = new DefaultTableModel(dtHer,columNames);
   tabla.setModel(datos);
}
Se crea un array colName[] y se lo llena con los nombres de las columnas de la BD, y se lo pasa como parametro al metodo GetTabla, al que ademas se especifica, el "nombre de la Tabla" y la instruccion SQL para realizar la obtencion de datos.


El proyecto tambien hace uso del tipo de formularios MDI (multiple document interface) y de la libreria Substance para aplicar un skin a la interfaz


Vista general del proyecto
[Enlace de descarga actualizado 27-03-2011]
El proyecto para descargar
Click para descargar

continue reading

4/2/10

Ejercicio Resuelto: Diagrama E-R "Universidad"

JAN29

Se desea simular el comportamiento de una universidad cualquiera, atendiendo a la siguiente especificación.

Cada alumno se matricula de una serie de asignaturas en las que obtendrá una calificación. Un alumno puede matricularse de la misma asignatura varias veces y de una asignatura pueden matricularse muchos alumnos.

Cada asignatura es impartida por un único profesor y un profesor puede dar clase de muchas asignaturas. Cada profesor pertenece a un departamento.

De los alumnos almacenaremos la cedula de identidad (CI), nombre, primer apellido, segundo apellido, calle, ciudad, provincia, teléfono, fecha de nacimiento y estado civil. El estado civil de un alumno puede ser el siguiente: S:Soltero C:Casado V:Viudo P:Separado D:Divorciado.

De las asignaturas se guarda el código, nombre completo, número de créditos y un campo de observaciones.

De cada profesor tenemos información del CI, titulación que posee, nombre y primer apellido.

De los departamentos se tiene como datos su código y nombre.

ALUMNO(CI, Nombre, ApPaterno, ApMaterno, Fono, Calle, Ciudad, Provincia, FNac, EC)
ASIGNATURA(Codigo, Nombre, Creditos, CI_Prof, Observaciones)
MATRICULA(CI, Cod_Asig, Fecha, Nota)
DEPARTAMENTO(Codigo, Nombre)
PROFESOR(CI, Nombre, ApPaterno, Titulo, Cod_Dep)

continue reading

1/2/10

Ocultar imagenes con ADS (Alternate Data Stream)

JAN29


Para quienes no les guste mucho los comandos DOS y esten mas acostumbrados a la interfaz grafica de windows, escribi un sencillo programa en basic el cual realiza los pasos necesarios para crear un archivo con ADS desde dos imagenes JPG, GIF o BMP. como se vio en post anteriores sobre ADS

EL codigo es sencillo, simplemente se reduce a ejecutar mediante Basic la consola de windows y presentar al usuario una interfaz sencilla y facil de utilizar.

la funcion principal se llama Ejecuta_DOS y hace exactamente eso, ejecuta la consola de windows, ayudandose para ello del SHELL de windows. Recibe como parametros (t1) la direccion del archivo a ocultar, (t2) la direccion del archivo que nos servira para ocultar y (p) la palabra clave para poder recuperar la imagen.

¿como se utliza?
El menu consta de dos opciones, "Ocultar imagen" y "Ver imagen"
la primera opcion permite seleccionar dos imagenes, introducir una palabra clave y cuando se presione el boton "Ocultar con ADS" se procede a invocar la consola y ocultar el archivo.

Para recuperar un archivo se escoge la segunda opcion "Ver imagen", se escribe la palabra clave con que se guardo la primera ves y se presiona "ver imagen".

Para bajarte el archivo clic aqui
tamaño: 122 kb
Esta hecho en VB, no utiliza ninguna OCX ajena a windows, asi que en el RAR, solo se encuentra el  ejecutable, funciona bajo windows, 98, 2000 y XP. cualquier problema, favor informar.

continue reading

10/12/09

Modelos semánticos

JAN29

Los sistemas de base de datos relacionales solo expresan en realidad una comprension muy limitada del significado la informacion contendida en la base de datos, por lo general  entienden ciertos valores sencillos de datos y ciertas interrelaciones de muchos a uno entre dichos valores, toda informacion mas alla de eso se deja al usuario.

Los modelos semanticos en cambio permiten captar mejor el significado (semantica) de los datos contenidos en la base de datos.

Objetos semantico. Un objeto semántico es una representación de algunas cosas identificables en el ambiente de trabajo de los usuarios. De manera formal, un objeto semántico es un conjunto de atributos que describen con eficacia una identidad bien determinada. Los objetos semánticos se agrupan en clases. Una clase de objeto tiene un nombre que la hace diferente a otras y que corresponde a los nombres de las cosas que representa. Los nombres de clases se escriben en mayúsculas. Un objeto semántico particular es una ocurrencia de tal clase. Por ejemplo: "William Shakespeare", es una ocurrencia de la clase ESCRITOR, y "CUARTO" es una ocurrencia de la clase EDIFICIO.

Descripcion general de un objeto semántico.

Modelo lógico de datos:

Equivalencias MOR - MER


continue reading

27/10/09

Consultas a Base de Datos con php

JAN29

Partiremos primero con una pequeña base de datos:

mi_tabla(id, nombre, sexo, pais, mail)

Para realizar una consulta a una Base de Datos desde la web al servidor usando PHP se utiliza la funcion interna mysql_query(QUERY, ENLACE), esta funcion envia una consulta a MySql, tiene como parametros a QUERY que es la consulta sql en si, representada mediante una cadena STRING, ENLACE, que es un identificador de enlace a la conexion establecida con el servidor, este parametro es opcional, si se lo omite, se estable una conexion al ultimo enlace abierto. Si no se ha abierto enlace, la función intenta establecer uno tal y como si se hubiera llamado a mysql_connect() sin argumentos, y lo usará. El resultado de la consulta es puesto en la memoria intermedia (buffer).

Valores retornados
 
Para las sentencias SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() regresa un resource en caso exitoso, y FALSE en error.

Para otro tipo de sentencia SQL, UPDATE, DELETE, DROP, etc, mysql_query() regresa TRUE en caso exitoso y FALSE en error.

El resultado obtenido debe ser pasado a mysql_fetch_array(), y otras funciones para el manejo de las tablas del resultado, para accesar los datos regresados.

Use mysql_num_rows() para encontrar cuantas filas fueron regresadas para una sentencia SELECT o mysql_affected_rows() para encontrar cuantas filas fueron afectadas por una sentencia DELETE, INSERT, REPLACE, o UPDATE.

mysql_query() también fallará y regresará FALSE si el usuario no tiene permiso de accesar la o las tablas referenciadas por la consulta.

Ejemplo:


Fuente: http://www.opencontent.org/openpub/.

continue reading

Conexion a Base de Datos

JAN29

Para conectar una web dinamica con una base de datos, en este caso mysql, utilizando PHP, la forma mas sencilla es mediante la creacion de una funciona en la cual especificaremos nuestro SERVIDOR, USUARIO Y PASSWORD, al igual que nuestra BASE DE DATOS.

Ahora explicaremos en que consiste esta funcion:

La linea de codigo 4 consiste en hacer uso de la funcion interna de PHP, mysql_connect, a la cual le pasamos como parametros, el nombre del SERVIDOR al cual nos conectaremos, el nombre de USUARIO y el respectivo PASSWORD. Si se pudo o no se pudo abrir una conexion, esta la devuelve en la variable $link, el cual es un identificador positivo si tuvo exito o falso si fracaso en el intento.

mysql_connect(): establece una conexión a un servidor MySQL. Todos los argumentos son opcionales, y si no hay, se asumen los valores por defecto ('localhost', usuario propietario del proceso del servidor, password vacío).

El hostname puede incluir tambien un número de puerto . ej. "hostname:puerto" o un camino al socket ej. ":/camino/al/socket" para localhost.

Nota: Siempre que específicque "localhost" o "localhost:port" como servidor, la libreria cliente de MySQL evitará esto y tratará de conectarse a socket local (nombrado pipe en Windows). Si quiere usar TCP/IP, use "127.0.0.1" en vez de "localhost". Si las librerias cliente de MySQL intentan conectarse a un socket local ñocado, debe fijar la trayectoria como mysql.default_host en el archivo de configuración PHP y dejar el campo del servidor en blanco.

Soporte para ":puerto" fue añadido en PHP 3.0B4.

Soporte para ":/camino/al/socket" fue añadido en PHP 3.0.10.

Puede suprimir el mensaje de error en caso de falla anteponiendo una @ al nombre de la función.

Si se hace una segunda llamada a mysql_connect() con los mismos argumentos, no se abrirá nuevo enlace, en lugar de eso, se regresa el identificador de enlace ya abierto. El parámetro new_link modifica este comportamiento y hace que mysql_connect() siempre abrir un nuevo enlace, aún si mysql_connect() había sido llamado antes con los mismos parámetros.

Otra forma de conexion, en la cual, ademas podemos observar el tipo de error que se produce, es esta.


Tenga en cuenta que el enlace con el servidor se cerrara en cuanto se termine con el script php, a menos que se lo cierre mediante mysql_close($link). Laughing

continue reading

Post recomendado