Bonjour,

je rencontre une difficulté sur lors d'un changement d'état : l'erreur 3104 : "A SQLConnection must be open to perform this operation" s'affiche.

Le fichier mxml de base est composé de 5 états :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<s:states>
		<s:State name="Debut"/>
		<s:State name="State0"/>
		<s:State name="State1"/>
		<s:State name="State2"/>
		<s:State name="State3"/>
<vues:DiapAccueil includeIn="Debut" width="100%" height="100%" ChangEtat="affEtatDebut(event)"/>
	<vues:Diap0a includeIn="State0" width="100%" height="100%" ChangEtat="affEtat0(event)"/>
	<vues:Diap0b includeIn="State1" width="100%" height="100%" ChangEtat="affEtat1(event)" />
	<vues:Diap1 includeIn="State2" width="100%" height="100%" ChangEtat="affEtat2(event)" />
	<vues:Diap2 includeIn="State3" width="100%" height="100%" ChangEtat="affEtat3(event)" />
	</s:states>
DiapAccueil.mxml contient la fonction start : si la base de données est trouvée on remplit un tableau datagrid (ouverture1) sinon on créé la base de données (ouverture0)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
public var sqlc:SQLConnection = new SQLConnection();
private var sqls:SQLStatement = new SQLStatement();
private var statement:SQLStatement= new SQLStatement();
private function start():void
{
	var db:File = File.applicationDirectory.resolvePath("kinous.bd")
	if(!db.exists)
	{
		sqlc.openAsync(db);		
		sqlc.addEventListener(SQLEvent.OPEN, ouverture0);
		sqlc.addEventListener(SQLErrorEvent.ERROR, error);
		sqls.addEventListener(SQLErrorEvent.ERROR, error);
		sqls.addEventListener(SQLEvent.RESULT, creationBdd);
	}
	else
	{	
		sqlc.openAsync(db);
		sqlc.addEventListener(SQLEvent.OPEN,ouverture1);
		sqlc.addEventListener(SQLErrorEvent.ERROR, error);
		statement.addEventListener(SQLErrorEvent.ERROR, error);
		statement.addEventListener(SQLEvent.RESULT, listeSondes);
	}
 
}
Ici le traitement fonctionne.
Mais dès que je passe à l'état "State0" et que je procède à un traitement en rapport avec la base de données ça ne fonctionne plus...

Le passage : dans DiapAccueil :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<fx:Metadata>
		[Event(name="ChangEtat", type="flash.events.Event")]
	</fx:Metadata>
	<fx:Script source="progCommun.as"/>
	<fx:Script>
		<![CDATA[
			protected function button1_clickHandler(event:MouseEvent):void
			{
				dispatchEvent(new Event("ChangEtat"));
 
			}
		]]>
	</fx:Script>
permet de remonter vers le fichier mxml de base et d'afficher l'état State0.
Dans State0 le code me donnant l'erreur sur clic d'un bouton)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
private function interactionSql(quest:int,repQuest:int):void
{
	statement =new SQLStatement();
	statement.sqlConnection = sqlc;
	statement.text="update REPSONDE set numRep=7 where numQ=1;";
	statement.execute();
}
Quelle erreur suis-je en train de faire? (Me lancer et persister dans Air loool!?)