Schrift
[thread]10497[/thread]

Brauche Hilfe SQL-Datenbank auf Server connecten



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
leissi
 2007-10-01 17:21
#100179 #100179
User since
2005-07-06
84 Artikel
BenutzerIn
[default_avatar]
Hallo,

möchte eine SQL Datenbank auf einem Server connecten, bekomme aber diesen Fehler. Obwohl ich das erforderliche Modul DBI runtergeladen habe.

H:\>D:\Perl\DB_ABFRAGE\TEST_2.pl
Can't connect to data source 'jdbc:mercury:sqlserver://sv002345:1433' because I can't work out what driver to use (it do
esn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at D:\Perl\DB_ABFRAGE\TEST_2.pl line
67

Danke
renee
 2007-10-01 17:27
#100180 #100180
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Jo, da wäre etwas Code mal ganz interessant...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
leissi
 2007-10-01 17:41
#100181 #100181
User since
2005-07-06
84 Artikel
BenutzerIn
[default_avatar]
Hi, hoffe das hilft:
Code (perl): (dl )
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
#!/usr/bin/perl -w

use strict;
use warnings;
use time::localtime;
use Data::Dumper;
use File::Find;
use POSIX;
use Net::SMTP;
use CGI;
use DBI;
use DBD::ODBC;
use SQL::Statement;
 

    


##############################################################################################

################Anlegen der Prüfdatei Programm Status: In der Datei werden die einzelnen Programmabläufe dokumentiert ob OK oder NOK
     my $ausgabe_Datei1 = 'D:\\Perl\\DB_ABFRAGE\\Status_Programm.txt';
     open(LogDatei1,'>D:\\Perl\\DB_ABFRAGE\\Status_Programm.txt') or die "Kann Log Datei nicht anlegen : $!";
    
     my $tm  = strftime ("%H:%M:%S  %d/%m/%Y" , localtime);
     print LogDatei1 "Start des Programms TDDOUBLE.pl $tm \n\n\n";
     
##########################################################################################
# ####################################################
# parameter und funktion fuer das script einlesen 
######################################################
#Übergabe der globalen Variablen aus der main.ini Datei
     my $parameterFile = "D:\\perl\\DB_ABFRAGE\\Main.ini";  
     print LogDatei1 "Die Main.ini konnte eingelesen werden $tm \n\n\n";                                                                                                                             
     open(IN, $parameterFile) || die print LogDatei1 "Paramterfile $parameterFile nicht gefunden! Abbruch des Programms, da Parameter nicht geladen werden konnten!";  
     my @par = <IN>;                                                                    
#Übergabe der Variablen aus der Main.ini     
my $ausgabe_Datei2; 
my $Schreiben1;

                                                             
     eval( join("\n", @par) );   


##############################################################################################

################Anlegen der Prüfdatei Programm Status: In der Datei werden die einzelnen Programmabläufe dokumentiert ob OK oder NOK
     my $Ergebnis1 = $ausgabe_Datei2;
     open(LogDatei2,$Schreiben1) or die  print LogDatei1 "Kann die Ausgabedatei $ausgabe_Datei2 nicht anlegen : $!";
    
      $tm  = strftime ("%H:%M:%S  %d/%m/%Y" , localtime);
     print LogDatei2 "Ergebnis der ABFRAGE doppelte Mailadressen $tm \n\n\n";
     print LogDatei1 "Die Ausgabedatei1 $Schreiben1 konnte angelegt werden $tm \n\n\n";
##########################################################################################
#Connection SQL-Datenbank
#
# $dbh = DBI->connect("DBI:mSQL:database=$db;host=$host",
#                      undef, undef, {RaiseError => 1});
###############################################################################
# Globals
#$driver = "mSQL"; # or "mSQL1";

my $MS_SQL_SERVER_USER     = 'XXXX';
my $MS_SQL_SERVER_PASSWORD = 'XXXXX';
my $MS_SQL_SERVER_HOST     = 'jdbc:mercury:sqlserver://SERVER:HOST';
#jdbc:mercury:sqlserver:
my $dbh = DBI->connect($MS_SQL_SERVER_HOST, $MS_SQL_SERVER_USER, $MS_SQL_SERVER_PASSWORD) or die "Fehler bei Datenbankverbindung: $!";

#my $dbh;                       # database handle
my $sth;                        # statement handle
my $table = 'USER';
my $table_ref;
print LogDatei1 "Connect is OK";
        
        # Fehler werden automatisch von DBI (MODUL VON PERL) behandelt          
my %error_handling_attribs = (
                PrintError => '1',  # report errorrs via warn()
                RaiseError => '1',  # report errors via die()
        );
###############################################################################

Gruss Leissi
leissi
 2007-10-01 17:59
#100182 #100182
User since
2005-07-06
84 Artikel
BenutzerIn
[default_avatar]
Hallo, habe mal per kleines Script die Treiber abgefragt
Code (perl): (dl )
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
H:\>D:\Perl\DB_ABFRAGE\Treiber.pl
DBM
DBI:DBM:f_dir=.
DBI:DBM:f_dir=Apps
DBI:DBM:f_dir=Daten
DBI:DBM:f_dir=Eigene Dateien
DBI:DBM:f_dir=INSTALL_TESTER_VS2005
DBI:DBM:f_dir=mail
DBI:DBM:f_dir=Memowin
DBI:DBM:f_dir=My Documents
DBI:DBM:f_dir=Outlook
DBI:DBM:f_dir=post
DBI:DBM:f_dir=Program Files
DBI:DBM:f_dir=Q
DBI:DBM:f_dir=WINDOWS

