滥用ContentResolver

时间:2017-06-20 22:54:46

标签: java android sqlite

我尝试使用SQLite的MAX()函数通过自定义ContentProvider的查询方法获取列的Max值,但是当我运行应用程序时崩溃,给我当前错误:

  

06-20 17:30:33.868 30109-30109 /? E / AndroidRuntime:致命异常:主要                                                      处理:com.bpl.spart.bloodpressurelogbook,PID:30109                                                      android.database.sqlite.SQLiteException:滥用聚合函数MAX()(代码1):,同时编译:SELECT _id,sistolica,diastolica,pulso FROM TablaTomasDePresion WHERE MAX(sistolica)                                                          在android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)                                                          在android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)                                                          在android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)                                                          在android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)                                                          在android.database.sqlite.SQLiteProgram。(SQLiteProgram.java:58)                                                          在android.database.sqlite.SQLiteQuery。(SQLiteQuery.java:37)                                                          在android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)                                                          在android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)                                                          在android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1163)                                                          在android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1034)                                                          在android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1202)                                                          在db.TomasProvider.query(TomasProvider.java:48)                                                          在android.content.ContentProvider.query(ContentProvider.java:1017)                                                          在android.content.ContentProvider $ Transport.query(ContentProvider.java:238)                                                          在android.content.ContentResolver.query(ContentResolver.java:491)                                                          在android.content.ContentResolver.query(ContentResolver.java:434)                                                          在com.bpl.spart.bloodpressurelogbook.pestanaGraficos $ 1.onItemSelected(pes​​tanaGraficos.java:95)                                                          在android.widget.AdapterView.fireOnSelected(AdapterView.java:931)                                                          在android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:920)                                                          在android.widget.AdapterView.-wrap1(AdapterView.java)                                                          在android.widget.AdapterView $ SelectionNotifier.run(AdapterView.java:890)                                                          在android.os.Handler.handleCallback(Handler.java:746)                                                          在android.os.Handler.dispatchMessage(Handler.java:95)                                                          在android.os.Looper.loop(Looper.java:148)                                                          在android.app.ActivityThread.main(ActivityThread.java:5459)                                                          at java.lang.reflect.Method.invoke(Native Method)                                                          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)                                                          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

这是我调用方法的代码:

                   final String[] projection = {Contrato.Columnas._ID,Contrato.Columnas.SISTOLICA,Contrato.Columnas.DIASTOLICA,Contrato.Columnas.PULSO};
                    final String select  = "MAX(" + Contrato.Columnas.SISTOLICA + ")";

                    Cursor c = resolver.query(Contrato.URI_CONTENIDO_BASE,projection,select,null,null);

                    if(c.moveToNext()){
                        String sisq = c.getString(c.getColumnIndex(Contrato.Columnas.SISTOLICA));
                        sistolicaMAQ.setText(sisq);

                        String diaq = c.getString(c.getColumnIndex(Contrato.Columnas.DIASTOLICA));
                        diastolicaMAQ.setText(diaq);

                        String pulq = c.getString(c.getColumnIndex(Contrato.Columnas.PULSO));
                        pulsoMAQ.setText(pulq);
                    }

所以,问题是如何纠正这个错误?

0 个答案:

没有答案
相关问题