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]