Hi,
I have a problem,

Table Person existed with
        Vorname, Nachname, Ort
        Thomas   Rohn      Hamburg
OK

Code:
#C:\Daten\tr> testdb.pl  (Windows Programmaufruf)

#Compilerpragma strict um keine Fehler zu machen
#Einbinden des DBI-Moduls
use strict;
use DBI;

#Attribute f� rDBI->connect(), Unterdr�ckung der automatischen Fehlerbehandlun
my %attr =
        (
        PrintError => 1,        #Ausgabe von Fehlermeldungen �ber warn()
        RaiseError => 0,        #Keine Fehlerbehandlung durch Aufruf von die()
        );

#Entferne eventuel vorhandene Protokolldateien
unlink 'dbitrace.log' if -e 'dbitrace.log';

#Ein String mit Sonderzeichen (zum Test noch ohne Sonderzeichen)
my $string = "Thomas";

#Data Source Name = Parameter f�r Verbindungsaufbau 
#(DBI:Treiber:Datenbank-Name[:Host-Name:Port-Nummer des Datenbankservers])
my ( @row,);
my $dsn = 'DBI:ODBC:TEST2';

#Verbinden mit der SAP DB, �bergabe DSN als Argument, Benutzer mit Password, 
#Fehlerbehandlung
my $dbh = DBI->connect( $dsn, 'DBA','DBA', \%attr )
        or die "Error connecting to my $dsn: $DBI::errstr \n";

#Konvertierung des einzuf�genden Strings
my $quoteString = $dbh->quote( $string );

#Setze den Protokollierungsgrad 4 (h�chste) und rufe prepare() auf
DBI->trace(2, 'dbitrace.log' );
my $sth = doPrepare();

#----------------------------------------------------------------------------------------
#SQL Abfrage zur Ausf�hrung vorbereiten, konvertierte String wird mit eingebaut
#SQL Abfrage ausf�hren
#----------------------------------------------------------------------------------------
sub doPrepare
{
        print "Vorbereitung und Ausfuehrung einer Abfrage\n";
#       print $quoteString."\n";
        my $sth = $dbh->prepare( "SELECT * FROM PERSON" )
                or die "Error preperation: ", $dbh->errstr(), "\n";
#               or die "Error preperation to my $dsn: $dbh::errstr \n";
        $sth->execute()
                or die "Error execute: ", $sth->errstr(), "\n";
        return $sth;

while ( @row = $sth->fetchrow_arrayref() )
        {
        print "Datenzeile: @row\n";
        }
        warn " Error in fetchrow_arrayref(): ", $sth->errstr(), "\n"
                if $sth->err();
}

#----------------------------------------------------------------------------------------
# Abmelden von der Datenbank oder Fehler
#----------------------------------------------------------------------------------------
$dbh->disconnect or warn "Error with the connecting: ", $dbh->errstr(), "\n";

exit;



ERROR Message:
Vorbereitung und Ausfuehrung einer Abfrage
DBD::ODBC::db prepare failed: [SAP AG][SQLOD32 DLL][SAP DB]Syntax error or acces
s violation;-3008 POS(10) Invalid keyword or missing delimiter. (SQL-42000)(DBD:
 st_prepare/SQLPrepare err=-1) at C:\Daten\tr\select.pl line 44.
Error preperation: [SAP AG][SQLOD32 DLL][SAP DB]Syntax error or access violation
;-3008 POS(10) Invalid keyword or missing delimiter. (SQL-42000)(DBD: st_prepare
/SQLPrepare err=-1)


Does someone have an executable program in Perl as example??

MfG Thomas

_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to