Bonjour,

C'est la première fois que j'utilise ce mailing list. Veuillez m'excuser si je m'y prends mal ou si je fais des erreurs.

J'aurais besoin d'aide pour le problème suivant :

A l'aide d'une macro, je veux créer une base de données, puis ajouter des entrées. Le but final est de créer un dictionnaire japonais/anglais. Malheureusement, lorsque je cherche à exécuter l'instruction SQL pour ajouter un enregistrement avec la méthode executeUpdate, j'obtiens le message d'erreur suivant :

Runtime error BASIC.
Exception
Type: com.sun.star.sdbc.SQLException
Message: Table not found in statement [INSERT INTO edict]

En outre, lorsque je veux faire une requête sur une base existante, j'obtiens le même message (ou un message me disant qu'une colonne n'existe pas).

Le seul cas de figure où je n'obtiens pas ce message est quand je crée directement dans Base une base de données.

Voici un exemple sur une base de données qui s'appelle OooEdict qui contient une table edict contenant les champs Hiragana (entrée en japonais) et English (entrée en anglais). Afin d'être sûr de ne pas faire d'erreur sur le nom de la table, j'ai extrait le nom de celle-ci. Je veux donc ajouter dans le champ hiragana le contenu de la variable hiragana et dans le champ english le contenu de la variable english. Quote et Dquote sont des fonctions qui permettent d'entourer de guillemets simple ou de double-guillemets afin de respecter la syntaxe SQL.

'Connection à la base de données
NomSource = "OOoEdict"
unDbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
uneSource = unDbContext.getByName(NomSource)
login = ""
passord = ""
uneConnection = uneSource.getConnection(login,password)
If IsNull(uneConnection) then
MsgBox ("Erreur de Connection", 16)
Stop
End If

'Ajout d’une entrée
uneRequete=uneConnection.createStatement()
instrSQL = "INSERT INTO " & uneConnection.tables(0).name & " (" & DQuote("Hiragana") & "," & DQuote("English") & ") VALUES (" & Quote(hiragana) & "," & Quote(english) & ");"
uneRequete.executeUpdate(instrSQL)

Le programme plante sur la dernière ligne, lorsqu’il s'agit d'exécuter l’instruction SQL. Je suis à peu près persuadé qu'il n'y a pas d'erreur de syntaxe car l'exécuteur de code SQL de Base semble accepter cette entrée (mais là encore, seulement si la base de données a été crée directement avec Base, sinon je récupère la même erreur, à savoir qu'il n'arrive pas à trouver la table).

J'espère que quelqu'un pourra m'aider. J'espère avoir été clair en exposant mon problème. N'hésitez pas à demander des éclaircissements.

Merci d'avance pour vos réponses.

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

Répondre à