This is sql.pl in view mode; [Download] [Up]
#
# @(#)sql.pl 1.1 6/24/92
#
sub sql {
local($db,$sql,$sep)=@_; # local copy parameters
$sep = '~' unless $sep; # provide default for sep
@res = (); # clear result array
&dbcmd($db,$sql); # pass sql to server
&dbsqlexec($db); # execute sql
while(&dbresults($db) != $NO_MORE_RESULTS) { # copy all results
while (@data = &dbnextrow($db1)) {
push(@res,join($sep,@data));
}
}
@res; # return the result array
}
# Message and error handlers.
sub sql_message_handler
{
local ($db, $message, $state, $severity, $text, $server, $procedure, $line)
= @_;
if ($severity > 0)
{
print ("Sybase message ", $message, ", Severity ", $severity,
", state ", $state);
print ("\nServer `", $server, "'") if defined ($server);
print ("\nProcedure `", $procedure, "'") if defined ($procedure);
print ("\nLine ", $line) if defined ($line);
print ("\n ", $text, "\n\n");
# &dbstrcpy returns the command buffer.
local ($lineno) = 1; #
foreach $row (split (/\n/, &dbstrcpy ($db)))
{
print (sprintf ("%5d", $lineno ++), "> ", $row, "\n");
}
}
elsif ($message == 0)
{
print ($text, "\n");
}
0;
}
sub sql_error_handler {
# Check the error code to see if we should report this.
if ($_[2] != &SYBESMSG) {
local ($db, $severity, $error, $os_error, $error_msg, $os_error_msg)
= @_;
print ("Sybase error: ", $error_msg, "\n");
print ("OS Error: ", $os_error_msg, "\n") if defined ($os_error_msg);
}
&INT_CANCEL;
}
if( defined(&dbmsghandle)) # Is this a modern version of sybperl? ;-)
{
&dbmsghandle ("sql_message_handler"); # Some user defined error handlers
&dberrhandle ("sql_error_handler");
}
1;
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.