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

Louis Vidonne


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 ???


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à