Leser: 1
|< 1 2 >| | 16 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!c:/perl/bin/perl.exe
use strict;
# Module:
use DBI; # Zugriff auf die Oracle-DB
use DBD::Oracle; # Zugriff auf die Oracle-DB
use Net::FTP; # FTP-Up- & Download fuer Online-Server
# DB-connect Oracle
my $dbh = db_connect_oracle();
if ($dbh) {
print "Oracle-Datenbank-Connect erfolgt\n";
# SQL-Insert aus Oracle-DB bauen fuer Online-DB
read_oradb($dbh);
}
sub db_connect_oracle
{
[...]
}
sub read_oradb
{
my $localdir = "C:/XXX/download/";
my $t_spieler = "spieler";
(my $sql4 = $dbh->prepare(qq{SELECT * FROM $t_spieler})) || print "Database prepare statement not made: $DBI::errstr";
(my $result4 = $sql4->execute()) || print "Database execute not made: $DBI::errstr";
open(DATA_SP, ">".$localdir.'spieler.sql') || print "kann file nicht oeffnen\n";
print DATA_SP "DELETE FROM $t_spieler;\n";
while (my @spieler = $sql4->fetchrow_array) {
for (my $i = 0; $i < 3; $i++) {
# leerzeichen am Anfang und Ende entfernen
chomp($spieler[$i]);
$spieler[$i] =~ s/^\s+//;
$spieler[$i] =~ s/\s+$//;
# zeilenumbrueche aus Feldern entfernen
$spieler[$i] =~ y/\cJ\cM//d;
# leere Werte durch NULL ersetzen
if ($spieler[$i] eq '' || $spieler[$i] eq 'NULL') {
$spieler[$i] = 'NULL';
}
# Falls Zahlen mit Nachkommastellen auftreten, Komma durch Punkt ersetzen
my $muster = '^(\d+)\,(\d+)$';
if ($spieler[$i] =~ /$muster/) {  
; $spieler[$i] = $1.'.'.$2;
}
}
# schreibe Insert-Zeile in die SQL-Datei
print DATA_SP "INSERT INTO ".$t_spieler." (SPNR, KDNR, BEMERKUNGEN) VALUES (".$spieler[0].",".$spieler[1].",'".$spieler[2]."');\n";
}
$sql4->finish();
close(DATA_SP);
my $check_sp = ftp_transfer("spieler.sql");
# die anderen 4 Dateien spar ich mir jetzt, Code ist
# ungefähr identisch, und o.g. Fehler treten auch fuer
# diese Datei auf.
sub ftp_transfer
{
my $quelle = $_[0];
my $ziel = $quelle;
my $server="XXX.XXX.XXX.XX"; # Servername FTP
my $username="XXX"; # Benutzername auf dem FTP-Server
my $password="XXX"; # Passwort für den Benutzer
my $localdir = "C:/XXX/download/";
my $serverdir_up = "/usr/home/XXX/XXX/upload/";
my $serverdir_down = "/usr/home/XXX/XXX/download/";
my $ftp=Net::FTP->new($server, Debug => 1, Passive => 1) || print "Keine Verbindung mit $server - Fehler: ".$!." \n";
$ftp->login($username, $password) || print "Fehler beim einloggen - Fehler: ".$!." \n";
# Ins lokale Verzeichnis wechseln
chdir($localdir) || print "kann nicht ins Verzeichnis wechseln!\n";
# laedt die SQL-Datei herauf
$ftp->cwd("XXX");
$ftp->cwd("upload");
$ftp->ascii;
$ftp->put($localdir.$quelle, $ziel) || print "Fehler beim upload von ".$localdir.$quelle." auf ". $server." - ".$serverdir_up." - Fehler: ".$!." \n";
$ftp->quit();
if (! $!) {
return "true";
} else {
return "false";
}
}
$ftp->ascii;
$ftp->ascii;
|< 1 2 >| | 16 Einträge, 2 Seiten |