in reply to Re: DBD::ANYDATA create table help please.
in thread DBD::ANYDATA create table

Roger,
many thanks, I have used your example as a template and managed to get my code to work properly!!!

With DBD::Anydata in CSV mode do we need to define the field definition still?

Thanks for your help Roger and all!

Lance

Kia Kaha, Kia Toa, Kia Manawanui!
Be Strong, Be Brave, Be perservering!
  • Comment on Re: Re: DBD::ANYDATA create table help please.

Replies are listed 'Best First'.
Re: Re: Re: DBD::ANYDATA create table help please.
by Roger (Parson) on Jan 28, 2004 at 22:52 UTC
    With DBD::Anydata in CSV mode do we need to define the field definition still?

    Yes you do. Because you are creating the table using SQL, you need to form a valid SQL statement to work properly.

    There is another way to create the table - by directly creating the underlying CSV file. This way you do not have to specify field definitions at all:
    use strict; use warnings; use DBI; use DBD::AnyData; use IO::File; my $table = "data"; my @fields = qw/ id name /; # === create an empty CSV file === my $csvfile = new IO::File "./data.csv", "w" or die "Can not create CSV file"; print $csvfile join(',', @fields), "\n"; undef $csvfile; my $dbh = DBI->connect('dbi:AnyData(RaiseError=>1):') or die "Can not create database connection"; $dbh->func( 'data', 'CSV', './data.csv', 'ad_catalog'); $dbh->do("INSERT INTO $table VALUES ('01', 'DUMMY' )") or die "Can not insert into data table"; $dbh->disconnect();