IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

AppWidget mise à jour


Sujet :

Android

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut AppWidget mise à jour
    bonjour ,
    je débute en programmation android ( j'ai un livre sur la programmation android ), je voudrai quelques précision sur la classe appWidget

    je détaille un peu le widget que je veux créer

    un widget qui affiche du texte et qui au bout de quelque minute ce met a jour pour afficher un autre texte

    1)
    la méthode onEnable(Context context){}
    est lancé lors de la création du widget
    donc je m'en servir pour initialiser mon widget
    par exemple ajouter les textes a afficher a une ArrayList

    mais j'ai l’impression que cette méthode n'est jamais exécuter
    mon Arraylist n'est jamais instancier


    2)
    la méthode onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    }
    j'ai lu que la méthode onUpdate() se lance lors de la création de celui-ci
    et c'est ce que j'ai pu constater

    mais il y a un point obscure ( pour moi )
    la méthode Update est lance lors d'une mise a jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
        <appwidget-provider
             xmlns:android="http://schemas.android.com/apk/res/android"    	
              android:minWidth="296dip"
        	  android:minHeight="72dip"          
              android:updatePeriodMillis="10000"
              android:initialLayout="@layout/napply_widget_layout"          
              />
    ici si j'ai bien compris la méthode onUpdate est lancé toute les 10000 milliseconde ( 10 s)
    mais j'ai l’impression qu'elle n'est exécuter qu'une fois, au début


    donc je voudrai savoir si ce que je viens d'énoncer comporte des erreurs ( j'espére ) car sinon je suis perdu

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    package azerty.uouou;
     
    import android.app.Activity;
    import android.appwidget.AppWidgetManager;
    import android.appwidget.AppWidgetProvider;
    import android.content.Context;
    import android.view.View;
    import android.os.Bundle;
    import android.widget.RemoteViews;
     
    public class NapplyWidget extends AppWidgetProvider {	
     
    	String[] list ;
    	static int cpt = 0;
    	boolean test ;
     
    /* cette méthode ne s'exécute jamais , c'est dommage */
     
    	public void onEnable(Context context){
    		list = new String[5];
    		list[0]= "kkkkkkkk0";
    		list[1]= "kkkkkkkk1";
    		list[2]= "kkkkkkkk2";
    		list[3]= "kkkkkkkk3";
    		list[4]= "kkkkkkkk4";		
    	}    
     
    	 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
     
    /*partie utilisé car la méthode onEnable ne marche pas ( pour compenser)*/
    /****************************************************/
    		 if(!test){		 
    		 list = new String[5];
    			list[0]= "kkkkkkkk0";
    			list[1]= "kkkkkkkk1";
    			list[2]= "kkkkkkkk2";
    			list[3]= "kkkkkkkk3";
    			list[4]= "kkkkkkkk4";
    			test = true;
    		}		 
    /******************************************/
    		 if(cpt >5){
    			 cpt = 0;
    		 }		 
     
    		  final int N = appWidgetIds.length;
    		  String s = list[cpt];
    		  cpt++;
    /* au cas ou plusieur appWidget son créer */
    	      for (int i = 0; i < N; i++) {
    	          int appWidgetId = appWidgetIds[i];
    	          updateAppWidget(context, appWidgetManager, appWidgetId , s );
    	      }
    	  }
     
     
    	  static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId , String s) {
    /*on récupére la le widget et on le met a jour  */
    	      String t = s;	    		  
    	      RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.napply_widget_layout);
    	      views.setTextViewText(R.id.text1, t);
    	      appWidgetManager.updateAppWidget(appWidgetId, views);
     
     
     
     
     
    	  }
    }











    merci

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Relis la documentation android sur les widgets (et en particulier le tutorial ad-hoc)...

    Un widget est composé de 2 ou 3 choses:

    Le "Widget" d'une part, responsable de mettre à jour une view qui appartient à une application (en général, le "desktop")... D'ou l'utilisation de RemoteView...

    D'autre part, un "BroadcastReceiver" qui va recevoir les "intent" de demande de mise à jour... Si la mise à jour est (très) rapide, alors cet élément peut appeler simplement le onUpdate des widgets... Par contre, si la mise à jour peut etre lente (appel à un service web...), il faut passer par un service de mise à jour... C'est lui qui appelera le "onUpdate" et le receiver ne fera que démarrer le service avec les bons paramètres.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci pour ses précisions nicroman

    alors je compte gérer la mise a jour de mon widget par moi meme
    je voudrai que celui-ci se met a jour toute les 10s ( cad qu'il fait apelle a la méthode onUpdate toute les 10s)

    je créer un une activité de configuration pour mon widget :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    package azerty.uouou;
     
    import android.app.Activity;
    import android.appwidget.AppWidgetManager;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
     
    public class WidgetConfigure extends Activity{		
    	private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState);
     
    		// On essaye de récupérer l'id de l'AppWidget
    		Intent intent = getIntent();
    		Bundle extras = intent.getExtras();
    		if (extras != null) 
    		{
    			mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    		}
     
    		// Si l'intent ne contient pas son ID, ça ne sert à rien de continuer.
    		if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) 
    		{
    			setResult(RESULT_CANCELED);
    			finish();
    		}
     
    		Intent intent2 = new Intent(this,Maj.class);
    		startService(intent2);		
     
    		// IMPORTANT : penser à renvoyer l'ID du widget
    		Intent resultValue = new Intent();
    		resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
    		setResult(RESULT_OK, resultValue);
    		finish();
    	}
     
    }
    dans celle-ci comme vous pouvez le voir j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent intent2 = new Intent(this,Maj.class);
    		startService(intent2);
    pour faire appelle a un service qui va mettre a jour mon widget

    voici la classe Maj :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    package azerty.uouou;
     
    import android.app.Activity;
    import android.app.Service;
    import android.appwidget.AppWidgetManager;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.IBinder;
     
    public class Maj extends Service {
    	private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
     
    	public void onCreate() {
    		super.onCreate();		
     
    	}  
    	public void onStart(Intent intent) {
    		super.onStart(intent, mAppWidgetId);		
     
     
    	} // SDK<2.0 la tâche de fond démarre 
    	public int onStartCommand(Intent intent, int flags, int startId){
     
    		while(true){
     
    			try {
    				Thread.sleep(10000);
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
    			Intent intent2 = new Intent(NapplyWidget.maj);
                        /*maj == AppWidgetManager.ACTION_APPWIDGET_UPDATE;*/
    			sendBroadcast(intent);		
     
    			}
    	}; // SDK>2.0 la tâche de fond démarre 
     
    	public void onDestroy() {
    	} // libération des ressources 
    	@Override
    	public IBinder onBind(Intent intent) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	}
    ici mon service utilise un intent pour dire a la classe Napplywidget d'utilisé sa classe onUpdate


    bon mais sa marche pas

    je voudrai savoir si je suis sur la bonne voie ou j'ai rien compris

    merci

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Là je ne vois pas le broadcast receiver...

    Voici comment je fais (grosso merdo):
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    class MyWidget extends AppWidgetProvider
    {
        public onUpdate(Context ctxt, AppWidgetManager mgr, int[] widgetIds)
        {
               Intent  updateIntent = new Intent(context,UpdateService.class);
               updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,widgetIds);
               context.startService(updateIntent);
        }
     
     
     
        public static class UpdateService extends Service {
     
             public void onStart(Intent intent, int startId) {
            	int[] widgetsIds = intent.getExtras().getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);
                // Push update for these widgets to the home screen
                AppWidgetManager manager = AppWidgetManager.getInstance(this);
                for (int widgetId : widgetsIds) {
        	        if (Log.isVerbose()) 
        	        	Log.v("Service: Starting update of widget #"+widgetId);//$NON-NLS-1$
    	            // Build the widget update for today
    	            RemoteViews updateViews = buildUpdate(this,widgetId);
    	            manager.updateAppWidget(widgetId, updateViews);
                }
            }
     
            public IBinder onBind(Intent intent) {
                return null;
            }
     
     
            public RemoteViews buildUpdate(Context context, int widgetId)
            {
                     ... le boulot d'update qui peut être super long on s'en fout ...
            }
         }
    }
    Et un truc comme ça dans le manifest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <receiver android:name=".MyWidget" android:label="@string/widget_name">            
        <intent-filter>                
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
         </intent-filter>            
        <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_provider" />
    </receiver>        
    <service android:name=".MyWidget$UpdateService"/>
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci je comprend mieux l'utilisation des services
    donc ici quand la méthode update est appelé celle-ci fais apelle a un service elle lui délègue la mise a jour de l'app widget

    je voudrai faire apelle a une activité de configuration pour le widget pouvoir créer une AlarmManager qui appelera la méthode update toute les 10s

    voici mon widget :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="utf-8"?>
        <appwidget-provider
             xmlns:android="http://schemas.android.com/apk/res/android"    	
              android:minWidth="296dip"
        	  android:minHeight="72dip"          
              android:updatePeriodMillis="0"
              android:initialLayout="@layout/napply_widget_layout"
        /* partie importante */
              android:configure="azerty.uouou.PdConfig"      
     
    />

    et voici mon manifeste :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="azerty.uouou"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk android:minSdkVersion="8" />
     
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
     
            <receiver android:name=".JBBWidget">			 			
    			<intent-filter>
    				<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    			</intent-filter>
    			<intent-filter>
               		<action android:name="MY_OWN_WIDGET_UPDATE" />
               </intent-filter> 
     
    			 <meta-data android:name="android.appwidget.provider"
    				android:resource="@xml/napply_widget_meta" />
     
    		</receiver>
    		/******* partie important***************/
    		<!-- Configure activity -->
             <activity android:name=".PdConfig">              
                <intent-filter>
                   <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
                </intent-filter>             
             </activity>
    		/************************************/
     
    	    </application>
    </manifest>
    et pour finir mon Activité de configuration du widget
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
    package azerty.uouou;
    import java.util.Calendar;
    import android.app.Activity;
    import android.app.AlarmManager;
    import android.app.PendingIntent;
    import android.appwidget.AppWidgetManager;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.DialogInterface.OnClickListener;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.RemoteViews;
    import android.widget.Toast;
     
    public class PdConfig extends Activity {
     
    	private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
     
    	  @Override
    	  public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
     
    	        Intent intent = getIntent();
    			Bundle extras = intent.getExtras();
    			if (extras != null) 
    			{
    				mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    			}
     
    			// Si l'intent ne contient pas son ID, ça ne sert à rien de continuer.
    			if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) 
    			{
    				setResult(RESULT_CANCELED);
    				finish();
    			}
     
     
    			/*******partie importante********************/
     
    			 Intent intent1 = new Intent(NapplyWidget.MY_WIDGET_UPDATE);
    			 PendingIntent pendingIntent = PendingIntent.getBroadcast(PdConfig.this, 0, intent1, 0);
    			 AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
     
    			 Calendar calendar = Calendar.getInstance();
    			 calendar.setTimeInMillis(System.currentTimeMillis());
    			 calendar.add(Calendar.SECOND, 10);
    			 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 2000, pendingIntent);
    /******************************************************/		
     
    			// IMPORTANT(ou pas) : penser à renvoyer l'ID du widget
    			Intent resultValue = new Intent();
    			resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
    			setResult(RESULT_OK, resultValue);
    			finish();
     
     
     
    	        /*
    	        setContentView(R.layout.config);
     
    	        Button j =  ((Button)findViewById(R.id.button1));
     
    	        j.setOnClickListener(new View.OnClickListener() {				
    				@Override
    				public void onClick(View v) {
    					Toast.makeText(PdConfig.this, "Bouton cliqué !", Toast.LENGTH_LONG).show();
    					finish();
    				}
    			});        
    	        */    	
    	  }
     
    }
    a chaque fois que je compile sa plante, je ne comprend pas ,des fois
    mon activité de configuration s'affiche alors que je ne lui met pas de vu , sa donne un écran noire quand je créer le widget puis il disparaît ( grace au finish()) mais mon widget n’apparaît jamais sur l’écran du bureau.

    mon widget s'affiche sur l'écran quand je ne lui met pas d'activité de configuration

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Si tu as une activité de configuration pour le widget, c'est à *toi* de rajouter le widget dans le manager à la fin...

    L'activité de configuration se déclare de maniere indépendante dans le XML du widget-provider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    android:configure="com.example.MyWidgetConfigurationActivity"
    Ensuite effectivement, il faut la déclarer dans le manifest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		<activity android:name=".MyWidgetConfigurationActivity">
    			<intent-filter>
    				<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
    			</intent-filter>
    		</activity>
    Ensuite sur le code de validation de ton activité de configuration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // mise à jour immédiate du widget (histoire d'avoir un affichage instantanné)
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
    RemoteViews views = new RemoteViews(getPackageName(),R.layout.mywidget);
    appWidgetManager.updateAppWidget(this.mAppWidgetId, views); // <= immediate display
     
    // démarrage manuel de l'update (peut se faire avec un broadcast event si le widget est capable d'y répondre)...
    MyWidget.onUpdate(this, appWidgetManager,new int[] { this.mAppWidgetId } );
     
    // et surtout, retourner l'intent de success !
    Intent resultValue = new Intent();
    resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, this.mAppWidgetId);
    setResult(RESULT_OK, resultValue);
    finish();
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Je te remercie du fond du coeur
    Mon application fonctionne



    XD !!!!
    quoi ça marche sur l'émulateur mais pas sur mon smartphone android !

    Aurais tu une idée ,mon application( c'est aussi un peut la tienne car tu m'as aidé ) a était développé en 2.2. Je l'ai aussi testé en 2.3.3 sur un autre emulateur

    Mon smartphone est en 2.3.3 et j'ai l'impression que le alarmmanager ne marche pas sur mon téléphone car mon texte ne change pas

    après je ne t’embête plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jour automatique AppWidget
    Par ifiii dans le forum Android
    Réponses: 0
    Dernier message: 31/07/2014, 17h40
  2. Mise à jour d'un appWidget
    Par cad13 dans le forum Android
    Réponses: 1
    Dernier message: 16/08/2010, 10h47
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 10h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo