SQL语句的蛋疼错误

要实现一个远程升级数据库的功能

首先读取网页上需要执行的语句然后利用android自带的SQL类执行Sql语句。

从服务器上读取到的信息如下:

Create TABLE IF NOT EXISTS sh_upgrade_test( [id_key] integer PRIMARY KEY AUTOINCREMENT ,[dict_id] varchar(20) NOT NULL ,[dict_name] varchar(40) NOT NULL ,[info_value] varchar(60) ,[remark] varchar(100) ); insert into sh_upgrade_test(dict_id, dict_name,info_value,remark) values('dbUpgradeTest','数据库版本更新测试','aaa','测试'); commit


客户端的执行代码:

 

		// 开始事务
		DataBaseUtils.beginTransaction();

		for (int i = 0; i < sql.length; i++) {
			// 将获取的信息进行截取,分割为数组
			DataBaseUtils.exeSql(sql[i]);
		}
		// 设置事务为成功
		DataBaseUtils.setTransactionSuccessful();
		// 结束并且提交事务
		DataBaseUtils.endTransaction();


运行,结果报错了。

错误信息如下:

01-24 01:23:32.284: E/AndroidRuntime(4285): android.database.sqlite.SQLiteException: cannot commit - no transaction is active: COMMIT;


做了些测试,发现错误地方,就是SQL语句中多了commit。删之,继续运行。

发现表可以被新建,但是数据却无法插入,继续测试排查,发现问题出现在该死的 ";"上。

删之,调试通过。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值