C++ e MySQL++

5 settembre 2009

Per poter utilizzare la libreria MySQL++ su ubuntu è necessario installare i seguenti pacchetti:

– libmysql++2c2a
– libmysql++-dev

per la compilazione bisogna eseguire la riga:

g++ file_inp.cpp -o file_out -I/usr/include/mysql++/ -I/usr/include/mysql -L/usr/local/lib -lmysqlpp -lmysqlclient -lnsl -lz -lm

L’ho provato sul seguente codice:


#include <mysql++.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
const char *db = "nome_database", *server = "server_db", *user = "nome_utente", *pass = "password";
// Connect to the sample database.
mysqlpp::Connection conn(false);

conn = conn.connect(db, server, user, pass);

// Retrieve a subset of the sample stock table set up by resetdb
mysqlpp::Query query = conn.query();
query << “select item from cliente”;
mysqlpp::Result res = query.store();
// Display the result set
cout << “We have:” << endl;
if (res) {
mysqlpp::Row row;
mysqlpp::Row::size_type i;
for (i = 0; row = res.at(i); ++i) {
cout << ‘\t’ << row.at(0) << endl;
}
}
else {
cerr << “Failed to get item list: ” << query.error() << endl;
return 1;
}
return 0;
}

In caso di problemi rimando a

http://tangentsoft.net/mysql++/
e
http://tangentsoft.net/mysql++/doc/

http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html

Annunci

C e MySQL

5 settembre 2009

E’ necessario installare il seguente pacchetto libmysqlclient15-dev:

sudo apt-get install libmysqlclient15-dev

e seguire i passi qui descritti:

http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html

Per la compilazione usare la riga: gcc -o file_out $(mysql_config --cflags) file_in.c $(mysql_config --libs)


C++ e MySQL

5 settembre 2009


// connette a mysql e stampa la prima colonna della tabella selezionata;
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#include <iostream>

using namespace std;

const char* host = “localhost”; // host di connessione
const char* database = “nome_database”; // database di connessione
const char* db_user = “nome_utente”; // nome utente per la connessione
const char* db_pass = “password”; // password non cifrata
const char* query = “select * from cliente”; //comando

int main()
{
MYSQL mysql;
MYSQL_RES* result;
MYSQL_ROW row; // restituisce NULL se non avviene con successo
if (! mysql_init (&mysql)) {
printf (“Errore nella allocazione di memoria.\n”);
exit (EXIT_FAILURE);
}
if (! mysql_real_connect (&mysql, host, db_user, db_pass, “”, 0, NULL, 0))
{
printf (“Errore nella connessione.\n”);
exit (EXIT_FAILURE);
}// restituisce zero se avviene con successo
if (mysql_select_db (&mysql, database))
{
printf (“Errore nella selezione del database.\n”);
exit (EXIT_FAILURE);
}
printf (“Connessione avvenuta.\n”); // esegue la query
if (mysql_query (&mysql, query))
{
printf(“Errore nella query.\n”);
goto error;
}
result = mysql_store_result (&mysql);
cout << “Codice cliente\t” << “Partita IVA\t” << “Ragione sociale\n”;
cout << “———————————————–\n”;
while(( row = mysql_fetch_row(result)) != NULL)
{
cout << row[0] << “\t” << row[1] << “\t” << row[2] << endl;
}
cout << endl;
error:// chiude le risorse
mysql_close (&mysql);
exit (EXIT_SUCCESS);
}

Per compilare si deve usare:

g++ -o file_out $(mysql_config --cflags) file_in.cpp $(mysql_config --libs)

Per utilizzare il MySQL++ non sono ancora riuscito a farlo funzionare, comunque lascio dei riferimenti:

http://forge.mysql.com/wiki/Connector_C%2B%2B
http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html
http://tangentsoft.net/mysql++/doc/html/refman/
http://tangentsoft.net/mysql++/doc/html/userman/
http://tangentsoft.net/mysql++/


Ruby e MySQL

5 settembre 2009

Per poter accedere a MySQL da Ruby è necessario installare il modulo mysql con il comando

sudo gem install mysql

(Se non funziona provate a installare libdbd-mysql-ruby e libmysql-ruby in base alla vostra versione di Ruby dal repository)

Per utilizzare la “gemma” si usa require "mysql"

Esempio completo:


#!/usr/bin/ruby -w
# simple.rb - simple MySQL script using Ruby MySQL module

require "mysql"

begin
# connect to the MySQL server
dbh = Mysql.real_connect("localhost", "nome_utente", "password", "nome_database")
# get server version string and display it
puts "Server version: " + dbh.get_server_info
rescue Mysql::Error => e
puts "Error code: #{e.errno}"
puts "Error message: #{e.error}"
puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
# disconnect from server
dbh.close if dbh
end

Riferimenti:

