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

Composants graphiques Android Discussion :

Application envoyant des requêtes SQL différentes selon le bouton cliqué


Sujet :

Composants graphiques Android

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Application envoyant des requêtes SQL différentes selon le bouton cliqué
    Bonjour à tous,

    J'aimerais avoir quelques suggestions à propos de mon projet d'application et certaines questions que je me pose. Pour être le plus clair possible, je vais prendre le temps de bien détailler et vais vous montrer un schéma explicatif de ce que je souhaite obtenir.

    Objectif :
    - L'utilisateur doit avoir le choix entre différents buttons, sachant que chaque bouton ouvre une activité disposant d'une listview et renvoyant des infos différentes selon le bouton cliqué. Ex: si je clique sur le bouton "Rongeur", la listview ne renverra que les infos propres aux rongeurs, alors que le bouton "Oiseaux" renverra des infos différentes.

    Pour le moment, j'ai créé:
    - une classe Handler (qui hérite de SQLiteOpenHelper): chemin d'accès de la DB, définitions des "CRUD" (create, read, ...), nom des tables, colonnes, etc.
    - une classe Adapter, dans laquelle je compte écrire mes méthodes et requêtes pour la base de données, histoire de les définir une fois pour toutes et pas pour chaque bouton.
    - une classe pour ma table, avec constructeur, getters et setters
    - une MainActivity avec mes listener prêt pour chacun des boutons.
    - une ListViewActivity qui montrera la listview avec un contenu différent selon le bouton sur lequel on a cliqué.

    J'ai mis en pièce jointe un schéma de l'idée que je veux mettre en place pour faire communiquer mes différentes classes ensemble.

    En gros il s'agit de :
    - dire à chaque listener de renvoyer une certaine valeur dans une variable que j'appellerai ici A (ex: si tu cliques sur le bouton1, A = 1).
    - définir une méthode dans la classe "...handler.java" du type récupération d'infos (par exemple: récupère tous les éléments de telle colonne quand la valeur de telle colonne = A).
    - invoquer cette méthode à partir de la listview qui s'ouvre après un clic sur n'importe quel bouton et display les éléments récupérés.
    => Donc tous les boutons renvoient à la même activité avec la listview mais comme chaque clic modifie la valeur de A, la listview est différente à chaque fois.

    Donc voila mes deux questions :
    - Est-ce que l'idée générale, l'architecture de mon programme vous semble suffisamment optimisée pour que ça tourne bien? Je pense qu'a priori ça devrait tenir la route puisque le but est de limiter au maximum le nombre de méthodes en les définissant une fois pour toute dans la classe ...Handler.java, et d'avoir qu'une activité Listview en réponse à tous les clics.
    - J'ai du mal à trouver des ressources expliquant comment définir une méthode dans une classe faisant appel à des infos obtenues dans une autre activité (en l'occurrence, ici la valeur de A). Je pense qu'elle devrait s'écrire sous la forme (il manque certainement beaucoup de choses mais dans l'idée ça devrait y ressembler non?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public findNameInTable(int A){  
    string sql = " select NAME from MY_TABLE where CAT1 = " + A;  
    c = database.rawQuery(sql, null); }
    Pour ensuite invoquer la méthode findNameInTable() à partir de ma ListViewActivity et lui dire de mettre les résultats dans la listview ?


    J'ai l'idée de ce que je veux faire mais il m'est assez difficile de la concrétiser! J'ai lu de nombreux tutoriaux mais j'ai souvent du mal à m'y retrouver vu que tous n'utilisent pas la même structure (une classe handler, une classe adapter, une main activity, une classe pour définir les tables, etc.).

    N'hésitez pas à me demander plus de détails sur mon code si cela peut préciser mes questions, et merci d'avance pour toute idée, suggestion, piste ou lien vers des ressources qui m'aideront!

    Bonne journée !
    Images attachées Images attachées  

  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
    En fait la logique est souvent inverse....

    A savoir qu'on part de l'activité de liste.... et ensuite on rajoute le "dashboard" (l'activité avec les boutons) pour la piloter.

    Pour le passage de paramètres à une activité, c'est dans l'Intent bien sur, la partie "Extras"...
    Construction de l'Intent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Intent i = new Intent(....);
    i.putExtra("PARAM1",(int));
    i.putExtra("PARAM2",(String));
    ...
    Reception de l'Intent dans l'activité cible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Intent i = getIntent();
    i.getStringExtra("PARAM2");
    i.getIntExtra("PARAM1",0);
    Maintenant qu'on "sait" passer des paramètres à l'activité de liste... il suffit de passer les paramètres *aussi* à la requête du CursorAdapter...

    Et là.. je ferai deux modifications sur le code posté:
    1. Utilisation du "query" normal (pas besoin du rawQuery dans ce cas)
    2. Utilisation des paramètres de query
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public Cursor findNameInTable(int a)
    {
        return database.query("MY_TABLE", new String[] { "NAME" },
                "CAT1=?", new String[] { Integer.toString(a) },
                null,null,null);
    }
    (au passage, utiliser des constantes pour "MY_TABLE","NAME" et "CAT1" permet d'éviter les "gourages en règles" dans ces moments là.

    ou garder la version "raw":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private static final SQL_FIND_NAME = "select NAME from MY_TABLE where CAT1=?"
    public Cursor findNameInTable(int a)
    {
        return database.rawQuery(SQL_FIND_NAME, new String[] { Integer.toString(a) });
    }

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Décidément, qu'est-ce que je ferai sans toi !
    Merci pour tes explications, j'y vois déjà plus clair.

    J'ai donc fait la première étape, pour transférer les données d'une activité à l'autre, et ça marche.
    1/ Activité de départ (MainActivity)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private OnClickListener listener_button1 = new OnClickListener(){
    		public void onClick (View v){
    			Intent t = new Intent(MainActivity.this, Result.class);
    			t.putExtra("A", 1);
    			startActivity(t);
    La réception se fait donc dans l'activité Result et je récupère avec getIntExtra.

    2/ Ensuite j'ai défini dans ma classe "...DbAdapter" la méthode que tu m'as proposée (celle qui utilise raw au lieu de rawQuery) - en ayant bien déclaré les constantes au préalable (KEY_ROWID, NAME, etc.).

    3/ Lorsque je retourne dans ma classe Result dans laquelle j'ai ma listview, je ne trouve pas la façon correcte d'appliquer ma méthode.
    J'ai récupéré ma variable A contenant l'info que je veux mettre en entrée dans cette méthode findNameInTable(), mais les syntaxes que j'essaie ne sont pas concluantes...
    Pourtant je veux juste "faire entrer" ma valeur A dans ma méthode, que l'appli communique avec la database via la classe Adapter, qu'il me renvoie le résultat dans le Curseur et que par la suite je le fasse apparaitre dans un listview (ou textview pour commencer). Je ne trouve pas d'exemple de code sur lequel me baser pour comprendre par analogie.

    Je suis désolée d'être aussi demandeuse...
    Merci d'avance !

  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
    Peux tu nous montre le code actuel ?

    En gros normalement c'est juste comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    int a = intent.getIntExtra("A",0);
     
    Cursor c = findNameInTable(a);

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Voila plus de détails concernant mon code. Tu noteras que la variable "A" s'appelle ici "myVariable" !

    1/ MainActivity :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private OnClickListener listener_button1 = new OnClickListener(){
    		public void onClick (View v){
    			Intent t = new Intent(MainActivity.this, Result.class);
    			t.putExtra("myVariable", 1);
    			startActivity(t);			
    			}
    };
    2/ Dans la classe Result :
    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 class Result extends Activity {
     
    	TextView result = null;
    	int myVariable = 0;
    	private RestaurantsDbAdapter db;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_result);
     
    		Bundle bundle = getIntent().getExtras();
    		int myVariable = bundle.getInt("myVariable");
    		/*
    		 * DISPLAY myVariable (proof myVariable is sent from MainActivity to here), code:
    		 * result = (TextView) findViewById(R.id.result);
    		 * result.setText(Integer.toString(myVariable));
    		 */
     
    		db = new RestaurantsDbAdapter(getApplication());
    		db.open();
     
    		Cursor c = RestaurantsDbAdapter.findNameInTable("myVariable");
    		result.setText((CharSequence) c);
    	}
    Dans cette partie du code, il me donne un message d'erreur sur findNameInTable():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cursor c = RestaurantsDbAdapter.findNameInTable("myVariable");
    		result.setText((CharSequence) c);
    => The method findNameInTable(int) in the type RestaurantsDbAdapter is not applicable for the arguments (String)
    Je ne comprends pas, j'ai défini myVariable comme étant un int que j'ai initialisé à 0 au début du code puis récupéré via getExtra sous la forme d'un int.

    Comme la valeur stockée dans le curseur c doit être le string NAME de ma base de données, je mis un setText((CharSequence) c);

    3/ Et finalement, dans mon activité ...DbAdapter (la définition de findNameInTable est tout en bas) :

    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
    public class RestaurantsDbAdapter {
     
    	public static final String DATABASE_TABLE = "restaurants";
    	public static final String KEY_ROWID = "id";
    	public static final String COL_CAT1 = "cat1";
    	public static final String COL_CAT2 = "cat2";
    	public static final String COL_NAME = "name";
     
     
    	private Cursor c;
     
    	private Context context;
    	private SQLiteDatabase database;
    	private DatabaseHandler dbHandler;
     
    	public RestaurantsDbAdapter(Context context) {
    		this.context = context;
    	}
     
     
    	public RestaurantsDbAdapter open() throws SQLException{
    		dbHandler = new DatabaseHandler(context);
    		// TODO: or maybe?
    		// database = dbHelper.getWritableDatabase();
    		try {
    			dbHandler.createDatabase();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		database = dbHandler.getReadableDatabase();
    		return this;
    	}
     
     
    	public void close() {
    		if (c != null) {
    			c.close();
    		}
    		try {
    			dbHandler.close();
    			database.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
     
    	public Cursor findNameInTable(int myVariable)
    	{
    	    return database.query("MY_TABLE", new String[] { "NAME" },
    	            "CAT1=?", new String[] { Integer.toString(myVariable) },
    	            null,null,null);
    	}
    Merci infiniment pour tes conseils.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Tu passes actuellement un String a ta méthode qui attend un int.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int myVariable = bundle.getInt("myVariable");
    Cursor c = RestaurantsDbAdapter.findNameInTable(myVariable);
    Là tu passeras effectivement ton int contenant la valeur pour la clé "myVariable" passé dans ton intent.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour Olrem,

    J'avais essayé et j'avais également un message d'erreur, me disant cette fois:

    "Cannot make a static reference to the non-static method findNameInTable(int) from the type RestaurantsDbAdapter"
    Remarque qui me passe un peu au dessus...

    Je viens de passer quelques heures sur un tuto vraiment intéressant trouvé sur Android Developer (http://developer.android.com/trainin...tepad-ex1.html) qui traite de ce sujet (com avec database + listview) et qui présente une méthode que je ne connaissais pas et qui semble importante pour faire le lien entre ce qu'il y a dans le curseur et ce dans quoi on veut les présenter:

    Je vais bosser là dessus, remodeler un peu mon appli et voir ce que ça donne!

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 12
    Points
    12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RestaurantsDbAdapter resto = new RestaurantsDbAdapter(context);
    Cursor c = resto.findNameInTable(myVariable);
    Le fait de faire RestaurantsDbAdapter.findNameInTable(myVariable); était un appel a une méthode statique (qui ne nécessite pas d'instance de la classe) de ta classe RestaurantsDbAdapter.
    Hors ta méthode findNameInTable() n'est pas une méthode statique.
    Donc tu dois l'appelé via une objet de la classe RestaurantsDbAdapter.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'ai continué à travailler sur mon application, il est donc désormais possible de visualiser certains éléments de la base de données dans une listview.

    J'ai un problème avec l'étape suivante :
    a. Ma BDD a trois colonnes (cat1, cat2 et cat3): il y a toujours un numéro dans la cat1, parfois dans les cat2 et 3.
    b. je souhaite maintenant que la méthode findNameInTable() me renvoie tous les résultats pour lesquel l'input de ma méthode soit égal à la valeur de l'une des colonnes cat1 OU cat2 OU cat3.
    Je souhaite désormais qu'il y ait plusieurs input à ma méthode, sous cette forme par exemple : findNameInTable(myVariable1, myVariable2, myVariable3).

    Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public Cursor findNameInTable(int myVariable1, int myVariable2) {
    		String where = COL_CAT1 + " = ? OR " + COL_CAT2 + "=?";
    		String[] whereArgs = new String[] { Integer.toString(myVariable1), Integer.toString(myVariable2)};
    		c = myDatabase
    				.query(DATABASE_TABLE, new String[] { KEY_ROWID, COL_NAME , COL_COMMENTS }, 
    						where,
    						whereArgs, null,
    						null, null);
    		return c;
    	}
    Après quelques tests, j'ai remarqué le problème suivant: tel que c'est écrit actuellement, la méthode procède de la sorte :
    - sélectionne les éléments lorsque CAT1 = myVariable1 OU BIEN lorsque CAT2=myVariable2.
    Du coup, si j'ai une troisieme variable d'entrée, ça ne marche pas puisqu'il s'attend à la comparer à une troisième colonne.

    Ce que je voudrais à la place, c'est ceci :
    - sélectionne les éléments lorsque CAT1 = myVariable1 ou myVariable2 ou ...myVariableN AINSI QUE les éléments lorsque CAT2 = myVariable1 ou myVariable2 ou.... myVariableN.

    Le problème se situe donc au niveau du " = ? " j'imagine, il a l'air d'incrémenter le ? en fonction de la variable d'entrée au lieu de dire que ? = toutes les variables d'entrées.

    J'espère avoir expliqué clairement, j'apprécierai vraiment énormément un coup de main (à nouveau.... ) sur ce problème !

    Merci d'avance.

    [EDIT] : je pense que c'est pas trop compliqué en utilisant rawQuery et en codant directement en SQL mais j'aimerais le faire en utilisant .query comme il me l'a été conseillé auparavant !

  10. #10
    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à point de salut... il faut passer par une raw-query...

    Et bien sur utiliser CAT1 in (.....) or CAT2 in (....)


    L'interêt de conserver les '?' est que la base de donnée maintient un "précache" de la requête (si le sql est le même), du coup a chaque fois on repassait dedans. La ce n'est plus le cas...

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci Nicroman. En fait j'ai consulté d'autres forums et il se trouve que l'écriture ( Cat1 IN (...) or Cat2 IN (...) ) est également possible en .query.

    Voila ce que ça donne dans mon cas pour information :

    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
    public Cursor findPoiInTable(int myVariable1, int myVariable2,
    			int myVariable3, int myVariable4, int myVariable5, int myVariable6) 
    	{
    		String inInterval = "(?,?,?,?,?,?)";
    		String where = COL_CAT1 + " IN " + inInterval + " OR " + COL_CAT2
    				+ " IN " + inInterval + " OR " + COL_CAT3 + " IN " + inInterval;
    		String[] whereArgs = new String[3 * 6];
     
    		for (int i = 0; i < 3; i++) 
    		{
    			whereArgs[6 * i] = Integer.toString(myVariable1);
    			whereArgs[6 * i + 1] = Integer.toString(myVariable2);
    			whereArgs[6 * i + 2] = Integer.toString(myVariable3);
    			whereArgs[6 * i + 3] = Integer.toString(myVariable4);
    			whereArgs[6 * i + 4] = Integer.toString(myVariable5);
    			whereArgs[6 * i + 5] = Integer.toString(myVariable6);
    		}
    		Cursor c = myDatabase.query(DATABASE_TABLE, new String[] { KEY_ROWID,
    				COL_NAME, COL_STREET}, where, whereArgs, null, null, null);
           return c; 
    	}
    Je suis maintenant en train de réfléchir à une rédaction plus complète de la méthode. Le problème c'est que la méthode actuelle limite à 6 variables : bien sur, je pourrai en rajouter mais j'ai peur qu'au delà d'une certaine limite, ça diminue de façon considérable la vitesse de mon application.

    Pourtant, j'ai certaines infos de ma base de données pour lesquelles il me faudrait jusqu'à 50 variable d'entrées. Par exemple un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     select **** from **** 
    where cat1 IN ( 240 < ? < 290) OR cat2 IN (240 < ? 290) OR ...
    Le problème c'est que je peux pas ajouter manuellement :
    myVariable1 = 240
    myVariable2 = 241
    ...
    myVariable50 = 290.

    Trop long, et surtout la méthode sera beaucoup plus lourde alors que 90% des requêtes se contentent de comparer 2, 3 4 ou 5 valeurs dans la base de données.
    Il me faut donc trouver une seule et unique méthode qui soit assez légère pour faire tourner rapidement les requêtes simples mais assez complète pour inclure la recherche par fourchette (exemple: rechercher dans la BDD tous les éléments dont cat1, 2 ou 3 et compris entre 240 et 290).

    J'ai une idée en tête, je me permets de la donner ici en espèrant avoir un commentaire sur son "optimalité" :

    * Chaque clic de bouton envoie par exemple 7 variables :
    myVariable1 et myVariable2 sont consacrées uniquement aux fourchettes.
    myVariable3,4,5,6 et 7 sont consacrées aux recherches ponctuelles.

    * Si il y a une recherche de fourchette, seules myVariable1 et 2 sont mises à une certaine valeur, avec myVariable1 < myvariable2.
    * Sinon, seules myVariable3,4,etc sont initialisées (du coup, myVariable1=myVariable2=0)

    Ensuite dans ma méthode, ça deviendrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    If myVariable1 < myVariable2 (du coup il y a une fourchette -par example 240 à 290 - sinon myVariable1 = myVariable2 = 0) {
     
    i = myVariable1
    for (i=myVariable1 to i=myVariable2, i++) // donc i va de 240 à 290
    select ........ from .........
    where Cat1 = i or Cat2 = i or Cat3 = i
    } 
    else { // s'il n'y a pas de fourchette
    select ........... from............
    where Cat1 IN (myVariable3, myVariable4, etc.) OR Cat2 IN (myVariable3, myVariable4, etc)
    Si quelqu'un a eu le courage de tout lire, je pense être maintenant capable de rédiger la méthode mais je me demande si c'est pas un peu tiré par les cheveux ou s'il n'y a pas un truc plus direct pour la programmation sur android.

    Merci beaucoup !

Discussions similaires

  1. Envoyer des requêtes SQL depuis Matlab
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/08/2014, 12h07
  2. Réponses: 4
    Dernier message: 25/08/2014, 12h45
  3. syntax des requêtes Sql selon les données à traiter
    Par pra3t0r dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/06/2011, 22h53
  4. Recherche ibrairie pour éxécuter des requêtes SQL via C++
    Par daemon dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 14/06/2004, 10h28

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