10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Can anyone recommend any good guides on how to investigate what a hanging process is doing?
In fact I would be interested in any online guides that would improve my forensic skills on the Linux platform.
I have a script that occasionally hangs. Strace shows:
# strace -p 32370
Process... (13 Replies)
Discussion started by: bbq
13 Replies
2. UNIX for Dummies Questions & Answers
Greetings,
I made an extraction on 2 different databases. What I need to do is to compare those extractions to know what is on database1 which is not on database2 and vice versa.
In those files, there are only numbers. So each line is just a number witch should be present on both file. If... (6 Replies)
Discussion started by: Sekullos
6 Replies
3. Solaris
I just skimmed through the Administration Guide about LDAP and CIFS.
Well that's a whole lot of text. Does someone know a tutorial/introduction with some steps to make?
TIA (14 Replies)
Discussion started by: PatrickBaer
14 Replies
4. Shell Programming and Scripting
Hi folks,
How do we create a file using shell script?
i mean to say that do we use
is it a good approch to do
echo "abc" >file
echo "xxxx" >>file
or is there any better method?
Thanks,
Amit (5 Replies)
Discussion started by: amit4g
5 Replies
5. Linux
i have linux bootable cd.
I want similar bootalbe cd with some chnage in the disk. i.e, some file from the old cd has to replaced in newer one.
how do i do it? (3 Replies)
Discussion started by: yogesh_powar
3 Replies
6. UNIX for Dummies Questions & Answers
How do you write a command to :
A text line to a file in ./DATA1/archive.log using system () in awk
TodayDate Time scriptname.ksh filename.dat
system(echo `date '+%D %T` scriptname.ksh >> ./DATA/archive.log) --> syntax error +%D
Thanks for your help (0 Replies)
Discussion started by: britney
0 Replies
7. Windows & DOS: Issues & Discussions
Hi all!
How would you do the equivalent of find ! -type f..... under windows?
Meaning, how under a directory could you find all files except those named *.mp3 for example?
the command under linux would be:
find $DIR ! -name "*.mp3" what would be that under windows?
Thanx for any ideas... (3 Replies)
Discussion started by: penguin-friend
3 Replies
8. UNIX for Dummies Questions & Answers
Dear Members,
I was reading a few posts and saw something about installing two Nics so one could use Full Duplex. I remember back in the day of dial up, you could have two modems and use one for upstream and one for downstream. This was called shotgunning. It seems that you can now do the same... (4 Replies)
Discussion started by: Phobos
4 Replies
9. UNIX for Dummies Questions & Answers
Dear All ,
Kindly I have some questions , I need hints or answers please .
I have sparc4 , sun solaries 7 , mail server . i have about 5000 users , with no login shell , or home directories for the users .
they only have mail boxes in /var/mail dir .
now , I do not have any type of... (6 Replies)
Discussion started by: tamemi
6 Replies
10. UNIX for Dummies Questions & Answers
Hello ,
I have this RH6.2 box with sendmail8.9.3-20 (configured and running properly )
I have also (procmail3.14-2 , fetchmail5.3.1-1 ) installed but I don't know about them.
(( all installed as rpm packages))
okay ,,, here what I need:
I need to be able to use OUTLOOK or any other... (3 Replies)
Discussion started by: t_zone
3 Replies
DBD::File::HowTo(3) User Contributed Perl Documentation DBD::File::HowTo(3)
NAME
DBD::File::HowTo - Guide to create DBD::File based driver
SYNOPSIS
perldoc DBD::File::HowTo
perldoc DBI
perldoc DBI::DBD
perldoc DBD::File::Developers
perldoc DBI::DBD::SqlEngine::Developers
perldoc DBI::DBD::SqlEngine
perldoc SQL::Eval
perldoc DBI::DBD::SqlEngine::HowTo
perldoc SQL::Statement::Embed
perldoc DBD::File
perldoc DBD::File::HowTo
perldoc DBD::File::Developers
DESCRIPTION
This document provides a step-by-step guide, how to create a new "DBD::File" based DBD. It expects that you carefully read the DBI
documentation and that you're familiar with DBI::DBD and had read and understood DBD::ExampleP.
This document addresses experienced developers who are really sure that they need to invest time when writing a new DBI Driver. Writing a
DBI Driver is neither a weekend project nor an easy job for hobby coders after work. Expect one or two man-month of time for the first
start.
Those who are still reading, should be able to sing the rules of "CREATING A NEW DRIVER" in DBI::DBD.
Of course, DBD::File is a DBI::DBD::SqlEngine and you surely read DBI::DBD::SqlEngine::HowTo before continuing here.
CREATING DRIVER CLASSES
Do you have an entry in DBI's DBD registry? For this guide, a prefix of "foo_" is assumed.
Sample Skeleton
package DBD::Foo;
use strict;
use warnings;
use vars qw(@ISA $VERSION);
use base qw(DBD::File);
use DBI ();
$VERSION = "0.001";
package DBD::Foo::dr;
use vars qw(@ISA $imp_data_size);
@ISA = qw(DBD::File::dr);
$imp_data_size = 0;
package DBD::Foo::db;
use vars qw(@ISA $imp_data_size);
@ISA = qw(DBD::File::db);
$imp_data_size = 0;
package DBD::Foo::st;
use vars qw(@ISA $imp_data_size);
@ISA = qw(DBD::File::st);
$imp_data_size = 0;
package DBD::Foo::Statement;
use vars qw(@ISA);
@ISA = qw(DBD::File::Statement);
package DBD::Foo::Table;
use vars qw(@ISA);
@ISA = qw(DBD::File::Table);
1;
Tiny, eh? And all you have now is a DBD named foo which will is able to deal with temporary tables, as long as you use SQL::Statement. In
DBI::SQL::Nano environments, this DBD can do nothing.
Start over
Based on DBI::DBD::SqlEngine::HowTo, we're now having a driver which could do basic things. Of course, it should now derive from DBD::File
instead of DBI::DBD::SqlEngine, shouldn't it?
DBD::File extends DBI::DBD::SqlEngine to deal with any kind of files. In principle, the only extensions required are to the table class:
package DBD::Foo::Table;
sub bootstrap_table_meta
{
my ( $self, $dbh, $meta, $table ) = @_;
# initialize all $meta attributes which might be relevant for
# file2table
return $self->SUPER::bootstrap_table_meta($dbh, $meta, $table);
}
sub init_table_meta
{
my ( $self, $dbh, $meta, $table ) = @_;
# called after $meta contains the results from file2table
# initialize all missing $meta attributes
$self->SUPER::init_table_meta( $dbh, $meta, $table );
}
In case "DBD::File::Table::open_file" doesn't open the files as the driver needs that, override it!
sub open_file
{
my ( $self, $meta, $attrs, $flags ) = @_;
# ensure that $meta->{f_dontopen} is set
$self->SUPER::open_file( $meta, $attrs, $flags );
# now do what ever needs to be done
}
Combined with the methods implemented using the SQL::Statement::Embed guide, the table is full working and you could try a start over.
User comfort
"DBD::File" since 0.39 consolidates all persistent meta data of a table into a single structure stored in "$dbh->{f_meta}". With
"DBD::File" version 0.41 and "DBI::DBD::SqlEngine" version 0.05, this consolidation moves to DBI::DBD::SqlEngine. It's still the
"$dbh->{$drv_prefix . "_meta"}" attribute which cares, so what you learned at this place before, is still valid.
sub init_valid_attributes
{
my $dbh = $_[0];
$dbh->SUPER::init_valid_attributes ();
$dbh->{foo_valid_attrs} = { ... };
$dbh->{foo_readonly_attrs} = { ... };
$dbh->{foo_meta} = "foo_tables";
return $dbh;
}
See updates at "User comfort" in DBI::DBD::SqlEngine::HowTo.
Testing
Now you should have your own DBD::File based driver. Was easy, wasn't it? But does it work well? Prove it by writing tests and remember
to use dbd_edit_mm_attribs from DBI::DBD to ensure testing even rare cases.
AUTHOR
This guide is written by Jens Rehsack. DBD::File is written by Jochen Wiedmann and Jeff Zucker.
The module DBD::File is currently maintained by
H.Merijn Brand < h.m.brand at xs4all.nl > and Jens Rehsack < rehsack at googlemail.com >
COPYRIGHT AND LICENSE
Copyright (C) 2010 by H.Merijn Brand & Jens Rehsack
All rights reserved.
You may freely distribute and/or modify this module under the terms of either the GNU General Public License (GPL) or the Artistic License,
as specified in the Perl README file.
perl v5.18.2 2013-04-04 DBD::File::HowTo(3)