Hmm, pourquoi cherchez-vous une réponse plus complexe que concaténation? Si vous voulez quelque chose de "propre", alors faites la concaténation de votre code en appelant le serveur de base de données, de cette façon vous ne surchargez pas le serveur pour concaténer. Une chose que personne n'a mentionnée qui revient toujours à mordre les gens dans le cul est que si votre délimiteur (virgule) est contenu dans un champ de données, alors vous aurez des virgules supplémentaires et vos données seront ambiguës. (c'est-à-dire que "a, b, c, d" contient trois champs, ou quatre? Si le deuxième champ contient réellement "b, c" alors votre exportation est mal formée).
Le format CSV a été légèrement modifié au fil du temps, il n'existe donc pas de moyen standard pour gérer cette situation. La façon dont je préfère personnellement gérer cela est en enquêtant sur les valeurs du champ, puis en échappant aux citations en les répétant.Ainsi, par exemple, vous avez un enregistrement avec les données suivantes:
Champ1: abc
Champ2: def "1
Field3: 12", "3, b
L'enregistrement CSV être écrit:.
"abc","def""1","12,""""3,b"
que le format évite toute ambiguïté possible dans les données sur le terrain
Le retour en arrière est simple et déterministe. L'autre option consiste à utiliser un délimiteur de champ qui, selon vous, ne peut jamais se produire dans les données de champ réelles. Ceci est un moyen rapide de le gérer, mais laisse une bombe à retardement dans votre programme pour qu'un autre programmeur le répare plus tard :-)
EDIT: Si vous n'allez pas lire les données, alors, bien sûr, vous devriez voir comment le programme qui lit les données gère l'importation de données contenant des caractères de délimitation dans le cadre des données de champ qui ne devraient pas être interprétées comme des délimiteurs de champs.
Je ne pense pas que la concaténation de chaînes est nécessairement fausse dans ce problème. Vous avez trois champs et il n'y a vraiment pas de raison d'utiliser autre chose que la concaténation de cordes. À moins que je manque quelque chose, on dirait que vous voulez utiliser un marteau pour tuer une mouche au lieu de la tapette à mouches –
C'est en fait plus de 3 champs et pas ces données du tout. Ceci est un exemple simplifié. Ma table actuelle a 9 champs. Et je ne veux pas utiliser un marteau, juste le meilleur flyswatter (le plus efficace) disponible. – MAW74656