Neu Verbindung: Java - SQL Server der Wawi

idjgxd

Neues Mitglied
29. Mai 2019
6
0
Hallo zusammen,

ich bin ziemlich neu im Bereich JTL Wawi und habe eine Java-Anwendung geschrieben, die auf meine Datenbank zugreifen soll. Leider gelingt es mir nicht, eine Verbindung erfolgreich herzustellen.

Hier ist mein Quellcode:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MySQLConnection{
private static Connection con = null;


private MySQLConnection(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // Datenbanktreiber für JDBC Schnittstellen laden.

// Verbindung zur JDBC-Datenbank herstellen.
con = DriverManager.getConnection("
jdbc:sqlserver://xxx:49960;" +
"databaseName=eazybusiness;integratedSecurity=true;");
);
} catch (ClassNotFoundException e) {
System.out.println("Treiber nicht gefunden");
} catch (SQLException e) {
System.out.println("Verbindung nicht moglich");
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
}
}
Mein Problem ist, dass ich mir unsicher bin, welchen Servernamen und welchen Port ich angeben muss. Wenn ich im Server Manager nachschaue, steht beim Servername „xxx\JTLWAWI“. Wenn ich versuche, den Server anzupingen, funktioniert es nicht. Gebe ich im cmd den Servernamen ohne \JTLWAWI ein, klappt es fehlerfrei. Heißt das, ich muss in Java als Servername auch ohne \JTLWAWI arbeiten?

Zum Port: Standard ist 1433. Da ich zwischenzeitlich zwei Datenbanken hatte, gehe ich aber davon aus, dass ich mit UDP 1434 arbeiten muss. Wenn ich wiederum in cmd nachsehe, welcher Port für sqlservr.exe zuständig ist, wird mir 49960 angezeigt.
Ich habe es übrigens auch mit telnet getestet; dort klappt es mit dem Servernamen ohne \JTLWAWI (wie oben beschrieben) und Port 49960. Aber nicht in Java.

Wie ich es drehe und wende, klappt die Verbindung aber nie...
Ich habe schon einiges ergoogelt, die Ports freigegeben, aber nichts hilft mir weiter. Vllt übersehe ich etwas? Wäre für jede Anregung dankbar!

Fehlermeldung im Output:
Verbindung nicht moglich
SQLException: Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'xxx', Port 49960. Fehler: 'Der Treiber hat eine unerwartete Antwort vor der Anmeldung erhalten. Überprüfen Sie die Verbindungseigenschaften, und stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird, die TCP/IP-Verbindungen am Port annimmt. Dieser Treiber kann nur mit SQL Server 2000 oder höher verwendet werden.'. ClientConnectionId:27c5b76d-a3ff-420b-b0c8-2696dd40153e
SQLState: 08S01
VendorError: 0
 

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
4.151
564
Arnsberg, Sauerland
Firma
Shopworker GmbH
Ich kann nur eine Mutmaßung anstellen: Stell mal einen festen Port für die Wawi-Datenbank ein und überprüfe ob TCP/IP für diese Datenbank aktiv ist.
Kommst du mit der Wawi an die Datenbank? Evtl. als Servername noch die IP nehmen ...
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.135
5
Wichtig: Du musst den Instanznamen (das \JTLWAWI) in der Verbindungszeichenfolge mit angeben!
Es müsste also "jdbc:sqlserver://xxx:49960\JTLWAWI;" sein...
 

darthvader

Aktives Mitglied
29. Juni 2014
56
10
wenn ich mich recht erinnere ist der Connect-String `jdbc:sqlserver://<servername>\<instancename>:<port>`

D.h. port und Instanzname müssen vertrauscht werden.
 

idjgxd

Neues Mitglied
29. Mai 2019
6
0
Stell mal einen festen Port für die Wawi-Datenbank ein und überprüfe ob TCP/IP für diese Datenbank aktiv ist.
Kommst du mit der Wawi an die Datenbank? Evtl. als Servername noch die IP nehmen ...

