Archive for the ‘Pascal’ Category

Como conectarse a MySQL usando Free Pascal

Tuesday, April 19th, 2005
Seroquel Without Prescription Prednisone No Prescription VPXL For Sale Stromectol Generic Buy Hoodia Online Elavil Without Prescription Synthroid No Prescription Prozac For Sale Toprol XL Generic Buy Cialis Soft Tabs Online

Free Pascal es un excelente compilador Pascal compatible con Turbo Pascal y el más reciente Borland Delphi que se distribuye gratuitamente bajo licencia GPL.

Pascal es un excelente lenguaje que gracias a multitud de colaboradores que desarrollan "unidades", resulta valido para realizar infinidad de tareas, incluyendo la administración de bases de datos MySQL.

La versión actual de Free Pascal es distribuido con una gran variedad de Unidades, entre ellas "mysql", la cual nos permitirá conectarnos y administrar MySQL desde nuestros propios programas.

Antes de empezar a programar necesitas tener instalados Free Pascal y MySQL en tu sistema. Si trabajas en un entorno Windows, la instalación automática de Free Pascal configurará todo correctamente, simplemente tendrás que recordar que debes colocar la librería dinámica libmysql.dll en el mismo directorio que tus programas compilados. libmysql.dll viene con la versión Windows de MySQL y debería estar en el directorio "c:/mysql/lib" o equivalente. Si trabajas con Linux o Unix, tendrás que especificar la localización de las librerías de MySQL en el archivo mysql.pp previamente a compilar Free Pascal.

Suponiendo que lo tengas todo listo para empezar a programar es recomendable que leas la sección que explica el funcionamiento de la API C en el manual de MySQL. Al fin y al cabo, la unidad "mysql" de Pascal ha sido portada de la librería de C, por lo que su funcionamiento y las funciones disponibles son prácticamente idénticas.

A continuación un ejemplo de un programa que se conecta a la base de datos, imprime información de la conexión, selecciona una base de datos que hemos llamado "db_prueba" y muestra el número de registros existentes en la tabla "tb_prueba":

PROGRAM test;
USES mysql;
CONST
DataBase : Pchar = 'db_prueba';
Query : Pchar = 'select count(*) from tb_prueba';

VAR
sock : PMYSQL;
qmysql : TMYSQL;
recbuf : PMYSQL_RES;
rowbuf : TMYSQL_ROW;

BEGIN
{ ####- CONECTAR CON MYSQL ####- }
Write('Conectando con MySQL...');
sock := mysql_connect(PMysql(@qmysql),nil,nil,nil);
if sock=Nil then
begin
Writeln(stderr,'No es posible conectar con MySQL.');
Writeln(stderr,mysql_error(@qmysql));
halt(1);
end;
writeln('HECHO');

{ ####- MOSTRAR DATOS DE LA CONEXIÓN ####- }
writeln('Datos de la conexión:');
{$ifdef linux}
writeln ('Mysql_port : ',mysql_port);
writeln ('Mysql_unix_port : ',mysql_unix_port);
{$endif}
writeln ('Host info : ',mysql_get_host_info(sock));
writeln ('Server info : ',mysql_stat(sock));
writeln ('Client info : ',mysql_get_client_info);

{ ####- SELECCIONAR BASE DE DATOS ####- }
writeln('Seleccionando base de datos ',DataBase,'...');

if mysql_select_db(sock,DataBase) < 0 then
begin
writeln (stderr,'No es posible selecciona base de datos',Database);
writeln (stderr,mysql_error(sock));
halt (1);
end;

{ ####- EJECUTAR UN QUERY EN UNA TABLA ####- }
writeln('Ejecutando query: ',Query,'...');
if (mysql_query(sock,Query) < 0) then
begin
writeln(stderr,'Ejecución del query erronea.');
writeln(stderr,mysql_error(sock));
halt(1);
end;

{ ####- MOSTRAR NÚMERO DE REGISTROS ####- }
recbuf := mysql_store_result(sock);
if RecBuf=Nil then
begin
Writeln ('El query no ha devuelto nada.');
mysql_close(sock);
halt (1);
end;
rowbuf := mysql_fetch_row(recbuf);
writeln('La tabla contiene ',rowbuf[0],' registros.');
END.

Ahora que ya sabes todo lo que necesitas para poder crear un programa cliente que sirva para administrar una base de datos MySQL, podrías crear el "trastero" o "back office" de tu web con Pascal. Esto te permitiría administrar tu web cómodamente desde el escritorio de tu web… Aunque en realidad no parece que este sistema resulte más cómodo que una interfaz web… ;)

Introducción a la programación CGI en Pascal

Tuesday, April 19th, 2005