none
liaison d'une application sous Visual Basic à une Base de données Microsoft visual foxpro RRS feed

  • Question

  • le code suivant est celui d'insertion de données dans une base de données sous Microsoft visual FoxPro;

    private sub cmdsaveclient_click()

    dim cmdsave as command

    set cmsave=new command

    with cmsave

    .activeconnection=cnmetroclient

    .commandtext="insert into clients(idclient,nameclient)"& _

    "values('txtcliid.text,txtcliname.text)

    .execute

    end with

    end sub

    Ce code génère l'erreur d'execution suivante '-2147217913(80040e07)' [Microsoft][ODBC Visual foxpro driver] data type mismatch. Apparemment il s'agit d'une incompatibilité de données; je ne sais paas ce qu'il faut faire pour résoudre ce problème s'il vous plait aidez moi. Merçi pour votre bonne compréhension

                                                                                                                            Arsène

    samedi 6 janvier 2007 15:18

Toutes les réponses

  • .commandtext="insert into clients(idclient,nameclient)"& _

    "values(" + txtcliid.text + ", '" + txtcliname.text + "')"

    Tu devrais utiliser des paramètres plutôt que la concaténation de chaine

    dimanche 7 janvier 2007 08:54
  • Bonsoir Arsène,

    si ce n'est pas trop tard pour te répondre...

     

     arsene dusex A écrit:

    .commandtext="insert into clients(idclient,nameclient)"& _

    "values('txtcliid.text,txtcliname.text)

     

    Dans ta syntaxe : il y a une quote de trop avant ton txtcliid.text et il manque un guillement en fin

    donc cela donnerait :

    .commandtext="insert into clients(idclient,nameclient)"& _

    "values(txtcliid.text,txtcliname.text)"

     

    mais la réponse de bidou est beaucoup mieux!,

    ainsi tes variables VB seraient évaluées avant l'appel

    donc, quelque chose comme :

    .commandtext="insert into clients(idclient,nameclient)"& _

    "values('"+txtcliid.text+"',"'+txtcliname.text+"')"

     

    si tu as toujours l'erreur de "type":

    c'est que le champ IDCLIENT, ou le champ NAMECLIENT de la table CLIENTS n'est pas du même type que txtcliid.text ou txtcliname.text. Comme l'on peut imaginer que NAMECLIENT soit une chaine, il est a penser que IDCLIENT peut être un integer au lieu d'une chaine. As tu la structure de la table CLIENTS .?

     

    Cordialement

    Francis

    jeudi 29 mars 2007 21:40