http://www.kitebird.com/articles/ruby-mysql.html
http://www.ruby-lang.org/en/documentation/
http://www.ruby-doc.org/


Python e MySQL

5 settembre 2009

Per poter accedere a MySQL da Python occorre installar l’API python-mysqldb

poi aggiungere la riga import MySQLdb

Esempio completo:


#!/usr/bin/env python
# periodi.py

import sys
import MySQLdb

conn = MySQLdb.connect(host="localhost", user="nome_utente", passwd="password", db="nome_database")

cursore = conn.cursor()

cursore.execute('SELECT * FROM cliente')

tupla = cursore.fetchall()

print
print 'codice cliente\tpartita IVA\tragione sociale'
print '-------------------------------------------------'
for record in tupla:
print '%d\t\t%s\t%s' % (record[0], record[1], record[2])

print 'end.'
print

Riferimenti:

http://www.kitebird.com/articles/pydbapi.html
http://mysql-python.sourceforge.net/MySQLdb.html
http://www.blackbirdblog.it/programmazione/python/python-e-mysql
http://docs.python.org/contents.html


JDBC, come accedere ad un database da Java

5 settembre 2009

Premetto che io dispongo del JDK 1.6.0_14 della Sun installato in /usr/lib/jvm/java-6-sun-1.6.0.14 sulla mia Ubuntu e del database MySQL 5.0.51a e che farò riferimento a questi strumenti per la mia guida.

Per poter accedere al database da Java è necessario scaricare il driver di MySQL da qui.

Estrarre il file tar.gz con il comando tar zxfv mysql-connector-java-5.1.8.tar.gz (cambiate i numeri 5.1.8 in base alla versione del driver che avete scaricato).

Dopo di ciò bisogna copiare il driver nella directory /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/ext

sudo cp mysql-connector-java-5.1.8-bin.jar /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/ext

e modificare la variabile di sistema CLASSPATH:

export CLASSPATH=$CLASSPATH:mysql-connector-java-5.1.8-bin.jar

Anche se sinceramente ho visto che a me funziona anche settare suddetta variabile.

Ora bisogna passare al codice:

Aggiungiamo il package import java.sql.*;

poi le variabili

Connection con = null;
Statement st = null;
ResultSet rs = null;

Aggiungiamo ora il driver con la riga

Class.forName("com.mysql.jdbc.Driver");
o esclusivamente la riga
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

A questo punto abbiamo il driver, aggiungiamo la connessione:

con = DriverManager.getConnection("jdbc:mysql://localhost/nome_database", "nome_utente", "password");

Se il database non ha password si può utilizzare la funzione:

con = DriverManager.getConnection("jdbc:mysql://localhost/nome_database");

Per eseguire le query abbiamo bisogno di uno statement, quindi:

st = con.createStatement();

Ora per eseguire effettivamente la query si utilizza la riga

rs = st.executeQuery("select * from cliente");

e per vedere i risultati:

while (rs.next())
{
System.out.println("Codice cliente: " + rs.getString(1));
System.out.println("Partita IVA: " + rs.getString(2));
System.out.println("Ragione sociale: " + rs.getString(3));
System.out.println(" ");
}

Quando abbiamo finito con il database chiudiamo la connessione:

con.close();

Un esempio completo lo si trova di seguito:


mport java.sql.*;

public class DBConn
{

public static void main(String args[])
{
new DBConn();
}

public DBConn()
{
Connection con = null;
Statement st = null;
ResultSet rs = null;

try
{
//Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
}/*catch(ClassNotFoundException e)
{
System.out.println("Errore: " + e.getException().getMessage());
System.exit(1);
}*/catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
con = DriverManager.getConnection("jdbc:mysql://localhost/cremonesi", "michele", "hellasverona");
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
st = con.createStatement();
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
rs = st.executeQuery("select * from cliente");
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

System.out.println();
try
{
while (rs.next())
{
System.out.println("Codice cliente: " + rs.getString(1));
System.out.println("Partita IVA: " + rs.getString(2));
System.out.println("Ragione sociale: " + rs.getString(3));
System.out.println(" ");
}
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

try
{
con.close();
}catch(SQLException e)
{
System.out.println("Errore : " + e.getSQLState());
System.exit(1);
}

}
}

Risorse:

http://dev.mysql.com/usingmysql/java/
http://www.soft-land.org/articoli/jdbc


SkyLUG un Linux user group dedicato all’astronomia

25 agosto 2009

SkyLUG

SkyLUG

Questo gruppo nasce per avvicinare il mondo Linux all’astronomia e di aiutare i meno esperti all’installazione e alla
configurazione di questo famoso sistema operatvio free.

Si possono postare anche domande che riguardano solo il software e non l’astronomia. Questo gruppo è aperto a chiunque sia appassionato di open source e di astronomia.

Da visitare:

http://tech.groups.yahoo.com/group/skylug/