private void buildSQL() throws SQLException { StringBuilder sb = new StringBuilder(128); sb.append("INSERT INTO "); sb.append(mTableName); sb.append(" ("); StringBuilder sbv = new StringBuilder(128); sbv.append("VALUES ("); int i = 1; Cursor cur = null; try { cur = mDb.rawQuery("PRAGMA table_info(" + mTableName + ")", null); mColumns = new HashMap<String, Integer>(cur.getCount()); while (cur.moveToNext()) { String columnName = cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX); String defaultValue = cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX); mColumns.put(columnName, i); sb.append("'"); sb.append(columnName); sb.append("'"); if (defaultValue == null) { sbv.append("?"); } else { sbv.append("COALESCE(?, "); sbv.append(defaultValue); sbv.append(")"); } sb.append(i == cur.getCount() ? ") " : ", "); sbv.append(i == cur.getCount() ? ");" : ", "); ++i; } } finally { if (cur != null) cur.close(); } sb.append(sbv); mInsertSQL = sb.toString(); if (LOCAL_LOGV) Log.v(TAG, "insert statement is " + mInsertSQL); }
private void buildSQL() { Object localObject1 = null; StringBuilder localStringBuilder1 = new StringBuilder(128); localStringBuilder1.append("INSERT INTO "); localStringBuilder1.append(mTableName); localStringBuilder1.append(" ("); StringBuilder localStringBuilder2 = new StringBuilder(128); localStringBuilder2.append("VALUES ("); Cursor localCursor; for (;;) { try { localCursor = mDb.rawQuery("PRAGMA table_info(" + mTableName + ")", null); localObject1 = localCursor; mColumns = new HashMap(localCursor.getCount()); int i = 1; localObject1 = localCursor; if (!localCursor.moveToNext()) { break; } localObject1 = localCursor; String str1 = localCursor.getString(1); localObject1 = localCursor; String str3 = localCursor.getString(4); localObject1 = localCursor; mColumns.put(str1, Integer.valueOf(i)); localObject1 = localCursor; localStringBuilder1.append("'"); localObject1 = localCursor; localStringBuilder1.append(str1); localObject1 = localCursor; localStringBuilder1.append("'"); if (str3 == null) { localObject1 = localCursor; localStringBuilder2.append("?"); localObject1 = localCursor; if (i == localCursor.getCount()) { str1 = ") "; localObject1 = localCursor; localStringBuilder1.append(str1); localObject1 = localCursor; if (i != localCursor.getCount()) { break label335; } str1 = ");"; localObject1 = localCursor; localStringBuilder2.append(str1); i += 1; } } else { localObject1 = localCursor; localStringBuilder2.append("COALESCE(?, "); localObject1 = localCursor; localStringBuilder2.append(str3); localObject1 = localCursor; localStringBuilder2.append(")"); continue; } str2 = ", "; } finally { if (localObject1 != null) { ((Cursor)localObject1).close(); } } continue; label335: String str2 = ", "; } if (localCursor != null) { localCursor.close(); } localStringBuilder1.append(localStringBuilder2); mInsertSQL = localStringBuilder1.toString(); }
public static void cursorFillWindow(Cursor paramCursor, int paramInt, CursorWindow paramCursorWindow) { if ((paramInt < 0) || (paramInt >= paramCursor.getCount())) { return; } int j = paramCursor.getPosition(); int k = paramCursor.getColumnCount(); paramCursorWindow.clear(); paramCursorWindow.setStartPosition(paramInt); paramCursorWindow.setNumColumns(k); int i; if (paramCursor.moveToPosition(paramInt)) { if (paramCursorWindow.allocRow()) { i = 0; } } for (;;) { Object localObject; boolean bool; if (i < k) { switch (paramCursor.getType(i)) { case 3: default: localObject = paramCursor.getString(i); if (localObject != null) { bool = paramCursorWindow.putString((String)localObject, paramInt, i); } break; } } for (;;) { if (bool) { break label264; } paramCursorWindow.freeLastRow(); paramInt += 1; if (paramCursor.moveToNext()) { break; } paramCursor.moveToPosition(j); return; bool = paramCursorWindow.putNull(paramInt, i); continue; bool = paramCursorWindow.putLong(paramCursor.getLong(i), paramInt, i); continue; bool = paramCursorWindow.putDouble(paramCursor.getDouble(i), paramInt, i); continue; localObject = paramCursor.getBlob(i); if (localObject != null) { bool = paramCursorWindow.putBlob((byte[])localObject, paramInt, i); } else { bool = paramCursorWindow.putNull(paramInt, i); continue; bool = paramCursorWindow.putNull(paramInt, i); } } label264: i += 1; } }
public static void cursorFillWindow( final Cursor cursor, int position, final android.database.CursorWindow window) { if (position < 0 || position >= cursor.getCount()) { return; } final int oldPos = cursor.getPosition(); final int numColumns = cursor.getColumnCount(); window.clear(); window.setStartPosition(position); window.setNumColumns(numColumns); if (cursor.moveToPosition(position)) { do { if (!window.allocRow()) { break; } for (int i = 0; i < numColumns; i++) { final int type = cursor.getType(i); final boolean success; switch (type) { case Cursor.FIELD_TYPE_NULL: success = window.putNull(position, i); break; case Cursor.FIELD_TYPE_INTEGER: success = window.putLong(cursor.getLong(i), position, i); break; case Cursor.FIELD_TYPE_FLOAT: success = window.putDouble(cursor.getDouble(i), position, i); break; case Cursor.FIELD_TYPE_BLOB: { final byte[] value = cursor.getBlob(i); success = value != null ? window.putBlob(value, position, i) : window.putNull(position, i); break; } default: // assume value is convertible to String case Cursor.FIELD_TYPE_STRING: { final String value = cursor.getString(i); success = value != null ? window.putString(value, position, i) : window.putNull(position, i); break; } } if (!success) { window.freeLastRow(); break; } } position += 1; } while (cursor.moveToNext()); } cursor.moveToPosition(oldPos); }