stephane grignon wrote:
> bonjour,
> 
> je cherche à insérer des enregistrement dans une base (bdd_projet) à partir de
> fichier texte.
> la lecture fichier texte fonctionne
> 
> mais je n'arrive pas à executer une requete simple (select * from Clients,
> requete qui fonctionne dans editeur de requetes de base) sans avoir une 
> erreur :
> 
> table not found in statemùent [SELECT * FROM Clients]
> 
> le code utlisé est le suivant :
> 
> global maConnexion as object
> global monDocBase as object

Les globales, c'est mal, _très_ mal.
> 
> Sub ConnecterSource()
>       Dim oDBSource As String, login As String, password As String, dbURL As 
> String
>       Dim oDataSource As Object, oDBContext As Object
> 
>       
> dbURL=ConvertToUrl("/home/stef/donnees_stef/Professionnel/bdd_projet.odb")
1) vérifier la connexion
2) vérifier l'existence de la table
>       
>       If NOT FileExists(dbURL) Then
>               Msgbox "Problème de disponibilité de la base de données..." & 
> chr(13) &
> "Alerte!!!"
>       End If
>       
>       REM Use the DatabaseContext to get a reference to the database.
>       oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
>       oDataSource = oDBContext.getByName(dbURL)
>       'Les paramètres de connexion
>       login = ""
>       password = ""
> 
>       maConnexion = oDataSource.getConnection(login, password)
>       monDocBase = oDataSource.DatabaseDocument
>       'xray maconnexion
>       if IsNull(maConnexion) then
>         MsgBox("Connexion impossible", 16)
>         Stop
>       else
>               msgbox("connexion ok ?!?")
>       end if
>       
> End Sub
> 
> '==================================================================
> Sub DeconnecterSource()
>       monDocBase.store
>       maConnexion.close
>       maConnexion.dispose
> End Sub
> 
> 
> Sub majDonnees()
> rem   On Error GoTo Erreurs
> dim debug as boolean
> debug = true
> 
>       dim maRequete As Object, resuQuery As Object
>       dim nbre
>       dim instrSQL As String, monSignet As Variant
>       dim i as integer
> 
>       'connecter base projet
>       ConnecterSource
>       maRequete = maConnexion.createStatement()
>       maRequete.ResultSetConcurrency=1008 
> 
>       'Mise à jour des signataires
>       nbre = maRequete.executeUpdate("SELECT * FROM Clients")
3) le SELECT n'est pas une requête de mise à jour, elle renvoie un
résultat (ResultSet). qq chose comme maRequete.executeQuery ("SELECT
blabla"); marchera mieux.

4) Le livre de M Godard & Marcelly, p585, explique cela très bien. 2
jours que je l'ai et je l'adore déjà ce bouquin ^_^.
> 
> if debug=true then
>  msgbox("nb clients : " & nbre)
> end if
>       'deconnecter base
>       DeconnecterSource()
> 
> end sub
> 
> mais que se passe-t-il donc ?
> 

Bon courage.

-- 
Michel Loiseleur

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

Répondre à