Problem mit Suchen Statement Java und MS-SQL-Server

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hab ein problem mit einem suchen statement in einem java programm dass einen artikel in einer tabelle einer ms-sql-server db suchen soll.

so schaut das prepared statement im java quellcode aus:

psArtikelSuchen = c.prepareStatement("SELECT Nr, Matchcode, Bez1, Bez2, Einheit, Gewicht, Verkaufspreis "+
"FROM ArtikelJava WHERE Nr LIKE ? AND Matchcode LIKE ? AND Bez1 LIKE ? AND "+
"Bez2 LIKE ? AND Einheit LIKE ? AND Gewicht LIKE ? AND Verkaufspreis LIKE ?");

das problem dürfte das LIKE sein. scheinbar funktioniert das in ms-sql-server nicht so wie in ms-access. hat jemand eine ahnung wie man den LIKE befehl im ms-sql-server verwendet bzw. ob man dort anstelle von LIKE einen anderen befehl verwendet?
 
G

Guest

Gast
sorry vielleicht bin ich zu doof dazu, kann unter der ms-sql-server online hilfe nix unter select-syntax finden.
kannst mir vielleicht ein wenig auf die sprünge helfen?
 

Bleiglanz

Gesperrter Benutzer
"FROM ArtikelJava WHERE Nr LIKE ? AND Matchcode LIKE ? AND Bez1 LIKE ? AND "+
"Bez2 LIKE ? AND Einheit LIKE ? AND Gewicht LIKE ? AND Verkaufspreis LIKE ?");

dir schon klar, dass ? in prepared Statements eine spezielle Bedeutung haben?

einfach mit setString(index,'%wildcardsuche%') setzen?
 
G

Guest

Gast
ja das ist mir schon klar:

so siehts bei mir aus:

