# SQL Syntax falsch?? ODBC Microsoft Access Driver



## Chimi (4. Jun 2009)

Ich hab folgendes Problem. Ich möchte eine Sql Abfrage in meiner Funktino machen mit einer Bedingung. (Ohne die Where klausur funktioniert die Abfrage), aber mit der Where Klausur kommt immer folgende fehlermeldung:

[Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.


```
public Vector<Artikel> getBestimmteArtikel(String firma)
	{
		Vector<Artikel> artikel = new Vector<Artikel>();
		try
		{
			Statement anfrage = verbindung.createStatement();
			String	sql = "SELECT artikelname, liefereinheit FROM artikel WHERE lieferant = '" + firma +"'";	
			System.out.println(sql);

			ResultSet ergebnis = anfrage.executeQuery(sql);
			while(ergebnis.next())
			{
				String artikelname = ergebnis.getString("artikelname");
				String liefereinheit = ergebnis.getString("liefereinheit");
				Artikel liste = new Artikel(artikelname, liefereinheit);
				artikel.add(liste);
			}
		}
		catch(SQLException e)
		{
			e.printStackTrace();
		}
		return(artikel);
```

Der Parameter firma wird wie folgt ermittelt und übergeben:


```
ActionListener boxFirma = new ActionListener() 
		{
			  public void actionPerformed(ActionEvent actionEvent) 
			  { 
				  
				  String test = box.getSelectedItem().toString();
				  String firma = test.substring(0, test.indexOf("(")-1);
				  System.out.println(firma);
				  
				  Vector<Artikel> bestimmteArtikel = artikel.getBestimmteArtikel(firma);
				  list.setListData(bestimmteArtikel);
			  }
			};
		box.addActionListener(boxFirma);
```

Bei einer kurzen Zwischenabfrage der sql Variablen wird folgender String ausgegeben:
SELECT artikelname, liefereinheit FROM artikel WHERE lieferant = 'Exotic Liquids'

Dieser String wird an die Datenbank abgeschickt, und hier tritt der Fehler auf.

Ich sitz nun schon laengere zeit an dem Problem und wär für jede Hilfe dankbar.


Lg Chimi


----------



## SlaterB (4. Jun 2009)

seltsam seltsam,
schon ein PreparedStatement mit ?-Parameter versucht?


----------



## Landei (5. Jun 2009)

Was passiert, wenn du exakt denselben SQL-String manuell in der DB ausführst?


----------

