in reply to Re^3: DBI::DBM - How to use this for SQL connection
in thread DBI::DBM - How to use this for SQL connection

Thanks for the info.. But i already have a database authenticated. When i open a .sql file, it goes for server check with windows authentication, then the shows the query results.

So do i need to provide any information on server info in .SQL file or perl script?

And as per the ur info and also the error i get, can i run my select query directly. Bcos, i receive the error usr.lck does not exist. Does it mean, i need to create these 3 files first using create query(my table is already there in DB)?

From ur DBM Select script, i don't see the .sql file or Database reference in the script. As my perl & .sql are in same folder, is above script fine to be run with same code u provided

  • Comment on Re^4: DBI::DBM - How to use this for SQL connection

Replies are listed 'Best First'.
Re^5: DBI::DBM - How to use this for SQL connection
by stefbv (Priest) on Apr 06, 2011 at 12:28 UTC

    Usualy files with '.sql' extension are plain text files containing SQL commands. Regarding DBD::DBM, there is no server involved in the process, just "DBM files stored in binary format".

    So if you have files named usr.* you ca try using 'usr' as the table name.

      Thanks really for ur help. As when i open my file, it opens up with SQL with some particular Server, so only i asked this. Still i find a error when i run my Select DBM perl directly : DBD::DBM::st execute failed: Cannot open .\users.lck: No such file or directory at D:/Perl/site/lib/DBD/File.pm line 574. for Statement "SELECT COUNT(*) FROM users" at H:\job\modules.pl line 13. DBI::st=HASH(0x1c10300)

      following is the code i'm using

      #!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect('dbi:DBM:server=RS-ERDSG06:f_ext=.sql') or die "Can't connect to $DBI::errstr"; my $sql = "SELECT COUNT(*) FROM users"; my $sth = $dbh->prepare($sql) or die "Can't prepare statement: $DBI::errstr"; $sth->execute(); print $sth, "\n"; $dbh->disconnect;