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]