3 messages in org.openoffice.fr.progRe: [prog] erreur d'insertion dans base
FromSent OnAttachments
Eric BelhommeNov 27, 2006 4:03 am 
Louis VidonneNov 27, 2006 5:11 am 
Eric BelhommeNov 27, 2006 5:48 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] erreur d'insertion dans baseActions...
From:Louis Vidonne (loui@wanadoo.fr)
Date:Nov 27, 2006 5:11:52 am
List:org.openoffice.fr.prog

Bonjour Eric,

Cette erreur est typique de ce qui se passe lorsqu'on a déclaré une table avec des champs avec les noms en minuscules ou comportant des minuscules. Dans ce cas, pour accéder à ces champs il faut mettre les noms entre guillemets doubles. Voir le document "Initiation à SQL sous OOoBasic pour Base", à l'adresse http://fr.openoffice.org/files/documents/67/3718/IntroSQL_Base_0.02.odt C'est encore un draft car il y a des erreurs de frappe (mais le contenu est juste). Bon courage, Louis

Eric Belhomme a écrit :

Bonjour,

j'ai élaboré une petite BDD avec OOo Base, qui contient entre autre une table T_CLIENT (id as integer IDENTITY, clientName as VarChar)

Dans une feuille Calc, j'ai une macro pour me connecter à cette base et y insérer des données :

CreateDataSource("stats_factures") SourceConnect("stats_factures")

dim sqlstr as string dim maRequete as object sheet = ThisComponent.Sheets.getByName("stats") cell = sheet.GetCellByPosition(0,0) sqlstr = "INSERT INTO T_CLIENT (clientName) VALUES ('" _ & cell.getString() & "')" maRequete = maConnexion.createStatement() nblignes = maRequete.executeUpdate(sqlstr)

SourceDisconnect()

Ce code provoque le message d'erreur suivant lors de l'éxecution de l'instruction ExecuteUpdate :

Runtime error BASIC Exception Type com.sun.star.sdbc.SQLEXception Message: Column not found: CLIENTNAME in statement [INSERT INTO T_CLIENT (CLIENTNAME)].

Pourtant, ma chaine sqlstr est bien formée : "INSERT INTO T_CLIENT (clientName) VALUES ('NOM CLIENT')"

De plus, en analysant mon objet maConnexion et en énumérant tables et colonnes, j'accède bien à ma table "T_CLIENT", qui dispose bien d'une colonne "clientName" !

Quelqu'un a-t-il déjà rencontré ce problème ???