#1 Wed 26 March 2008 12:20
- Cartosig
- Participant assidu
- Date d'inscription: 16 Oct 2006
- Messages: 222
[MB 8] Insérer des objets dans une table
Bonjour,
J'avais déjà eu ce problème il y a un moment avec MapBasic, qui est agaçant au plus haut point :
Je crée une table :
Code:
Create Table g_strNewPath (PID Char(17), RID Char(17), DIR Integer, IDX Integer, METERS Float, SECONDS Float) Create Map For g_strNewPath Using RPATH_GEOM
Pas de problème.
J'insère des valeurs dans tous mes champs, par contre pas moyen d'insérer un object contenu dans une variable objet avec l'insert suivant :
Code:
Insert into g_strNewPath Values (g_nPathID, rid, g_nPathDIR, 0, meters, seconds, SelObj)
J'ai essayé en spécifiant les noms des champs (Insert into matable () Values () ), en gros de toutes les façon possibles, il me retourne toujours que le nombre de valeures insérées n'est pas égal au nombre de champs...
Pourtant si je rajoute un Update g_strNewPath set GEOM = SelObj juste après, l'objet est bien stocké dans la table !
Je me doute bien qu'il y a ici une subtilité (pour ne pas dire une faiblesse ^^) de MB... Si vous pouviez me rafraichir la mémoire !
Hors ligne
#2 Wed 26 March 2008 14:13
- Gérard parcoli
- Participant actif
- Date d'inscription: 9 Jan 2007
- Messages: 95
Re: [MB 8] Insérer des objets dans une table
Bonjour,
Essayez l'autre syntaxe :
Code:
Insert into g_strNewPath (col1, col2, col3, col4, col5, object) Values (g_nPathID, rid, g_nPathDIR, 0, meters, seconds, SelObj)
Hors ligne
#3 Wed 26 March 2008 15:44
- Cartosig
- Participant assidu
- Date d'inscription: 16 Oct 2006
- Messages: 222
Re: [MB 8] Insérer des objets dans une table
Merci, j'ai compris d'où provient l'erreur : j'avais des variables dans ma procédure qui portaient le même nom que l'un des champs de la table, ce qui faisait planter l'insert.
A bientôt!
Hors ligne