[dancer-users] Better Solution ?

Hugues Max huguesmax at gmail.com
Thu Apr 11 14:20:06 BST 2013


I'm going to migrate a very very old Microsoft Access application, 
during a certain time I need ton send and read  data in MS Access.
I've compiled this small script for windows, and it run on same machine 
as MS Access and this script listen on port 2000

use strict;
my @tableau;
$tableau[0] ='--localport=2000';
$tableau[1]='--debug';
require DBI::ProxyServer;
delete $ENV{IFS};
delete $ENV{CDPATH};
delete $ENV{ENV};
delete $ENV{BASH_ENV};
DBI::ProxyServer::main(@tableau);
exit(0);

my connection is here

my $dsn      = "DBI:Proxy:hostname=$IP;port=$PORT;dsn=DBI:ODBC:$ODBC";
my $dbh = DBI->connect($dsn, "", "") || die "Erreur de connexion à la base";

and
my $sth = $dbh->prepare($sql);
$sth->execute();



I tried to configure with config.yaml
Plugins:
     Database:
         connections:
         Access:
                           driver: 
'Proxy:hostname=192.168.0.19;port=2000;dsn=DBI:ODBC:myodbconnection'


connection seem to be ok

how I can call db handle ?

if I use  something like

  my $line       = database('Access')->quick_select('CommandeBNP', {Ckey 
=> params->{Ckey} } );

SQL language from |Dancer::Plugin::Database 
<https://metacpan.org/module/Dancer::Plugin::Database>;| is wrong and 
Access stop this this error




Thu Apr 11 15:08:55 2013] [error] [client 192.168.0.19] 
\tDancer::Object::new('Dancer::Error', 'code', 500, 'title', 'Runtime 
Error', 'message', 'DBD::Proxy::st execute failed: Server returned 
error: Failed to execute method CallMethod: DBD::ODBC::st execute 
failed: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe 
(opM-irateur absent) dans l\\'expression \\'NumContrat=Pa_RaM000 AND 
CodeClient=Pa_RaM001 \\'. (SQL-42000) at 
/<C:\\Users\\Hugues\\Desktop\\AccessProxy.exe>DBI/ProxyServer.pm line 
341.^J', 'exception', 'DBD::Proxy::st execute failed: Server returned 
error: Failed to execute method CallMethod: DBD::ODBC::st execute 
failed: [Microsoft][Pilote ODBC Microsoft Access]


Le 11/04/2013 14:27, Stefan Hornburg (Racke) a écrit :
> On 04/11/2013 02:14 PM, Hugues Max wrote:
>> Hello
>> I need to write a Dancer Application where I need to connect to Microsoft Access 97/2003 Database... :'(
>>
>> I use DBI::Proxy
>>
>> my $dsn      = "DBI:Proxy:hostname=$IP;port=$PORT;dsn=DBI:ODBC:$ODBC";
>> my $dbh = DBI->connect($dsn, "", "") || die "Erreur de connexion à la base";
>> $dbh->{AutoCommit} = 1;
>> $dbh->{RaiseError} = 1;
>>
>> it's not fast but it's works.
>>
>> I tried to use  Dancer::Plugin::Database but Microsoft SQL is not compatible ( Limit doesn't exist, this is TOP etc.. )
> You could still use Dancer::Plugin::Database for setting up and maintaining the database connection.
>
>> my %ClientParc ;
>> $sql =q/SELECT Spécifique, Quantité, PrixMaintenance FROM ClientParc WHERE NumContrat=? AND CodeClient=?/;
>> $stha = $dbha->prepare($sql);
>> $stha->execute($NumContrat, $CodeClient );
>>   while (my ($Specifique, $Quantite, $PrixMaintenance) = $stha->fetchrow_array()) {
>> $ClientParc{$Specifique} = {  Specifique      => $Specifique, Quantite        => $Quantite,     PrixMaintenance => $PrixMaintenance        }
>> }
>>
>>   I create a hash %ClientParc and I send it to TTK
>> and I do
>>
>> return template '/echeancier' => {
>>      ClientParc => \%ClientParc
>> }
>> in my view
>>
>> [% FOREACH s IN ClientParc.values -%]
>>
>>          [%- IF loop.first %]
>>                  <div class="span5">             [% s.Quantite %] [% s.Specifique %] </div>
>>          [% ELSE %]
>>                  <div class="span5 offset5">     [% s.Quantite %] [% s.Specifique %] </div>
>>          [% END %]
>> [% END %]
>>
>> And it's works but
>>
>> I got 2 questions
>> 1 ) are they a better solution ?
> Obviously make a better choice on your database backend :-).
>
>> 2) for each page , I need to connect to MS Access proxy and this is slow ( 2 ou 3 sec for connection, but after queries are  enough fast ),
>> are they a solution to maintain a DB connection  ?
> How and where do you connect?
>
> Regards
> 	Racke
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20130411/6fd31ca0/attachment.htm>


More information about the dancer-users mailing list