ExampleP
dbi:ExampleP:dir=.

File
DBI:File:f_dir=.
DBI:File:f_dir=Apps
DBI:File:f_dir=Daten
DBI:File:f_dir=Eigene Dateien
DBI:File:f_dir=INSTALL_TESTER_VS2005
DBI:File:f_dir=mail
DBI:File:f_dir=Memowin
DBI:File:f_dir=My Documents
DBI:File:f_dir=Outlook
DBI:File:f_dir=post
DBI:File:f_dir=Program Files
DBI:File:f_dir=Q
DBI:File:f_dir=WINDOWS

Gofer

ODBC
DBI:ODBC:MS Access Database
DBI:ODBC:Excel Files
DBI:ODBC:dBASE Files
DBI:ODBC:Visual FoxPro Tables
DBI:ODBC:Visual FoxPro Database
DBI:ODBC:doms.mdb
DBI:ODBC:Xtreme Sample Database 2005
DBI:ODBC:QT_Flight32

Proxy
install_driver(Proxy) failed: Can't locate RPC/PlClient.pm in @INC (@INC contains: C:/Program Files/Perl/lib C:/Program
Files/Perl/site/lib .) at C:/Program Files/Perl/site/lib/DBD/Proxy.pm line 29.
BEGIN failed--compilation aborted at C:/Program Files/Perl/site/lib/DBD/Proxy.pm line 29.
Compilation failed in require at (eval 17) line 3.
Perhaps a module that DBD::Proxy requires hasn't been fully installed
 at D:\Perl\DB_ABFRAGE\Treiber.pl line 13

Vielleicht hilft das.
Danke
Leissi
nepos
 2007-10-01 18:21
#100183 #100183
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Soweit ich das sehe, baust du den String für das DBI->connect() falsch zusammen. DBI weiss nicht, welchen Treiber es benutzen soll. Nachdem du anscheinen mit einem MS SQLServer sprechen willst, solltest du wohl CPAN:DBD::ODBC als Treiber benutzen. Damit habe ich selbst aber noch nicht gearbeitet und kann dir daher leider nicht sagen, wie das ganze genau aussehen muss. Eventuell schaust du mal in der Dokumentation zu CPAN:DBD::ODBC, wie der String aussehen muss.
leissi
 2007-10-01 19:11
#100186 #100186
User since
2005-07-06
84 Artikel
BenutzerIn
[default_avatar]
Hallo Danke erstmal jetzt komm ich schon etwas weiter.
Code: (dl )
1
2
3
DBI connect('$MS_SQL_SERVER_HOST','sa',...) failed: [Microsoft][ODBC Driver Manager] Data source name not found and no d
efault driver specified (SQL-IM002)(DBD: db_login/SQLConnect err=-1) at D:\Perl\DB_ABFRAGE\TEST_2.pl line 66
Fehler bei Datenbankverbindung: at D:\Perl\DB_ABFRAGE\TEST_2.pl line 66, <IN> line 16.


An der Stelle des Connecting habe ich folgendes geaendert:
Code (perl): (dl )
my $dbh = DBI->connect('dbi:ODBC:$MS_SQL_SERVER_HOST','sa', '271imda') or die "Fehler bei Datenbankverbindung: $!";


Jetzt komm ich bis zum Login wie es aussieht oder irre ich mich?
Gruss
Leissi
Ronnie
 2007-10-01 19:29
#100187 #100187
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Probier es mal mit " statt ' - dann klappt es auch mit der Variablen $MS_SQL_SERVER_HOST:
Code (perl): (dl )
my $dbh = DBI->connect("dbi:ODBC:$MS_SQL_SERVER_HOST",'sa', '271imda') or die "Fehler bei Datenbankverbindung: $!";
pq
 2007-10-01 19:44
#100189 #100189
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
nebenbei: "Brauche Hilfe" als Titel ist wahnsinnig ungünstig - glaubst du, irgendwer hier braucht
keine hilfe, wenn er eine frage stellt? stell dir mal vor, jeder würde seinen thread so nennen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
leissi
 2007-10-02 10:24
#100205 #100205
User since
2005-07-06
84 Artikel
BenutzerIn
[default_avatar]
Hallo,

erstmal pq sorry Du hast vollkommen recht. Werde fürs nächste mich bessern.
Problem habe ich nun erkannt und gelöst. Das Problem lag darin das ich im ODBC Manager des Computers den SQL Server eintragen musste, danach wurde von mir ein Name für diesen vergeben und entsprechende Einstellungen noch vorgenommen. Siehe da nach Abfrage der DBI Treiber wurde meiner mit angezeigt:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
ODBC
DBI:ODBC:MS Access Databa
DBI:ODBC:Excel Files
DBI:ODBC:dBASE Files
DBI:ODBC:Visual FoxPro Ta
DBI:ODBC:Visual FoxPro Da
DBI:ODBC:doms.mdb
DBI:ODBC:Xtreme Sample Da
DBI:ODBC:QT_Flight32
DBI:ODBC:TESTDIRECTOR_DB


und danach konnte ich diesen im Perlscript so einbauen:
Code (perl): (dl )
my $dbh = DBI->connect('dbi:ODBC:TESTDIRECTOR_DB','sa', '271imda') or die "Fehler bei Datenbankverbindung: $!";

und auch verwenden und die CONNECTION funktionierte!

Also vielen Dank!
Leissi
nepos
 2007-10-02 12:48
#100211 #100211
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich hoffe mal, das ist nicht dein Originalpasswort für den DB-Admin ;)

Freut mich, dass du es geschafft hast :)
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2007-10-01 17:21.