Next: Ejemplo de DBI/DBD
Up: Perl
Previous: Objetos grandes
  Índice General
  Índice de Materias
DBI son las siglas en inglés de Database independent interface for Perl. El concepto de funcionamiento es que mientras DBI
es una interfase independiente del soporte de un manejador de base de
datos en particular, los DBD Database Drivers le dan la funcionalidad para cada manejador o subsistema
--dado que incluye soporte para archivos planos y hashes en
memoria o en disco--.
Enumeramos a continuación los métodos empleados por este sistema:
- $dbh = DBI->connect("dbi:Pg:dbname=$dbname
- ;host=
$host;port= $port;options= $options; tty=
$tty", " $username", "$password"); Se conecta a
la base indicada por $dbname en la computadora $host,
por el puerto $port, con las opciones $options, con las
características de terminal $tty, como el usuario $username con contraseña $password. Todos los parámetros
señalados son opcionales y reemplazados como se indican en la
tabla 14.1.
Cabe recordar que si se indica el nombre de una computadora, el
servidor en esa máquina debe de previamente haber sido inicializado
con la opción -i.
Entre las opciones posibles, está la de indicarle al servidor cuántos
buffers (de ocho kilobytes cada uno) se desean en la copia del
servidor que nos estará atendiendo. Se corresponde con la opción -B descrita en la página 15.1.
- @driver_names = DBI->available_drivers;
- Regresa una lista
con los controladores que la instalación de DBI conoce.
- @data_sources = DBI->data_sources('Pg');
- Es una manera de
preguntar por cuáles bases de datos están disponibles en el
manejador. Se necesita acceso a la tabla template1 sin necesidad
de autentificarse como usuario.
- DBI->trace($trace_level, $trace_file)
- Recolecta
información al momento de ejecución en el archivo descrito por $trace_file, con el nivel de granularidad $trace_level.
- $rv = $h->err;
- Regresa el resultado de invocar el
método status, en caso de invocar una conexión, o resultStatus en los demás casos.
- $str = $h->errstr;
- Regresa el resultado de invocar al
método errorMessage.
- $h->trace_msg($message_text);
- Envía el mensaje $message_text utilizando el método trace.
- $sth = $dbh->prepare($statement, 99#99%attr);
- Prepara la consulta para ser enviada al servidor. Éste método es
genérico en DBI/DBD y en realidad PostgreSQL no necesita preparar las
consultas.
- @row_ary = $dbh->selectrow_array($statement,
99#99%attr, @bind_values);
- Luego de preparar la consulta se
extrae la información con éste método dejando la información en el
arreglo @row_ary.
- $ary_ref = $dbh->selectall_arrayref($statement,
99#99%attr, @bind_values);
- Recibe una tupla.
- $rv = $dbh->do($statement, 99#99%attr,
@bind_values);
- Ejecuta la consulta dada.
- $rc = $dbh->commit;
- Realiza un commit.
- $rc = $dbh->rollback;
- Realiza un rollback.
- $rc = $dbh->disconnect;
- Desconecta del servidor y
termina la sesión.
- $rc = $dbh->ping;
- Verifica que la conexión esté viva.
- $sth = $dbh->table_info;
- Regresa todas las tablas y
vistas pertenecientes al usuario que realizó la conexión. No regresa
indices, secuencias ni tablas del sistema.
- @names = $dbh->tables;
- Idéntico al anterior.
- $sth = $dbh->DBD::Pg::db::attributes($table);
- Regresa
el oid, nombre, tipo y longitud de los atributos de la tabla
especificada.
- $type_info_all = $dbh->type_info_all;
- Regresa los
tipos de acuerdo al mapa especificado en la tabla 14.2
haciendo la conversión entre PostgreSQL y SQL92.
Tabla:
Correspondencia de tipos de datos entre PostgreSQL y los definidos
por el estándar SQL92
Nombre del tipo |
SQL92 |
bool |
BOOL |
text |
el mismo |
bpchar |
CHAR(n) |
varchar |
VARCHAR(n) |
int2 |
SMALLINT |
int4 |
INT |
int8 |
el mismo |
money |
el mismo |
float4 |
FLOAT(p) p100#1007101#101float4, p100#10016101#101float8 |
float8 |
REAL |
abstime |
el mismo |
reltime |
el mismo |
tinterval |
el mismo |
date |
el mismo |
time |
el mismo |
datetime |
el mismo |
timespan |
TINTERVAL |
timestamp |
TIMESTAMP |
|
- @type_info = $dbh->type_info($data_type);
- Regresa la
información del tipo especificado.
- $sql = $dbh->quote($value, $data_type);
- Convierte el
valor a una cadena segura con todos los carácteres mapeados de tal
manera que no haya carácteres inválidos.
- AutoCommit (boolean)
- Si se utiliza, todas las
transacciones terminarán con un commit automáticamente.
- pg_auto_escape (boolean)
- Si se utiliza, todas las
cadenas que contengan secuencias de escape serán automáticamente
convertidas.
- $rv = $sth->execute(@bind_values);
- Ejecuta la consulta.
- $rv = $sth->rows;
- Regresa el número de tuplas afectadas
por la última consulta.
- $blob = $sth->blob_read($id, $offset, $len);
- Lee un
objeto grande. Si el offset y la longitud son cero, regresa el
objeto grande completo.
- pg_size (array-ref, read-only)
- Regresa el tamaño en
bytes de cada columna.
- pg_type (hash-ref, read-only)
- Regresa una referencia a
un arreglo para cada columna.
- pg_oid_status (integer, read-only)
- Regresa el oid
de la última consulta.
- pg_cmd_status (integer, read-only)
- Regresa el tipo de
la última consulta (INSERT, DELETE, UPDATE, SELECT).
Subsecciones
Next: Ejemplo de DBI/DBD
Up: Perl
Previous: Objetos grandes
  Índice General
  Índice de Materias
Ismael Olea
2001-04-21