Code:
 public Vector ArtikelSuchen(Artikel a)
    {
        Vector artikel = a.toVector();
        Vector gefundeneArtikel = new Vector();
        try
        {         
            psArtikelSuchen.setString(1, a.getNummer());
            psArtikelSuchen.setString(2, a.getMatchcode());
            psArtikelSuchen.setString(3, a.getBezeichnung1());
            psArtikelSuchen.setString(4, a.getBezeichnung2());
            psArtikelSuchen.setString(5, a.getEinheit());
            psArtikelSuchen.setString(6, a.getGewicht());
            psArtikelSuchen.setString(7, a.getVerkaufspreis());            
            
            ResultSet rs = psArtikelSuchen.executeQuery();
    	 
    	    if (rs != null)
    	    {
    	        while (rs.next())
    	        {
    	            processResultSet(gefundeneArtikel, rs);
    	        }
    	    }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return gefundeneArtikel;       
    }

nur was hat das mit % auf sich? in access brauch ich das nicht, brauch ich das bei ms-sql-server?
 

KSG9|sebastian

Top Contributor
was ich weis steht % für ein beliebiges zeichen, wie der '*' in windows.

ich hab zwar net wirlich ahnung von mssql, aber wenn du per setString nach nem String suchst, dann reicht es in deinem sql, wenn du
"SELECT * FROM tabelle" machst, da -so wie ich es verstehe- nur Datensätze zurückgegeben werden, die dem setString entsprechen
 

Bleiglanz

Gesperrter Benutzer
die Frage ist, welche Fehlermeldung kommt

was steht in den diversen Strings

psArtikelSuchen.setString(6, a.getGewicht());
psArtikelSuchen.setString(7, a.getVerkaufspreis());

sind Gewicht und Verkaufpreis wirklich CHAR-Spalten? Der SQL Server ist vielleicht nicht mehr so grosszügig beim Konvertieren
 
G

Guest

Gast
fehlermeldung bekomm ich eben keine, nur bekomm ich auch keine ergebnis zurückgeliefert, also die suche liefert leere spalten.

im access funktioniert die suche. also ich glaub dass es nicht an den datentypen vom ms-sql server liegt, denn mit dem prepared statement neuer artikel funktioniert alles auch mit ms-sql server perfekt, so schauts aus:

Code:
psNeuerArtikel = c.prepareStatement("INSERT INTO ArtikelJava Values(?, ?, ?, ?, ?, ?, ?)");

 public int neuerArtikel(Artikel a)
    {
        try
        {         
            psNeuerArtikel.setString(1, a.getNummer());
            psNeuerArtikel.setString(2, a.getMatchcode());
            psNeuerArtikel.setString(3, a.getBezeichnung1());
            psNeuerArtikel.setString(4, a.getBezeichnung2());
            psNeuerArtikel.setString(5, a.getEinheit());
            psNeuerArtikel.setString(6, a.getGewicht());
            psNeuerArtikel.setString(7, a.getVerkaufspreis());
            return psNeuerArtikel.executeUpdate();
        }
        catch (SQLException e)
        {
            e.printStackTrace();
            return -1;
        }
    }
 

Bleiglanz

Gesperrter Benutzer
1. sind alle Spalten CHAR oder VARCHAR

2. sind alle Spalten NOT NULL

3. verwendest du Wildcards?

wenn in der Spalte eine NULL ist, dann liefert LIKE 'irgendwas' false

wenn irgendwas drin steht, dann liefert LIKE '' auch false

LIKE ohne Wildcards ist wie =, und die Syntax weicht von ACCESS ab, also % statt *
 
G

Guest

Gast
ich glaub das problem liegt bei den wildcards dass ich diese nicht bzw. nicht richtig verwende.

so hab ichs definiert, jedoch weiß ich nicht genau wie ich die wildcards dann in meinem prepared statement fürs
suchen verwenden soll. kannst mir da weiterhelfen?

Code:
private void actionSuchen(ActionEvent e)
    {
        String arNr = checkString(tfArNr.getText());
        String arMatch = checkString(tfArMatch.getText());
        String arBezeichnung1 = checkString(tfArBez1.getText());
        String arBezeichnung2 = checkString(tfArBez2.getText());
        String arEinheit = checkString(tfArEinheit.getText());
        String arGewicht = checkString(tfArGewicht.getText());
        String arPreis = checkString(tfArPreis.getText());
        Artikel a = new Artikel();
        a.setNummer(arNr);
        a.setMatchcode(arMatch);
        a.setBezeichnung1(arBezeichnung1);
        a.setBezeichnung2(arBezeichnung2);
        a.setEinheit(arEinheit);
        a.setGewicht(arGewicht);
        a.setVerkaufspreis(arPreis);
        Vector data = dbm.ArtikelSuchen(a);
        dm.setDataVector(data, dbm.getArtikelSpaltenNamen());
        setVisible(false);
        dispose();
    }

  private String checkString(String s)
    {
        if( s.trim().length() == 0)
        {
            return "%";
        }
        else return s;
    }


edit KSG9|plak: code-tags
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
D Problem mit COLUMN_IDENTIFIERS Datenbankprogrammierung 8
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3
S CURRENT_DATE problem Datenbankprogrammierung 2
M Problem mt JPA Id-Generators Datenbankprogrammierung 18
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
M MySQL SQL Abfrage Problem Datenbankprogrammierung 6
R MS-SQL Express Login-Problem Datenbankprogrammierung 8
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Problem mit HQL Syntax Datenbankprogrammierung 5
K Db4o Delete Problem Datenbankprogrammierung 11
Mike90 Deadlock/Lock Problem Datenbankprogrammierung 4
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
J Problem bei Boolean in PreparedStatement Datenbankprogrammierung 5
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
C Problem mit SQL-Abfrage Datenbankprogrammierung 5
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
S Oracle Problem mit PreparedStatement.setString(1,"str") Datenbankprogrammierung 10
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
C Hibernate Property-Problem Datenbankprogrammierung 5
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
M Problem mit JPA - OneToMany-Relation Datenbankprogrammierung 3
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
S JPA OptimisticLocking Problem Datenbankprogrammierung 11
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
I Problem mit ResultSet Datenbankprogrammierung 2
L Excel in MySQL importieren Problem Datenbankprogrammierung 5
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
T Problem beim schreiben von daten Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
I MySQL MySQL – Proxy Problem Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C firebird problem Datenbankprogrammierung 5
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
K SQL Problem mit Date Datenbankprogrammierung 3
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
J sql abfrage ... Problem mit Datumswert Datenbankprogrammierung 3
G MySQL Connection Problem Datenbankprogrammierung 3
O MySQL Problem mit Umlauten?! Datenbankprogrammierung 2
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
D MySQL Problem beim einfügen von Double-Zahlen Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
W Verständnis-Problem JPA Grundlagen Datenbankprogrammierung 5
M Problem Array in BLOB-Feld in DerbyDB zu speichern Datenbankprogrammierung 5
M JPA-Persist Problem Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben