Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich möchte in einer Tabelle, die ich angelegt habe, in einer Combobox Werte aus einer anderen Tabelle anzeigen, und am Ende auch speichern. Leider klappt es mit meinem Konstrukt nicht wie erhofft.
Formular:
<CMS_MODULE>
<CMS_INPUT_COMBOBOX name="tt_product_name" hFill="yes" singleLine="no" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="database">
<KEY>Value_DE</KEY>
<TABLE>db_ltg.tt_label</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Produkt Bezeichnung"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
<CMS_INPUT_TEXT name="tt_product_chance" hFill="yes" singleLine="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Produkt Gewinnchance"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<FS_REFERENCE name="tt_product_logo" hFill="yes" sections="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Productlogo"/>
</LANGINFOS>
</FS_REFERENCE>
<FS_REFERENCE name="tt_product_page" hFill="yes" imagePreview="no" sections="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Product(-Start-)Seite"/>
</LANGINFOS>
</FS_REFERENCE>
</CMS_MODULE>
Datenquellen-Sicht:
Fehler beim Speichern:
java.sql.SQLDataException: A truncation error was encountered trying to shrink VARCHAR '<CMS_VALUE name="tt_product_name" tag="CMS_INPUT_COMBOBOX"><&' to length 128. / SQL = INSERT INTO P61_48.PRODUKTE (CHANGED_BY, FS_GID, PRODUCT_PAGE, PRODUCT_NAME, PRODUCT_LOGO, FS_ID, FS_VALID_FROM, FS_VALID_TO, FS_RELEASE_TO)VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) / null / [CHANGED_BY (-5): 42, FS_GID (-2): 54775a40-1e2c-4445-a54a-96ab3b495731, PRODUCT_PAGE (12): <CMS_VALUE name="tt_product_page" tag="FS_REFERENCE"><LANG id="§" set="0"/></CMS_VALUE>, PRODUCT_NAME (12): <CMS_VALUE name="tt_product_name" tag="CMS_INPUT_COMBOBOX"><LANG id="§" set="1"><SEL><VALUE>Lotto 6aus49</VALUE></SEL></LANG></CMS_VALUE>, PRODUCT_LOGO (12): <CMS_VALUE name="tt_product_logo" tag="FS_REFERENCE"><LANG id="§" set="0"/></CMS_VALUE>, FS_ID (4): 965, FS_VALID_FROM (-5): 1569578314159, FS_VALID_TO (-5): 9223372036854775807, FS_RELEASE_TO (-5): 0]
Nested message: A truncation error was encountered trying to shrink VARCHAR '<CMS_VALUE name="tt_product_name" tag="CMS_INPUT_COMBOBOX"><&' to length 128.
Wo ist mein Denkfehler? Eingerichtet wurde das alles von Arithnea mit dem StarterKit. Die DB selber habe ich nicht eingerichtet / angefasst.
Hallo zusammen,
das Problem wurde gelöst. Die Datenbank war falsch eingerichtet. VARCHARs durften nur mit maximal 128 Zeichen speichern, was ein bischen wenig ist, wenn man XMLs drin speichern will -.-
Viele Grüße,
Bianca
Hallo Bianca,
ich vermute, dass hier die Spalte in der DB auf 128 Zeichen beschränkt ist - hast Du die Spalte im Schema selbst angelegt? Auch beim Datentyp „FirstSpirit Editor“ kann man ja eine Länge angeben, die dann auf die „echte“ DB dahinter durchschlägt.
Da als Datentyp XML (also FirstSpirit Editor) im Schema steht, wird hier nicht nur der Name gespeichert sondern die XML-Repräsentation der Combobox, wodurch leicht mehr als 128 Zeichen zusammen kommen können.
Viele Grüße
Michael
Hallo Michael,
die Spalte für XML ist ja im DB-Schema-Editor automatisch ausgefüllt. Diesen Wert fasse ich nicht an:
Hallo Bianca,
anfassen solltest Du auch erstmal nichts 😉
Je nach der „Historie“ des Schemas muss die Länge nicht zwingend der in der DB entsprechen. Es kann z.B. sein, dass nachträglich Änderungen am FirstSpirit-Schema gemacht wurden, die (warum auch immer) nicht mehr zur DB dahinter passen - aber das sind nur Vermutungen.
Am besten wendest Du dich (mit Verweis auf diesen Community-Beitrag) an den Technical Support, die Kollegen dort kennen sich sehr gut mit solchen Fällen aus.
Viele Grüße
Michael
Hallo zusammen,
das Problem wurde gelöst. Die Datenbank war falsch eingerichtet. VARCHARs durften nur mit maximal 128 Zeichen speichern, was ein bischen wenig ist, wenn man XMLs drin speichern will -.-
Viele Grüße,
Bianca