I am getting this error from SQLite,
near ",": syntax error (code 1): , while compiling:
UPDATE OutfitItem
SET outfit_img_relative_pos_x=?,clothing_item_ID=?,outfit_img_relative_pos_y=?,
outfit_img_relative_size_width=?,outfit_ID=?,outfit_img_relative_size_height=?
WHERE (outfit_ID,clothing_item_ID) = (60,5)
May someone spot the error for me please?
The following is the code which gets compiled…
// ---updates a outfitItem---
public boolean update(long outfitID, long clothingItemID, double imgRelativePos_X, double imgRelativePos_Y,
double imgRelativeSize_width, double imgRelativeSize_height)
{
ContentValues args = new ContentValues();
args.put(KEY_OUTFIT_ID, outfitID);
args.put(KEY_CLOTHING_ITEM_ID, clothingItemID);
args.put(KEY_OUTFIT_IMAGE_RELATIVE_POS_X, imgRelativePos_X);
args.put(KEY_OUTFIT_IMAGE_RELATIVE_POS_Y, imgRelativePos_Y);
args.put(KEY_OUTFIT_IMAGE_RELATIVE_SIZE_WIDTH, imgRelativeSize_width);
args.put(KEY_OUTFIT_IMAGE_RELATIVE_SIZE_HEIGHT, imgRelativeSize_height);
return db.update(TABLE_NAME, args, "(" + KEY_OUTFIT_ID + "," + KEY_CLOTHING_ITEM_ID + ") = (" + outfitID
+ "," + clothingItemID + ")", null) > 0;
}
The following is the code which creates the table, and note that foreign keys is set to on…
public static final String TABLE_NAME = "OutfitItem";
public static final String TABLE_CREATE = "create table " + TABLE_NAME + "(" + KEY_OUTFIT_ID
+ " int not null REFERENCES " + Table_Outfit.TABLE_NAME + "(" + KEY_OUTFIT_ID + ") ON DELETE CASCADE,"
+ KEY_CLOTHING_ITEM_ID + " int not null REFERENCES " + Table_ClothingItem.TABLE_NAME + "("
+ KEY_CLOTHING_ITEM_ID + ") ON DELETE CASCADE, " + KEY_OUTFIT_IMAGE_RELATIVE_POS_X + " real not null, "
+ KEY_OUTFIT_IMAGE_RELATIVE_POS_Y + " real not null, " + KEY_OUTFIT_IMAGE_RELATIVE_SIZE_WIDTH
+ " real not null, " + KEY_OUTFIT_IMAGE_RELATIVE_SIZE_HEIGHT + " real not null, " + "primary key ("
+ KEY_OUTFIT_ID + "," + KEY_CLOTHING_ITEM_ID + "));";
Your problem is in your
WHEREclause:This is not valid SQL syntax. You need to use separate conditions with the
ANDconjunction.