Syntaxe insert into

thias061 Messages postés 2 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 24 novembre 2009 - 24 nov. 2009 à 13:10
thias061 Messages postés 2 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 24 novembre 2009 - 24 nov. 2009 à 15:46
Bonjour,

Bon je deviens fou là je connais pas trop le langage sql mais bon ça fait une semaine que je bosse sur un projet de progra d'un SGBD sous VB à travers une base Access, je reprend le boulot du collègue qui était avant moi ds la boite et il m'a laissé le projet assez en pagaille...

En bref j'ai un probleme de syntaxe sur une instruction :

ExecuteDB_Easy("INSERT INTO Proceso(comentarioPO, fecha, id_empresa, id_empleado, id_proyecto, id_commercial, id_proceso) values ('" + RichTextBox1.Text + ", " + jour + ", " + ValorIDEmpresa + ", " + ValorIDEmpleado + ", " + ValorIDProyecto + ", " + ComboBoxCommercial.SelectedValue.ToString + ", " + ComboBoxTipoProceso.SelectedValue.ToString + "')")

J'ai regardé sur plusieurs post mais il est compliqué de s'y référer puisque dans mon cas l'instruction s'exécute à travers une fonction "Execute_DB"

Pourriez vous verifier et me donner une solution svp ???

Merci

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 nov. 2009 à 13:29
salut,

dans VALUES chaque valeur TEXT doit être entre apostrophes (en prenant soin de vérifier qu'elles n'en contiennent pas, sinon les doubler), or c'est le bloc complet (ensemble des valeurs avec les virgules) qui est ici entre apostrophes

NB : en VB la concaténation se fait par & et non +
NB : tu peux aussi utiliser string.format

++
[hr]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 nov. 2009 à 13:46
... ce qui devrait ressemble à çà :


function q(s as string) as string
  return "'" & s.replace("'", "''") & "'"
end function

' (...)

dim sSql as string = string.format("INSERT INTO Proceso(comentarioPO, fecha, id_empresa, id_empleado, id_proyecto, id_commercial, id_proceso) values ({0}, {1}, {2}, {3}, {4}, {5}, {6});", q(RichTextBox1.Text), jour, ValorIDEmpresa, ValorIDEmpleado, ValorIDProyecto, q(ComboBoxCommercial.SelectedValue.ToString), q(ComboBoxTipoProceso.SelectedValue.ToString))
0
thias061 Messages postés 2 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 24 novembre 2009
24 nov. 2009 à 15:46
Ok, merci !!! Je viens de régler touts les problèmes sur ce code, il m'a laissé un sacré chantier mais ça fonctionne !!!

Sujet clos

Merci
0
Rejoignez-nous