Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SPOPS::DBI::InterBase(User Contributed Perl DocumentatSPOPS::DBI::InterBase(3)

NAME
       SPOPS::DBI::InterBase --	InterBase-specific routines for	the SPOPS::DBI

SYNOPSIS
	# In your configuration:

	'myspops' => {
	    'isa' => [ qw/ SPOPS::DBI::InterBase SPOPS::DBI / ],

	    # If you use a generator to	create unique keys, set
	    # increment_field to a true	value...

	    'increment_field' => 1,

	    # and set 'sequence_name' to the name of the generator

	    'sequence_name'   => 'mygen',

	    # ...optionally, you can also specify the increment	for the
	    # generated	values (defaults to 1 if not specified)

	    'sequence_increment' => 4,
	    ...
	},

DESCRIPTION
       This just implements some InterBase-specific routines so	we can
       abstract	them out.

       The main	one is to be able to utilize an	existing "generator" object
       for creating unique key values. We cannot use the same pattern as with
       Oracle/PostgreSQL sequences because there does not seem to be a way to
       retrieve	the current (rather than next) value from a "generator"
       object.

       Therefore, we need to retrieve the next value from the database and use
       that in the INSERT. (This happens in the	background, no worry to	you.)

       How to implement	this:

	CREATE TABLE my_table (
	  id int not null primary key,
	  ...
	);

	CREATE GENERATOR my_generator;

       You must	to let this module know	if you are using this option by
       setting in your class configuration the key 'increment_field' to	a true
       value and also setting key 'sequence_name' to the name of your
       generator.

	$spops = {
	   myobj => {
	      class => 'My::Object',
	      isa   => [ qw/ SPOPS::DBI::InterBase  SPOPS::DBI / ],
	      increment_field => 1,
	      sequence_name => 'my_generator',
	      ...
	   },
	};

       The key 'sequence_name' rather than 'generator_name' is used to be
       compatible with other databases.

METHODS
       sql_current_date()

       Returns 'CURRENT_TIMESTAMP', used in InterBase to return	the value for
       right now.

       TODO: See how this is used and whether we need to add another methods
       for executing this as a standalone statement ('SELECT
       CURRENT_TIMESTAMP' on its own does not work.)

       sql_case_insensitive()

       Returns 'LIKE' right now, even though this does not seem	to be correct.

       TODO: See if there is a separate	operator for case-insensitive
       matching.

       sql_quote( $value, $data_type, [	$db_handle ] )

       DBD::InterBase uses the type of a field if you are quoting values to
       put into	a statement, so	we override the	default	'sql_quote' from
       SPOPS::SQLInterface to ensure the type of the field is used in the
       DBI->quote call.

       The $data_type should correspond	to one of the DBI datatypes (see the
       file 'dbi_sql.h'	in your	Perl library tree for more info). If the DBI
       database	handle $db_handle is not passed	in, we try to find it with the
       class method "global_datasource_handle()".

       pre_fetch_id( \%params )

       If 'increment_field' is not set we do not fetch an ID. If
       'sequence_name' is not also set we do not fetch an ID. Otherwise	we
       execute a statement like:

	SELECT GEN_ID( $name, $increment ) FROM	RDB$DATABASE

       Where:

	 $name	    - Value of 'sequence_name'
	 $increment - Either 'sequence_increment' or 1

       post_fetch_id( \%params )

       Not used.

BUGS
       Minimally tested, potentially with buggy	InterBase knowledge.

TO DO
       Nothing known.

SEE ALSO
       DBD::InterBase

       DBI

COPYRIGHT
       Copyright (c) 2002-2004 intes.net, inc..	All rights reserved.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

AUTHORS
       Chris Winters  <chris@cwinters.com>

perl v5.32.1			  2004-06-02	      SPOPS::DBI::InterBase(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | BUGS | TO DO | SEE ALSO | COPYRIGHT | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SPOPS::DBI::InterBase&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help