在sqlite上获取插入错误代码

时间:2012-09-11 17:41:49

标签: android sqlite insert error-code

如何在sqlite数据库(在android中)运行sql语句并获取查询结果?我需要确定查询是否已执行。

我想出了:

db.execSQL(sql);

但这是一个无效功能。

我从数据库中获取query_string,所以我不知道是插入还是更新或删除语句。我肯定知道它不会是一个选择声明。

2 个答案:

答案 0 :(得分:6)

尝试这样的事情:

public String insertQuery(String sql) {
           try{
       db.execSQL(sql);
           }
           catch (SQLException ex){
               return ex.toString();
           }
           return null;
   }

答案 1 :(得分:2)

如果您使用的是SQLiteDatabase,则可以执行以下两项操作:

1。) * 查询无结果(UPDATEDELETEDROPALTER等...)< / EM> *

这些查询不返回任何值,它们会修改数据库。执行此操作的功能称为execSQL(String)。您可以简单地以字符串格式给它一个SQL查询,它将执行它。

2。) * 查询结果(SELECT *

这些查询将返回Cursor个对象。使用游标,您可以迭代结果集,就像使用任何其他迭代器一样。光标将始终“包含”实际结果集中的单个行,您可以调用移动函数来前进/后退。执行此操作的功能称为rawQuery(String, String [])。您也可以使用query()函数,使用此函数,您必须输入较少的SQL。

示例:

Cursor cursor = database.rawQuery("SELECT * FROM yourtable", null);

for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
{
    /*this means you want to get from the current row a String 
    (CHAR, VARCHAR or TEXT) value from the 0th (first) column*/
    String str = cursor.getString(0);

    /*This means, that you want to get from the current row an 
    integer value from the 1st (second) column*/
    int i = cursor.getInt(1);
    ...
}