public class MyAct extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SQLiteDatabase db = openOrCreateDatabase("MyDb",MODE_PRIVATE,null);
db.execSQL("CREATE TABLE IF NOT EXISTS MyTab (Month INT(2),Date INT(2),Year INT(4),Event VARCHAR;");
db.execSQL("INSERT INTO MyTab VALUES (0,1,2012,'mini_proj');");
db.close();
}
}
我已经写了这个小片段来创建一个表,但它不起作用。这段代码有什么问题?
答案 0 :(得分:2)
在第一个查询中,您缺少一个结束括号:
CREATE TABLE IF NOT EXISTS MyTab (
Month INT(2),
Date INT(2),
Year INT(4),
Event VARCHAR;
应该是:
CREATE TABLE IF NOT EXISTS MyTab (
Month INT(2),
Date INT(2),
Year INT(4),
Event VARCHAR
)
另请注意,查询不需要以;
结尾,如文档中所述:
<强>参数强>
sql 要执行的SQL语句。 不支持以分号分隔的多个语句。
此外,您应始终检查您的LogCat输出,因为这应该抛出SQLiteException
。
进一步的SQLite注释:
VARCHAR
类型。它only has TEXT
并将任何类似文本的类型转换为它。SQLite 不会施加任何长度限制(除了大的 全局
SQLITE_MAX_LENGTH
限制)关于字符串,BLOB或的长度 数值。