1 |
# -*- perl -*- |
2 |
# |
3 |
# DBD::AutoCSV - A DBI driver based on DBD::CSV with automatic features |
4 |
# |
5 |
# This module is currently maintained by |
6 |
# |
7 |
# Andreas Motl |
8 |
# <andreas.motl@ilo.de> |
9 |
# |
10 |
# Copyright (C) 2002 by Andreas Motl |
11 |
# |
12 |
# All rights reserved. |
13 |
# |
14 |
# You may distribute this module under the terms of either the GNU |
15 |
# General Public License or the Artistic License, as specified in |
16 |
# the Perl README file. |
17 |
# |
18 |
|
19 |
require 5.004; |
20 |
use strict; |
21 |
|
22 |
|
23 |
require DynaLoader; |
24 |
require DBD::CSV; |
25 |
require IO::File; |
26 |
|
27 |
|
28 |
package DBD::AutoCSV; |
29 |
|
30 |
use vars qw(@ISA $VERSION $drh $err $errstr $sqlstate); |
31 |
|
32 |
@ISA = qw(DBD::CSV); |
33 |
|
34 |
$VERSION = '0.0001'; |
35 |
|
36 |
$err = 0; # holds error code for DBI::err |
37 |
$errstr = ""; # holds error string for DBI::errstr |
38 |
$sqlstate = ""; # holds error state for DBI::state |
39 |
$drh = undef; # holds driver handle once initialised |
40 |
|
41 |
@DBD::AutoCSV::dr::ISA = qw(DBD::CSV::dr); |
42 |
@DBD::AutoCSV::db::ISA = qw(DBD::CSV::db); |
43 |
@DBD::AutoCSV::st::ISA = qw(DBD::CSV::st); |
44 |
@DBD::AutoCSV::Statement::ISA = qw(DBD::CSV::Statement); |
45 |
@DBD::AutoCSV::Table::ISA = qw(DBD::CSV::Table); |
46 |
|
47 |
$DBD::AutoCSV::dr::imp_data_size = 0; |
48 |
$DBD::AutoCSV::dr::data_sources_attr = undef; |
49 |
$DBD::AutoCSV::db::imp_data_size = 0; |
50 |
$DBD::AutoCSV::st::imp_data_size = 0; |
51 |
|
52 |
package DBD::CSV::Statement; |
53 |
|
54 |
sub _get_rules_autoscan { |
55 |
#print "_get_rules_autoscan", "\n"; |
56 |
return [ |
57 |
{ eol => "\r\n", sep_char => ",", quote_char => "\"", escape_char => "" }, |
58 |
{ eol => "\r\n", sep_char => ";", quote_char => "\"", escape_char => "" }, |
59 |
{ eol => "\n", sep_char => ":", quote_char => "", escape_char => "" }, # /etc/passwd |
60 |
{ eol => "\n", sep_char => ",", quote_char => "\"", escape_char => "" }, |
61 |
{ eol => "\n", sep_char => "|", quote_char => "\"", escape_char => "" }, |
62 |
{ eol => "\n", sep_char => ";", quote_char => "\"", escape_char => "\\", always_quote => 1 }, |
63 |
]; |
64 |
} |
65 |
|
66 |
1; |
67 |
|
68 |
|
69 |
__END__ |
70 |
|
71 |
=head1 NAME |
72 |
|
73 |
DBD::AutoCSV - A DBI driver based on DBD::CSV with automatic features |
74 |
|
75 |
=head1 DESCRIPTION |
76 |
|
77 |
It is about using DBD::CSV together with the "scan" feature and a preconfigured rulebase. |
78 |
|
79 |
See DBD::CSV for more informations. (perldoc DBD::CSV) |
80 |
DBD::AutoCSV inherits from DBD::CSV. |
81 |
|
82 |
See L<DBI(3)> for details on DBI, L<SQL::Statement(3)> for details on |
83 |
SQL::Statement and L<DBD::File(3)> for details on the base class |
84 |
DBD::File. |
85 |
|
86 |
|
87 |
=head1 WARNING |
88 |
|
89 |
THIS IS ALPHA SOFTWARE. It adds some dangerous features... |
90 |
|
91 |
|
92 |
=head2 Prerequisites |
93 |
|
94 |
=over 4 |
95 |
|
96 |
=item DBI |
97 |
|
98 |
the DBI (Database independent interface for Perl), version 1.00 or |
99 |
a later release |
100 |
|
101 |
=item SQL::Statement |
102 |
|
103 |
a simple SQL engine |
104 |
|
105 |
=item Text::CSV_XS |
106 |
|
107 |
this module is used for writing rows to or reading rows from CSV files. |
108 |
|
109 |
=item DBD::CSV |
110 |
|
111 |
A DBI driver for CSV and similar structured files |
112 |
|
113 |
=back |
114 |
|
115 |
|
116 |
=head1 AUTHOR AND COPYRIGHT |
117 |
|
118 |
This module is currently maintained by |
119 |
|
120 |
Andreas Motl |
121 |
<andreas.motl@ilo.de> |
122 |
|
123 |
It is heavily based on various modules authored |
124 |
and/or currently maintained by Jeff Zucker. |
125 |
|
126 |
The original author of DBD::CSV is Jochen Wiedmann. |
127 |
|
128 |
Copyright (C) 2002 by Andreas Motl |
129 |
|
130 |
All rights reserved. |
131 |
|
132 |
You may distribute this module under the terms of either the GNU |
133 |
General Public License or the Artistic License, as specified in |
134 |
the Perl README file. |
135 |
|
136 |
=head1 SEE ALSO |
137 |
|
138 |
L<DBI(3)>, L<Text::CSV_XS(3)>, L<SQL::Statement(3)>, L<DBD::CSV(3)> |
139 |
|
140 |
=cut |