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]