Bonjour,
J'ai un sérieu probleme avec la méthode executeQuery() qui ne semble pas
fonctionner, je ne comprends pas pourquoi.
L'instruction SQL n’est pas (ou mal) comprise par Basic. Le message d’erreur
renvoie que la table est introuvable alors qu'elle existe bel et bien . Par
ailleurs la requete fonctionne avec un Rowset ou lorsque elle est définie
manuellement dans une requete enregistrée sous OOoBase.
Voici le message d'erreur que me retourne OBasic
Runtime error basic
Une exetion s’est produite
Type com.sun.star.sdbc.SQLExeption
Message : Table not found in statement [SELECT Nom FROM TabCV]
Je suis égelement à la recherche de la syntaxe SQL alternative au guillemet
double, afin de pouvoir appeller des champs comportant des espaces dans une
requete SQL insérée dans un programme basic (toujours via la méthode
executeQuery, si j'arrive a la faire fonctionner)
Voici mon codage, basé sur les exemples extraits du livre de Bernard
marcelly "Programmation Openoffice.org 2"
Option Explicit
Sub LireResultatRequeteSQL()
dim maRequete As Object, resuQuery As Object
dim instrSQL As String, monSignet As Variant
dim execOK As Boolean, info As String, cr As String
cr = chr(13)
ConnecterSource
instrSQL = "SELECT Nom FROM TabCV"
maRequete = maConnexion.createStatement()
resuQuery = maRequete.executeQuery(instrSQL) '<= message d'erreur ici
...
end sub
Sub ConnecterSource()
Dim NomSource As String, login As String, password As String
Dim maSource As Object, monDbContext As Object
'Création du contexte
NomSource = "NBASEtest"
monDbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
maSource=monDbContext.getByName(NomSource)
login = ""
password = ""
maConnexion = maSource.getConnection(login, password)
if IsNull(maConnexion) then
MsgBox("Connexion impossible", 16)
else
print "connexion à la base " & NomSource
end if
End Sub