/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
DBI,Oracle, Win2000 Dato Statement
Fra : bba


Dato : 28-10-02 00:17

Jeg skal hente data fra en Oracle via ODBC i DBI modulet, Alle andre
statement går godt, undtagen når jeg benytter dato formater. Hvis jeg
indsætter dato direkte i statement er alt ok, men ikke når de benyttes
som variabler, og de skal oprindeligt komme fra et kaldende script, så
det et must at det fungerer.
Jeg får ikke en fejlmeddelse fra Oracle, men script error i min Apache
Server(Errorlog).
Kan statementet laves anderledes for at få de samme data, eller andre
gode forslag.
Vil bibeholde ODBC connectionen !!

-- Kode --
use DBI;
$user="xx";
$pass="xx";

$dbh=DBI->connect"dbiBC:<hostname>",$user,$pass) or die &db_error;

$sth=$dbh->prepare("SELECT * from xx WHERE Dato BETWEEN '$from' AND
'$to'");

$sth->execute;
$dbh->Disconnect;
-- Kode slut --

Mvh, BBA

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


 
 
Dennis Haney (28-10-2002)
Kommentar
Fra : Dennis Haney


Dato : 28-10-02 16:14

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"bba" <bba.news@kandu.dk> writes:

> Jeg skal hente data fra en Oracle via ODBC i DBI modulet, Alle andre
> statement går godt, undtagen når jeg benytter dato formater. Hvis jeg
> indsætter dato direkte i statement er alt ok, men ikke når de benyttes
> som variabler, og de skal oprindeligt komme fra et kaldende script, så
> det et must at det fungerer.
> Jeg får ikke en fejlmeddelse fra Oracle, men script error i min Apache
> Server(Errorlog).
> Kan statementet laves anderledes for at få de samme data, eller andre
> gode forslag.
> Vil bibeholde ODBC connectionen !!
>
> -- Kode --
> use DBI;
> $user="xx";
> $pass="xx";
>
> $dbh=DBI->connect"dbiBC:<hostname>",$user,$pass) or die &db_error;
>
> $sth=$dbh->prepare("SELECT * from xx WHERE Dato BETWEEN '$from' AND
> '$to'");

Kan du ikke bare manuelt quote dem?

$sth=$dbh->prepare("SELECT * from xx WHERE Dato BETWEEN ".($dbh->quote($from))." AND ".($dbh->quote($to)));


- --
Dennis
I have always thought explanations were overkill when correcting
mistakes. A simple "that's wrong" must suffice. I mean, people are
always aware why they are wrong. They just make mistakes to annoy you.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>

iD8DBQE9vVRAo6hqeoa8JFgRAsV6AJ43ZdeCFXSybXV7iNwsplGd0XoIMwCePz6G
k7wKZ082f1S3o/F5ipxCI6s=
=mo/b
-----END PGP SIGNATURE-----

Kim Hansen (28-10-2002)
Kommentar
Fra : Kim Hansen


Dato : 28-10-02 16:51

"bba" <bba.news@kandu.dk> writes:

> $sth=$dbh->prepare("SELECT * from xx WHERE Dato BETWEEN '$from' AND
> '$to'");
>
> $sth->execute;

Hvis problemet er hvordan du quoter datoerne, så kan dette måske være
løsningen:

$sth=$dbh->prepare("SELECT * from xx WHERE Dato BETWEEN ? AND ?");
$sth->execute($from, $to);

Generelt har jeg meget positive erfaringer med at bruge ? i
SQL-statements i Perl alle de steder hvor jeg kan slippe afsted med
det.

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-'`' -. ;-;;,_ | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Phone: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste