2010-08-27 6 views
0

J'ai une instruction SQL dans ColdFusion et je souhaite limiter la taille d'un champ. Aucun des éléments suivants ne semble fonctionner (ils ne donnent pas d'erreurs, ils ne limitent pas le champ).Syntaxe de la fonction ColdFusion Left()

INSERT INTO ListItems 
VALUES ('#qGetListID.ID#', 
     <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listItems[i].itemID#" />, 
     <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="left(#listItems[i].itemName#,100)" />) 

et

INSERT INTO ListItems 
VALUES ('#qGetListID.ID#', 
     <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listItems[i].itemID#" />, 
     left(<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listItems[i].itemName#" />,100)) 

Comment puis-je limiter ce dernier champ à seulement 100 caractères?

Répondre

6

Votre syntax est correct, mais vous avez besoin de mettre le tout à l'intérieur #...#:

INSERT INTO ListItems 
VALUES ('#qGetListID.ID#', 
     <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listItems[i].itemID#" />, 
     <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#left(listItems[i].itemName,100)#" />) 

Dans le cas contraire, CF n'évaluera la partie au sein de hash, et le reste de la valeur sera prise en-est .

+0

Cela ne fonctionne toujours pas, ce qui signifie qu'il existe un problème sous-jacent que je n'ai pas résolu. Au moins, je peux exclure que ce soit une simple erreur de syntaxe. – thursdaysgeek

+0

thursdaysgeek, qu'est-ce qui ne fonctionne toujours pas? Left est une fonction très simple, et cela fonctionne bien. Qu'est-ce que ** exactement ** essayez-vous d'accomplir, et comment déterminez-vous que quelque chose ne fonctionne pas? –

+0

C'est un code assez complexe, pas le mien, et je ne le comprends pas. J'essayais de limiter le nombre de caractères qui étaient insérés, ce qui semble tuer la requête. Il semble que l'on soumette plus de caractères que ce que la table peut gérer, mais je ne sais pas si c'est vraiment le problème. Je peux seulement vérifier en voyant si le bon nombre d'enregistrements sont sauvegardés. La requête est toujours en train de mourir, quelque part. Avec la syntaxe correcte à ce stade, mais le même comportement global, cela signifie que je ne suis pas encore à la racine du problème pour le moment. Je suis désolé, c'est difficile d'expliquer ce que vous ne comprenez pas vraiment. :( – thursdaysgeek

Questions connexes