Error generating Sqlite Query

1

Good afternoon

I'll be sure, I'm trying to make a query using sqlite

public ArrayList<CXCPSaldoClienteProveedor> ObtenerClienteZona()

{

    ArrayList<CXCPSaldoClienteProveedor> ArrayClienteZona = new ArrayList<CXCPSaldoClienteProveedor>();

    Cursor aRS = querySql("SELECT * FROM " + DBhelper.TABLE_NAME + " WHERE " + DBhelper.COLUMN_NAME_Zona + " = " + settings.getInt("ONControlZonaCliente",0),null);
    if (aRS.getCount() > 0){

        while (aRS.moveToNext()){

            CXCPSaldoClienteProveedor newdetalle = new CXCPSaldoClienteProveedor(
                    (aRS.getInt(aRS.getColumnIndex(DBhelper.COLUMN_NAME_Empresa))),
                    (aRS.getInt(aRS.getColumnIndex(DBhelper.COLUMN_NAME_Cliente))),
                    (aRS.getString(aRS.getColumnIndex(DBhelper.COLUMN_NAME_ClienteClave))),
                    (aRS.getString(aRS.getColumnIndex(DBhelper.COLUMN_NAME_ClienteDescripcion))),
                    (aRS.getString(aRS.getColumnIndex(DBhelper.COLUMN_NAME_ClienteDatosGenerales))),
                    (aRS.getInt(aRS.getColumnIndex(DBhelper.COLUMN_NAME_Moneda))),
                    (aRS.getInt(aRS.getColumnIndex(DBhelper.COLUMN_NAME_Zona))),
                    (aRS.getString(aRS.getColumnIndex(DBhelper.COLUMN_NAME_ZonaClave))),
                    (aRS.getString(aRS.getColumnIndex(DBhelper.COLUMN_NAME_ZonaDescripcion))),
                    (aRS.getDouble(aRS.getColumnIndex(DBhelper.COLUMN_NAME_Saldo))),
                    (aRS.getDouble(aRS.getColumnIndex(DBhelper.COLUMN_NAME_SaldoVencido))));
            ArrayClienteZona.add(newdetalle);

        }
    }
    aRS.close();
    CloseDB();
    return ArrayClienteZona;
}

In which I consult my client table where zone is equal, to what I have saved in my sharedpreferences , that preference I take it from a alertdialog singlechoice , which also filled from my base de datos of sqlite

public void ObtenerZona() {

    ZonaArrayList = oBD.ObtenerZonas();

    final String[] zona = new String[ZonaArrayList.size()];
    for(int i=0; i<ZonaArrayList.size(); i++){
        //Obtiene el campo Descripción y lo agrega al array de strings "zona".
        zona[i] = ZonaArrayList.get(i).getDescripcion();

    }

    AlertDialog.Builder alertdialog = new AlertDialog.Builder(Clientes.this);
    alertdialog.setTitle("Selecciona la Zona");
    SharedPreferences settings = getSharedPreferences("ONC_Settings", 0);
    alertdialog.setSingleChoiceItems(zona, settings.getInt("ONControlZonaCliente",1), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            SharedPreferences settings = getSharedPreferences("ONC_Settings", 0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putInt("ONControlZonaCliente",ZonaArrayList.get(which).getId());
            editor.commit();

        }
    })
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {
                    //Mandar a llamar metodo Clientes con el filtro

                    SharedPreferences settings = getSharedPreferences("ONC_Settings", 0);

                    ObtenerClienteZ();
                }
            })
            .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {

                }
            });
    AlertDialog alerdoalog = alertdialog.create();
    alerdoalog.show();
}

The problem is when I select the zone and it passes to my query it thunders and throws me the following error:

  

FATAL EXCEPTION: main                                                                             Process: mx.com.oncontrol.oncontrol, PID: 5901                                                                             java.lang.NullPointerException                                                                                 at   mx.com.oncontrol.oncontrol.SqliteDB.ObtainClientZone (SqliteDB.java:258)                                                                                 at   mx.com.oncontrol.oncontrol.Clientes.ObtenerClienteZ (Clientes.java:270)                                                                                 at mx.com.oncontrol.oncontrol.Clientes $ 5.onClick (Clientes.java:312)                                                                                 at   android.support.v7.app.AlertController $ ButtonHandler.handleMessage (AlertController.java:157)                                                                                 at android.os.Handler.dispatchMessage (Handler.java:102)                                                                                 at android.os.Looper.loop (Looper.java:136)                                                                                 at android.app.ActivityThread.main (ActivityThread.java:5001)                                                                                 at java.lang.reflect.Method.invokeNative (Native Method)                                                                                 at java.lang.reflect.Method.invoke (Method.java:515)                                                                                 at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785)                                                                                 at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601)                                                                                 at dalvik.system.NativeStart.main (Native Method)

Someone can help me by saying how I can access my preferences to make my query.

    
asked by Hugo Rodriguez 14.07.2016 в 22:42
source

0 answers