Ich habe ein Perl-Skript, das ich geschrieben habe und das mit Oracle verbindet. Das Skript funktioniert perfekt auf meinem Computer mit PERL64 installiert. Ich habe versucht, dieses Skript mit ActiveState PerlApp in eine EXE zu verwandeln. Auch hier funktioniert es perfekt auf meiner Maschine. Sobald sich die ausführbare Datei auf einem Computer befindet, der kein Perl enthält, fehlen DLLs, die für die Verbindung mit Oracle erforderlich sind.Perl-Skript, kompiliert als ausführbare Windows-Datei, stellt keine Verbindung zu Oracle her
use DBI;
# CONFIG VARIABLES
our $database = "database.app.net";
our $host = "server.app.net";
our $port = "1522";
our $user = "SVC_app";
our $pw = 'Password';
# DATA SOURCE NAME
our $dsn = "dbi:Oracle:$host:$port/$database";
# PERL DBI CONNECT
our $connect = DBI->connect($dsn, $user, $pw);
# PREPARE THE QUERY
our $query = 'SELECT Blah FROM database."table" where "blah" = ?';
our $query_handle = $connect->prepare($query);
# EXECUTE THE QUERY
$query_handle->execute($value);
# BIND TABLE COLUMNS TO VARIABLES
$query_handle->bind_columns(undef, \$return);
# LOOP THROUGH RESULTS
while($query_handle->fetch()) {
#print "$return";
}
Der Fehler, den ich erhalten ist:
nicht 'auto/DBD/Oracle/Oracle.dll' für Modul DBD :: Oracle laden kann: load_file: Das angegebene Modul konnte nicht gefunden werden auf /DynaLoader.pm Linie 224.
Vielen Dank im Voraus
Ich habe noch nie PerlApp verwendet, aber [die Dokumente] (http://docs.activestate.com/pdk/6.0/PerlApp.html#perlapp__2d_2dbind_file) schlagen vor, dass Sie möglicherweise die Option '--bind' verwenden können um zusätzliche DLLs hinzuzufügen. Ich bin mir nicht sicher, ob Sie dann Code benötigen, um sie zu laden oder ob sie automatisch gefunden werden. –
Ich habe versucht, die Option binden, scheint es, um die DLL enthalten und werfen Sie es in das Temp-Verzeichnis. Aber die App weiß nicht, dass es da ist. –