Thank you Blake,

So it turns out that a lot of other responders on dbi-users had falsely assumed you were using a standard SQL-native DBMS and so a lot of details about eg quoting with double-quotes or backticks etc are not necessarily applicable to you.

What actually matters is that your problem is internal to a Perl module itself, eg DBD::CSV or a related dependency included with itself or with DBI that DBD::CSV uses to parse whatever SQL you're writing.

You need to look at the documentation for what SQL DBD::CSV can handle, or maybe it has a bug and you've exposed it, eg that quoting DESC is supposed to work.

One thing I recommend is look for case-sensitivity issues. In standard SQL, quoting an identifier makes it case-sensitive while unquoted is not, so you may have to check what case is being compared with. You may have also found a bug.

If for some reason this problem becomes intractable (it shouldn't be), if you can at least read in each CSV file to a Perl array of Perl hashrefs, a typical DBI select-all convention, you could try using my Set::Relation::V2 module to do SQL-esque munging/queries of those.

-- Darren Duncan

On 2015-08-18 7:21 AM, Adkins, Blake wrote:
Let me do a better job of explaining the situation. We use GE's Cimplicity to monitor and 
control a SCADA system. GE provides an interface to the database but it's very limited. 
The easiest way is to export to a .csv file and operate on that and then import changes. 
My script works on the .csv file using dbi:CSV:f_dir and pointing to different files for 
different projects. The problem comes when I try to include DESC in SELECT or WHERE. I 
have tried 'DESC', "DESC" and `DESC`. The last two fail at run-time. The first 
one doesn't fail but it returns something like
        PT_ID,DESC
        PT_1,DESC
        PT_2,DESC
        ...
        PT_N,DESC.
I'm using the DBI module in Perl, would this be better with the other modules 
mentioned?

Blake

-----Original Message-----
From: Darren Duncan [mailto:dar...@darrenduncan.net]
Sent: Tuesday, August 18, 2015 12:19 AM
To: Adkins, Blake; dbi-users@perl.org
Subject: Re: (Fwd) DBI Dilemma

Blake, something you need to clarify is what you are querying against, is it 
the SQL database or the .csv file?  Either the .csv thing is a red herring or 
it sounds like you're using DBD::CSV, so which is it?  The solution depends on 
this. -- Darren Duncan

On 2015-08-17 2:42 PM, tim.bu...@pobox.com wrote:
----- Forwarded message from "Adkins, Blake" <blake.adk...@intel.com>
-----

Date: Mon, 17 Aug 2015 17:51:41 +0000
From: "Adkins, Blake" <blake.adk...@intel.com>
To: "tim.bu...@pobox.com" <tim.bu...@pobox.com>
Subject: DBI Dilemma

     Tim,

     I've been using your module to enable people in my group to do searches on 
a database that is regularly
     backed up as a .csv file. The problem here is with a particular column 
name. Of the 140 columns in the
     database, one is named DESC, short for description. This was established 
well before my time at the
     company and I believe the name comes from GE who makes the Cimplicity 
product. If I try to do a SELECT
     using that column, the script dies, or quietly passes DESC in the column 
header and all the rows. I've
     tried to figure out how to get around it without success. Do you have any 
suggestions aside from
     renaming the column? (I was thinking along  the lines of escaping
the name)

     Thanks,

     Blake Adkins

----- End forwarded message -----



Reply via email to