ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/PApp-SQL/SQL.pm
(Generate patch)

Comparing PApp-SQL/SQL.pm (file contents):
Revision 1.33 by root, Thu Sep 1 08:57:52 2005 UTC vs.
Revision 1.37 by root, Sat Jan 19 07:38:52 2008 UTC

8 8
9 my $st = sql_exec $DBH, "select ... where a = ?", $a; 9 my $st = sql_exec $DBH, "select ... where a = ?", $a;
10 10
11 local $DBH = <database handle>; 11 local $DBH = <database handle>;
12 my $st = sql_exec \my($bind_a, $bind_b), "select a,b ..."; 12 my $st = sql_exec \my($bind_a, $bind_b), "select a,b ...";
13 my $st = sql_insertid 13 my $id = sql_insertid
14 sql_exec "insert into ... values (?, ?)", $v1, $v2; 14 sql_exec "insert into ... values (?, ?)", $v1, $v2;
15 my $a = sql_fetch "select a from ..."; 15 my $a = sql_fetch "select a from ...";
16 sql_fetch \my($a, $b), "select a,b ..."; 16 sql_fetch \my($a, $b), "select a,b ...";
17 17
18 sql_exists "table where name like 'a%'" 18 sql_exists "table where name like 'a%'"
44use DBI (); 44use DBI ();
45 45
46BEGIN { 46BEGIN {
47 use base qw(Exporter DynaLoader); 47 use base qw(Exporter DynaLoader);
48 48
49 $VERSION = '1.0'; 49 $VERSION = '1.03';
50 @EXPORT = qw( 50 @EXPORT = qw(
51 sql_exec sql_fetch sql_fetchall sql_exists sql_insertid $sql_exec 51 sql_exec sql_fetch sql_fetchall sql_exists sql_insertid $sql_exec
52 sql_uexec sql_ufetch sql_ufetchall sql_uexists 52 sql_uexec sql_ufetch sql_ufetchall sql_uexists
53 ); 53 );
54 @EXPORT_OK = qw( 54 @EXPORT_OK = qw(
299 299
300 mysql: first C<AUTO_INCREMENT> column set to NULL 300 mysql: first C<AUTO_INCREMENT> column set to NULL
301 postgres: C<oid> column (is there a way to get the last SERIAL?) 301 postgres: C<oid> column (is there a way to get the last SERIAL?)
302 sybase: C<IDENTITY> column of the last insert (slow) 302 sybase: C<IDENTITY> column of the last insert (slow)
303 informix: C<SERIAL> or C<SERIAL8> column of the last insert 303 informix: C<SERIAL> or C<SERIAL8> column of the last insert
304 sqlite: C<last_insert_rowid()>
304 305
305Except for sybase, this does not require a server access. 306Except for sybase, this does not require a server access.
306 307
307=cut 308=cut
308 309
313 314
314 $driver eq "mysql" and return $sth->{mysql_insertid}; 315 $driver eq "mysql" and return $sth->{mysql_insertid};
315 $driver eq "Pg" and return $sth->{pg_oid_status}; 316 $driver eq "Pg" and return $sth->{pg_oid_status};
316 $driver eq "Sybase" and return sql_fetch($dbh, 'SELECT @@IDENTITY'); 317 $driver eq "Sybase" and return sql_fetch($dbh, 'SELECT @@IDENTITY');
317 $driver eq "Informix" and return $sth->{ix_sqlerrd}[1]; 318 $driver eq "Informix" and return $sth->{ix_sqlerrd}[1];
319 $driver eq "SQLite" and return sql_fetch($dbh, 'SELECT last_insert_rowid ()');
318 320
319 die "sql_insertid does not spport the dbd driver '$driver', please see PApp::SQL::sql_insertid"; 321 die "sql_insertid does not spport the dbd driver '$driver', please see PApp::SQL::sql_insertid";
320} 322}
321 323
322=item [old-size] = cachesize [new-size] 324=item [old-size] = cachesize [new-size]
406 408
407sub checked_dbh($) { 409sub checked_dbh($) {
408 my $dbh = $dbcache{$_[0][0]}; 410 my $dbh = $dbcache{$_[0][0]};
409 $dbh && $dbh->ping 411 $dbh && $dbh->ping
410 ? $dbh 412 ? $dbh
411 : PApp::SQL::connect_cached((split /\x00/, $_[0][0]), $_[0][1], $_[0][2]); 413 : PApp::SQL::connect_cached((split /\x00/, $_[0][0], 4), $_[0][1], $_[0][2]);
412} 414}
413 415
414=item $db->dsn 416=item $db->dsn
415 417
416Return the DSN (L<DBI>) fo the database object (e.g. for error messages). 418Return the DSN (L<DBI>) fo the database object (e.g. for error messages).

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines