in reply to DBI, CSV and SQL troubles

I am not sure whether this is the cause of your problem, but you are using a wrong column. Event_ID could be between 7034 and 7037, not Date_and_Time.

Replies are listed 'Best First'.
Re^2: DBI, CSV and SQL troubles
by Anonymous Monk on Jun 14, 2010 at 04:26 UTC
    Sorry that was obviously wrong but, I am getting the same error even with Event_ID column
    perfdata.csv SELECT * FROM perfmon WHERE Event_ID BETWEEN '7034' AND '7037' DBD::CSV::st execute failed: Not an ARRAY reference at C:/Perl/site/li +b/SQL/Stat ement/Operation.pm line 438, <GEN0> line 2. [for Statement " SELECT * FROM perfmon WHERE Event_ID BETWEEN ' +7034' AND '7037' "] at perflogquery.pl line 30. DBD::CSV::st fetchrow_array failed: Attempt to fetch row without a pre +ceeding ex ecute () call or from a non-SELECT statement [for Statement " SELECT * FROM perfmon WHERE Event_ID BETWEEN ' +7034' AND '7037' "] at perflogquery.pl line 31.

      Got this to work.

      SELECT * FROM perfmon WHERE Event_ID BETWEEN ('7034','7037')

      The second question, "How do I work with dates in a CSV file when using DBI? Is there a quick hack or something else that I can use?", it is same as above; look at the following query: "SELECT * FROM perfmon WHERE Date_and_Time BETWEEN ('26/01/2010 20:05:51','27/01/2010 20:02:36') ORDER BY Date_and_Time DESC"

      If you look at the data in the initial post, this query will have to return the following:
      Expected rows:

      'Information',26/01/2010 20:05:51,'Service Control Manager',7036,None, +'The Multimedia Class Scheduler service entered the running state.' 'Information',27/01/2010 20:02:36,'Service Control Manager',7036,None, +'The Application Experience service entered the running state.' 'Information',27/01/2010 20:02:35,'Service Control Manager',7036,None, +'The WMI Performance Adapter service entered the running state.'

      And it does return the same... :-)

      Hope is a Heuristic Search.