Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

DBI, and date type SQLite

by nando (Acolyte)
on Oct 09, 2011 at 19:52 UTC ( #930490=perlquestion: print w/ replies, xml ) Need Help??
nando has asked for the wisdom of the Perl Monks concerning the following question:

UPDATE 1

sql code to build sqlite db

PRAGMA foreign_keys = ON; PRAGMA encoding = "UTF-8"; create table NOMBRE ( ID_DNI integer primary key autoincrement not null, NOMBRE text not null, APELLIDOS text not null, TELEFONO text not null, COMENT text ); create table TIPO ( TIPO text not null unique ); create table ACTIVOS ( ID_ACTIVOS integer primary key autoincrement not null, TIPO text not null, ACTIVO text not null, COMENT text, FOREIGN KEY(TIPO) REFERENCES TIPO(TIPO) ON UPDATE CASCADE ); create table ADMINIST ( ID_ADMINIST integer primary key autoincrement not null, NOMBRE_ADMIN text not null ); create table RESERVA ( ID_RESERVA integer primary key autoincrement not null, FECHA_RESERVA text not null, --DATE PERIODICIDAD integer not null, INICIO_RESERVA text not null, --DATE FIN_RESERVA text not null, --DATE HORAI numeric not null, HORAF numeric not null, NOMBRE_RESERVA_ID integer not null, ENTIDAD_NOMBRE_RESERVA text not null, TIPO_RESERVA text not null, ACTIVOS_RESERVA_ID integer not null, ADMINIST_RESERVA_ID integer not null, ESTADO_RESERVA text not null, FOREIGN KEY(NOMBRE_RESERVA_ID) REFERENCES NOMBRE(ID_DNI) ON UPD +ATE CASCADE, FOREIGN KEY(ACTIVOS_RESERVA_ID) REFERENCES ACTIVOS(ID_ACTIVOS) +ON UPDATE CASCADE, FOREIGN KEY(ADMINIST_RESERVA_ID) REFERENCES ADMINIST(ID_ADMINIS +T) ON UPDATE CASCADE );

Populating table NOMBRE (.csv)

1,Adela,Abantos,111222333,null 2,Bernardo,Badillo,111222334,null 3,Carlos,Cano,111222335,null 4,David,Divo,111222336,null 5,Ernesto,Elizondo,111222337,null 6,Francisco,Fajardo,111222338,null 7,Gerardo,Gracia,111222339,null 8,Heriberto,Hinojosa,111222340,null 9,Ignacio,Iturbe,111222341,null 10,Juan,Jerónimo,111222342,null 11,Karl,Konrad,111222343,null 12,Luis,Limón,111222344,null 13,Lluis,Lluvia,111222345,null 14,Mateo,Marcial,111222346,null 15,Nadia,Nimega,111222347,null 16,Ñeko,Ñazo,111222348,null 17,Obdulia,Oviedo,111222349,null 18,Pablo,Paciencia,111222350,null 19,Quirico,Querétaro,111222351,null 20,Ramón,Rando,111222352,null 21,Santiago,Segura,111222353,null 22,Tito,Toro,111222354,null 23,Unai,Ubiergo,111222355,null 24,Vicente,Valor,111222356,null 25,Walter,Walon,111222357,null 26,Xavier,Xalón,111222358,null 27,Yaiza,Yan,111222359,null 28,Zapatero,Zapatos,111222360,null

Populating table TIPO (.csv)

ALIM EQUIPO 1 EQUIPO 2 EQUIPO 3 EQUIPO 4 FOTO HD 1 HD 2 HD 3 ILUM SALAS SONIDO VAR VÍDEO

Populating table ADMINIST (.csv)

1,Alberto 2,Bastián 3,Carlos 4,David 5,Encarna 6,Fernando 7,Gerardo 8,Herminia 9,Ignacio 10,Javier 11,Kalimocho 12,Luis

Populating table ACTIVOS (.csv)

1,ALIM,BATERÍAS V-LOCK1,null 2,ALIM,BATERÍAS V-LOCK2,null 3,ALIM,BATERÍAS V-LOCK3,null 4,ALIM,BATERÍAS V-LOCK4,null 5,ALIM,BATERÍAS V-LOCK5,null 6,ALIM,BATERÍAS V-LOCK6,null 7,ALIM,BATERÍAS V-LOCK7,null 8,ALIM,BATERÍAS V-LOCK8,null 9,ALIM,BATERÍAS V-LOCK9,null 10,ALIM,BATERÍAS V-LOCK10,null 11,ALIM,BATERÍAS V-LOCK11,null 12,ALIM,BATERÍAS V-LOCK12,null 13,ALIM,CARGADOR V-LOCK1,null 14,ALIM,CARGADOR V-LOCK2,null 15,ALIM,CARGADOR V-LOCK3,null 16,ALIM,CARGADOR V-LOCK4,null 17,EQUIPO 1,EQUIPO 1 - CAMARA JVC 5100 ,null 18,EQUIPO 1,EQUIPO 1 - TRIPODE,null 19,EQUIPO 1,EQUIPO 1 - MONITOR DE CAMPO,null 20,EQUIPO 1,EQUIPO 1 - FOCO DE 1000+TRIPODE,null 21,EQUIPO 1,EQUIPO 1 - FOCO DE 650+TRIPODE,null 22,EQUIPO 1,EQUIPO 1 - MICRO DE MANO,null 23,EQUIPO 1,EQUIPO 1 - MICRO DE CORBATA,null 24,EQUIPO 1,EQUIPO 1 - PELUCHE,null 25,EQUIPO 1,EQUIPO 1 - PERTIGA,null 26,EQUIPO 1,EQUIPO 1 - AURICULARES,null 27,EQUIPO 2,EQUIPO 2 - CAMARA JVC 5100 ,null 28,EQUIPO 2,EQUIPO 2 - TRIPODE,null 29,EQUIPO 2,EQUIPO 2 - MONITOR DE CAMPO,null 30,EQUIPO 2,EQUIPO 2 - FOCO DE 1000+TRIPODE,null 31,EQUIPO 2,EQUIPO 2 - FOCO DE 650+TRIPODE,null 32,EQUIPO 2,EQUIPO 2 - MICRO DE MANO,null 33,EQUIPO 2,EQUIPO 2 - MICRO DE CORBATA,null 34,EQUIPO 2,EQUIPO 2 - PELUCHE,null 35,EQUIPO 2,EQUIPO 2 - PERTIGA,null 36,EQUIPO 2,EQUIPO 2 - AURICULARES,null 37,EQUIPO 3,EQUIPO 3 - CAMARA JVC 5100 ,null 38,EQUIPO 3,EQUIPO 3 - TRIPODE,null 39,EQUIPO 3,EQUIPO 3 - MONITOR DE CAMPO,null 40,EQUIPO 3,EQUIPO 3 - FOCO DE 1000+TRIPODE,null 41,EQUIPO 3,EQUIPO 3 - FOCO DE 650+TRIPODE,null 42,EQUIPO 3,EQUIPO 3 - MICRO DE MANO,null 43,EQUIPO 3,EQUIPO 3 - MICRO DE CORBATA,null 44,EQUIPO 3,EQUIPO 3 - PELUCHE,null 45,EQUIPO 3,EQUIPO 3 - PERTIGA,null 46,EQUIPO 3,EQUIPO 3 - AURICULARES,null 47,EQUIPO 4,EQUIPO 4 - CAMARA JVC 5100 ,null 48,EQUIPO 4,EQUIPO 4 - TRIPODE,null 49,EQUIPO 4,EQUIPO 4 - MONITOR DE CAMPO,null 50,EQUIPO 4,EQUIPO 4 - FOCO DE 1000+TRIPODE,null 51,EQUIPO 4,EQUIPO 4 - FOCO DE 650+TRIPODE,null 52,EQUIPO 4,EQUIPO 4 - MICRO DE MANO,null 53,EQUIPO 4,EQUIPO 4 - MICRO DE CORBATA,null 54,EQUIPO 4,EQUIPO 4 - PELUCHE,null 55,EQUIPO 4,EQUIPO 4 - PERTIGA,null 56,EQUIPO 4,EQUIPO 4 - AURICULARES,null 57,FOTO,PENTAX Km,null 58,FOTO,TRIPODE,null 59,HD 1,HD1 - PANASONIC AG-HPX371E,null 60,HD 1,HD1 - TRIPODE,null 61,HD 2,HD2 - PANASONIC AG-HPX371E,null 62,HD 2,HD2 - TRIPODE,null 63,HD 3,HD3 - PANASONIC AG-HVX200E ,null 64,HD 3,HD3 - TRÍPODE,null 65,ILUM,FOCOS 2000W1,null 66,ILUM,FOCOS 2000W2,null 67,ILUM,FOCOS 2000W3,null 68,ILUM,PANTALLAS FLUORESCENTES1,null 69,ILUM,PANTALLAS FLUORESCENTES2,null 70,ILUM,PANTALLAS FLUORESCENTES3,null 71,ILUM,ARAÑA1,null 72,ILUM,ARAÑA2,null 73,ILUM,ARAÑA3,null 74,ILUM,ARAÑA4,null 75,ILUM,ARAÑA5,null 76,ILUM,ARAÑA6,null 77,ILUM,MASTIL1,null 78,ILUM,MASTIL2,null 79,ILUM,MASTIL3,null 80,ILUM,MASTIL4,null 81,ILUM,MASTIL5,null 82,ILUM,MASTIL6,null 83,ILUM,ROTULA1,null 84,ILUM,ROTULA2,null 85,ILUM,ROTULA3,null 86,ILUM,ROTULA4,null 87,ILUM,ROTULA5,null 88,ILUM,ROTULA6,null 89,ILUM,ESPADA1,null 90,ILUM,ESPADA2,null 91,ILUM,ESPADA3,null 92,ILUM,ESPADA4,null 93,ILUM,ESPADA5,null 94,ILUM,ESPADA6,null 95,ILUM,REFLECTORES (LASTOLITE 5X1)1,null 96,ILUM,REFLECTORES (LASTOLITE 5X1)2,null 97,ILUM,REFLECTORES (LASTOLITE 5X1)3,null 98,SALAS,AULA 11,null 99,SALAS,INFORMÁTICA,null 100,SALAS,AULA 16,null 101,SALAS,AULA 17,null 102,SALAS,RECTORADO,null 103,SALAS,AULA MAGNA,null 104,SALAS,TALLER TEATRO,null 105,SALAS,PLATÓ,null 106,SALAS,CABINA 1,null 107,SALAS,CABINA 2,null 108,SALAS,CABINA 3,null 109,SALAS,CABINA 4,null 110,SALAS,CONTROL REAL,null 111,SONIDO,MESA ALESIS,null 112,SONIDO,MICRO AKG PERCEPCION 100,null 113,SONIDO,MICRO BERHINGER B2 PRO,null 114,SONIDO,CAJAS YAMAHA,null 115,SONIDO,GRABADORAS VOZ OLYMPUS1,null 116,SONIDO,GRABADORAS VOZ OLYMPUS2,null 117,SONIDO,GRABADORAS VOZ OLYMPUS3,null 118,SONIDO,GRABADORAS VOZ OLYMPUS4,null 119,SONIDO,KIT MICROFONO INALAMBRICO,null 120,SONIDO,EDIROL 44 (GRABADOR AUDIO),null 121,SONIDO,PIE DE MICRO (MESA)1,null 122,SONIDO,PIE DE MICRO (MESA)2,null 123,SONIDO,PIE DE MICRO (MESA)3,null 124,SONIDO,PIE DE MICRO (SUELO)1,null 125,SONIDO,PIE DE MICRO (SUELO)2,null 126,SONIDO,PIE DE MICRO (SUELO)3,null 127,VAR,CANON FS-200,null 128,VAR,STEADYCAM,null 129,VAR,GRUA,null 130,VAR,CLAQUETA,null 131,VÍDEO,CANON 5D MK II,null

Populating table RESERVA (.csv)

1,2011-12-06,1,2011-12-07,2012-06-10,8,21,13,ciclos,particular,85,3,tr +ámite 2,2012-01-07,7,2012-01-20,2012-01-31,8,21,23,DGA,particular,19,3,trámi +te 3,2012-01-06,7,2012-01-09,2012-02-07,8,21,5,DGA,particular,55,1,trámit +e 4,2011-12-20,1,2011-12-20,2012-04-17,8,21,24,DGA,particular,21,3,trámi +te 5,2011-11-20,7,2011-11-30,2011-12-01,8,21,25,DGA,particular,82,1,trámi +te 6,2012-03-28,7,2012-04-08,2012-06-28,8,21,22,DGA,lectivo,37,3,trámite 7,2012-03-08,1,2012-03-10,2012-12-06,8,21,22,ciclos,particular,18,3,tr +ámite 8,2011-12-05,1,2011-12-05,2011-12-15,8,21,4,ciclos,lectivo,120,2,trámi +te 9,2012-03-22,1,2012-04-01,2012-06-25,8,21,6,ciclos,lectivo,9,1,trámite 10,2012-03-05,1,2012-03-17,2013-01-11,8,21,6,DGA,particular,120,1,trám +ite 11,2011-12-19,7,2011-12-21,2012-01-26,8,21,6,DGA,particular,11,2,trámi +te 12,2011-11-29,7,2011-12-04,2011-12-05,8,21,14,alumnos,particular,19,2, +trámite 13,2012-01-18,1,2012-01-19,2012-06-06,8,21,11,alumnos,lectivo,65,3,trá +mite 14,2011-12-26,7,2011-12-31,2012-02-17,8,21,1,ciclos,lectivo,130,2,trám +ite 15,2012-02-08,7,2012-02-22,2012-04-18,8,21,25,DGA,lectivo,105,2,trámit +e 16,2011-11-15,1,2011-11-23,2012-09-26,8,21,10,alumnos,particular,105,1 +,trámite 17,2011-11-25,7,2011-12-03,2012-02-02,8,21,17,ciclos,particular,24,1,t +rámite 18,2012-01-14,7,2012-01-14,2012-02-21,8,21,5,DGA,particular,13,2,trámi +te 19,2012-03-20,1,2012-03-23,2013-04-29,8,21,20,DGA,lectivo,53,1,trámite 20,2011-12-08,7,2011-12-19,2012-03-07,8,21,7,alumnos,particular,44,1,t +rámite 21,2012-03-16,1,2012-03-27,2013-03-31,8,21,3,DGA,lectivo,59,3,trámite 22,2011-12-25,1,2011-12-29,2013-03-07,8,21,8,alumnos,lectivo,23,3,trám +ite 23,2012-03-27,7,2012-04-04,2012-04-17,8,21,8,DGA,particular,91,1,trámi +te 24,2012-02-14,1,2012-02-23,2012-06-22,8,21,6,ciclos,lectivo,52,2,trámi +te 25,2011-12-10,1,2011-12-23,2012-01-01,8,21,1,DGA,particular,130,3,trám +ite 26,2011-11-10,7,2011-11-16,2011-12-06,8,21,24,alumnos,lectivo,118,1,tr +ámite 27,2012-02-24,1,2012-03-04,2013-03-10,8,21,19,DGA,particular,93,2,trám +ite 28,2012-01-30,1,2012-02-03,2012-09-21,8,21,19,alumnos,particular,9,1,t +rámite 29,2012-01-03,1,2012-01-15,2012-03-08,8,21,7,DGA,lectivo,48,3,trámite 30,2012-03-06,1,2012-03-08,2013-01-29,8,21,9,DGA,lectivo,42,3,trámite 31,2012-02-24,1,2012-02-24,2012-06-07,8,21,24,alumnos,lectivo,58,3,trá +mite 32,2011-12-25,7,2012-01-05,2012-01-21,8,21,5,ciclos,lectivo,108,1,trám +ite 33,2012-03-21,1,2012-04-03,2012-06-26,8,21,16,DGA,particular,62,1,trám +ite 34,2012-02-28,1,2012-03-11,2012-11-17,8,21,19,alumnos,lectivo,75,3,trá +mite 35,2011-11-10,1,2011-11-11,2012-07-16,8,21,8,ciclos,particular,64,3,tr +ámite 36,2012-03-12,1,2012-03-13,2012-04-01,8,21,20,ciclos,lectivo,61,1,trám +ite 37,2011-12-17,7,2011-12-21,2012-02-07,8,21,25,DGA,lectivo,81,2,trámite 38,2012-01-24,1,2012-02-07,2013-04-02,8,21,6,DGA,lectivo,95,3,trámite 39,2011-12-13,7,2011-12-21,2012-03-04,8,21,4,DGA,particular,127,1,trám +ite 40,2012-01-27,1,2012-01-28,2012-02-02,8,21,15,ciclos,particular,20,3,t +rámite

Greetings to all

I'm practicing my first Perl modules (DBI and CGI) in a SQLite database. Find it really difficult to date handling in CGI-DBI SQLite.

Prepared directly in sqlite3 format dates under julianday () function to perform a query like "select from TableX WHERE julianday (Datex) between julianday (dateY) and julianday (dateZ).

How I can implement this type of query in a CGI-DBI without installing more modules?

Lacking of internal conversion of the dates to julian days this code fails

use CGI; use DBI; use Encode; my $q = CGI->new; my $fecha= $q->param('theDate'); my $orden= $q->param('orden'); print $q->header, $q->start_html(-lang=>'es-SP',-title=> 'Reservas CPA +'), $q->h2({-align=>'CENTER'},decode("utf-8","Reservas para el día: " +)."$fecha ordenadas por $orden\n\n"); my $dbh = DBI->connect("dbi:SQLite:dbname=cpa-simple.db", "", "", {Rai +seError =>1 } ); my $sth = $dbh->prepare( q ( select id_reserva,activo,tipo_reserva,ent +idad_nombre_reserva,nombre,apellidos,telefono,inicio_reserva,fin_rese +rva,periodicidad,horai,horaf,nombre_admin from reserva,activos,nombre +,administ where reserva.activos_reserva_id=activos.id_activos and res +erva.nombre_reserva_id=nombre.id_dni and reserva.administ_reserva_id= +administ.id_administ and ? between inicio_reserva and fin_reserva or +der by ?)) or die "No puedo preparar la sentencia: " .$dbh->errstr; my @data; $sth->execute("$fecha","$orden") or die "Algo está pasando... ¡Llama a + los bomberos!: " . $sth->errstr; ...

I can apply the internal function of SQLite "juliandays ()" on placeholders through the DBI module?

Excuse my google - English

Comment on DBI, and date type SQLite
Select or Download Code
Re: DBI, and date type SQLite
by CountZero (Bishop) on Oct 09, 2011 at 21:24 UTC
    Did you try juliandays(?) in that SQL? And if you did, what was the result?

    CountZero

    A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

      Hello and thanks!

      It's the first thing I tried:

      ... + + ...and julianday( ? ) between julianday ( inicio_reserva ) and juliand +ay ( fin_reserva ) order by ?)) or die "No puedo preparar la sentenci +a: " .$dbh->errstr; my @data; $sth->execute("$fecha","$orden") or die "Algo está pasando... ¡Llama a + los bomberos!: " . $sth->errstr;

      Apache says:

      [Sun Oct 09 23:39:14 2011] [error] [client 127.0.0.1] closing dbh with active statement handles at /Library/WebServer/CGI-Executables/ini.cgi line 141., referer: http://127.0.0.1/~net/index.html

      Line 141 is

      $dbh->disconnect;

      And CGI prints table head's but none result

        So, you didn't show us the part where you call ->fetchrow or ->fetchall. The warning means that you didn't fetch all rows. Maybe you meant to do that, but you don't show the part of your code that relates to that warning at all.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://930490]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2014-12-26 13:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (171 votes), past polls