Momentan werden mir diese Ports für die Datenbank angezeigt. Bei den ersten beiden habe ich die Portnummer geändert und die Null bei TCP Dynamic Ports entfernt. Mache ich das richtig? Soll ich die anderen Felder genauso bearbeiten?
Die Verbindung zwischen Datenbank und Wawi funktioniert auf jeden Fall.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    36,2 KB · Aufrufe: 17
  • Unbenannt2.PNG
    Unbenannt2.PNG
    26 KB · Aufrufe: 17

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
4.151
564
Arnsberg, Sauerland
Firma
Shopworker GmbH
Momentan werden mir diese Ports für die Datenbank angezeigt. Bei den ersten beiden habe ich die Portnummer geändert und die Null bei TCP Dynamic Ports entfernt. Mache ich das richtig? Soll ich die anderen Felder genauso bearbeiten?
Die Verbindung zwischen Datenbank und Wawi funktioniert auf jeden Fall.

Hallo,

ich lasse immer die Dynamic Ports bei 0 und die TCP Ports leer
Ganz unten unter IPAll stelle ich unter TCP Port dann den individuellen Port, z.B. 45678 ein, das reicht ...
 

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
4.151
564
Arnsberg, Sauerland
Firma
Shopworker GmbH
Laut Microsoft Server Management Studio ist der Servername „xxx\JTLWAWI“ (siehe Anhang) und müsste der Instanzname nicht der Name der Datenbank sein? Also: „xxx\JTLWAWI\eazybusiness“?

Ich finde bei Microsoft folgende Information:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]]

würde in deinem Falle heißen:

jdbc:sqlserver://JENNIEGIRANFBB5\JTLWAWI:45678

Vorausgesetzt du setzt den Port auf 45678 und deine Wawi-Instanz heisst JTLWAWI
 
  • Gefällt mir
Reaktionen: idjgxd

idjgxd

Neues Mitglied
29. Mai 2019
6
0
jdbc:sqlserver://JENNIEGIRANFBB5\JTLWAWI:45678

Ich denke, ich habe das verstanden und korrekt umgesetzt. Zumindest wird nicht mehr angezeigt, dass die Verbindung nicht möglich ist. Wenn ich nun allerdings meine Abfrage durchführe, wird angezeigt:

com.microsoft.sqlserver.jdbc.SQLServerException: Es wurde kein Resultset von der Anweisung zurückgegeben.

Im MS SQL Management Studio funktioniert die Abfrage jedoch... Ist vllt doch die Verbindung fehlerhaft? Oder liegt es am Quellcode:

Statement query;
try {
query = con.createStatement();

String sql = "USE eazybusiness;";
query.executeQuery(sql);
// Tabelle anzeigen
sql = "SELECT kArtikel, fVKNetto, fUVP FROM tArtikel;";

ResultSet result = query.executeQuery(sql);

// Ergebnisstabelle durchforsten
while (result.next()) {
String kArt = result.getString("kArtikel");
String fVKNet = result.getString("fVKNetto");
String fUVP = result.getString("fUVP");
String info = kArt + ", " + fVKNet + ", " + fUVP;

System.out.println(info);
}
} catch (SQLException e) {
e.printStackTrace();
}
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    30,1 KB · Aufrufe: 10

IT-WEFA

Gut bekanntes Mitglied
3. April 2019
289
22

Hier ist dein Fehler
sql = "SELECT kArtikel, fVKNetto, fUVP FROM tArtikel;";
" ; " in deiner SQL muss raus!

mit welcher IDE arbeitest du ? Solltest sowas immer in ein Try - Catch ausführen!

Probier das mal

Code:
 String SQL = "SELECT * .... ";

        try {
            PreparedStatement pStmt = con.prepareStatement(SQL);
            ResultSet rs = pStmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString("ColumnName"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }


Versuch mit prepareStatement bzw executeStatement zu arbeiten.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Installation von Plugin PayPal Check-Out fehlgeschlagen, keine Verbindung zum Webshop Plugins für JTL-Shop 4
Keine APP oder API Verbindung möglich JTL-Wawi App 0
Neu Verbindung zu Shopify Connector (App) -> "Lizensdaten ungültig" Shopify-Connector 1
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu SQL Worker.tStatus - Bedeutung von nStatus? JTL Ameise - Eigene Exporte 2
Neu Suche Servicepartner für SQL-Abfrage Dienstleistung, Jobs und Ähnliches 2
Neu askJan | Neuer KI-Assistent für JTL-Wawi - schnelle, effiziente und transparente KI-Datenanalyse - ohne SQL! Dienstleistung, Jobs und Ähnliches 41
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Neu Wie lässt sich der Lieferstatus von Aufträgen per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 21
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 12
Neu JTL_DirectQuery - SQL Abfrage Anzahl der Pakete auf Versandliste (DPD) User helfen Usern - Fragen zu JTL-Wawi 4

Ähnliche Themen