# Datentyp enum und tinytext in sql-Befehl



## Einklang. (30. Jul 2012)

Hallo,

ich erhalte folgende fehlermeldung:

```
SQL-Exception ist aufgetreten: You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near 
'(255), customers_basket_quantity int, final_price decimal, customers_basket_date' at line 1
```

dieser kommt erst nachdem schon etwa 25 tabellen durchgelaufen sind. Besonderheit hier sind die zwei Datentypen enum und tinytext, die vorher nicht da waren.
Muss ich in das SQL Statement hier Anführungszeichen bzw Hochkomma unterbringen?

Hier das SQL-Statement: [sql]customers_basket (customers_basket_id int, customers_id int, 
products_id tinytext(255), customers_basket_quantity int, final_price decimal, 
customers_basket_date_added char(8), checkout_site enum(8), language varchar(32))[/sql]

Also gehört die Zahl von der Klammer bei enum und tinytext in Hochkomma bzw. Anführungszeichen oder ist das so in Ordnung?

Ich habe in den Befehlen die vorher gut funktionierten auch nur den DAtentyp text gesehen, der dann Nummern in einer Klammer mit dabei hatte - zb text(255) und das hat wie gesagt keine Fehlermeldung ergeben.....!


besten Dank


----------



## SlaterB (30. Jul 2012)

MySQL Field Types

die Klammern + Zahlen anscheinend einfach weglassen, nur die Typen an sich möglich,
bzw. immer fertige Beispiele suchen, bei enum die Werte angeben?


----------



## nillehammer (30. Jul 2012)

-Bei MySQL TINYTEXT kann man keine length angeben. Lösche das 
	
	
	
	





```
(255)
```
 ersatzlos.
-Bei MySQL ENUM muss in die Klammer die Aufzählung der möglichen Werte, eingeschlossen in einfachen Hochkommas z.B. 
	
	
	
	





```
enum('Herr','Frau','Firma')
```


----------



## Einklang. (31. Jul 2012)

Ja ok danke aber ich hab da ein Problem:

Der Befehl funktioniert nicht:

```
if(tabellenabfrage.getString(3)=="varchar") {........
```

Ob ich Groß-oder Kleinschreibung daraus mach ändert auch nichts...... habe auch die Spalte (2) versucht aber das nimmt er anscheinend nicht an.........!

Daran scheitert dann das Auslesen und Modifizieren bei den genannten Datentypen......! Momenten sortier ich so:


```
if(tabellenabfrage.getString(3)!=null) {
        		  
        		  System.out.println("Sapere stärker!!");
          		 nulleintrag = "("+tabellenabfrage.getString(3)+")";
        	 }
        	  else {
        		  System.out.println("Sapere");
         		  nulleintrag="";
```

Die Ausgaben mit String sind nur als Kennzeichen gedacht... ;-)! "nulleintrag" ist die Nummer .....!


----------



## 124wertlich (31. Jul 2012)

Wann hast du vor die Grundlagen der (Java)-Programmierung zu erlernen? Man mag sich überhaupt nicht vorstellen, wie dein gesamter Code aussieht. Nach Wochen der Programmierung mit Java solltest du mitbekommen haben, wie ein Stringvergleich in Java funktioniert. Da du ja im Internet selbst nichts findest (außer andere Foren) hier der Link zur Klasse String String (Java Platform SE 7 ). Die Methode equalsIgnoreCase könnte man sich näher ansehen


----------



## Einklang. (31. Jul 2012)

Danke war der richtige Hinweis!

Nun, es ist einfach so dass ich mich mit den Gleichungen (if xxx==yyyy) beschäftigt habe und daher eine andere Lösungsstrategie mit String-Funktionen aus den Augen verlor. Dies ist auch bekannt unter "Bahnung"! Bekanntes Wortspiel mit diesem Effekt ist beispielsweise dauernd nach der Farbe "Weiß" zu fragen und dann am SChluss die Frage zu stellen "Was trinkt eine Kuh" und meist wird der Proband sagen "Milch"! Also wenn man eine Lösungsstrategie verfolgt (weiß) werden andere Lösungsmöglichkeiten (kuh trinkt wasser) eher unterdrückt...!

So isses und zum Glück gibts Leute mit Erfahrung und diese Entwicklung schon durchlaufen sind und freundlicherweise Tipps geben - ;-)! Für mich sind hier ein paar Leute eben wie Matrosen - etwas ruppig in der Art aber doch ganz liebenswürdig weil se dann doch helfen! :-D

Danke


----------

