注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

向SQLite数据库插入记录的同时取得所插记录主键ID值  

2011-08-09 20:59:10|  分类: IOS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

引入

SQLite数据库中添加数据,有时候不只是简单的返回YES/NO,为了便于后面的操作,经常要在添加数据成功后返回刚刚添加的数据的主键,特别是主键自动生成尤为重要,那么在SQLite中怎样实现呢?

方案

假设:有一条电话(Phone)的记录要添加到电话记录表(IM_PHONE)中,并且使用FMDB操作SQLite数据库,那么代码如下:

/*

 * @DO 插入电话号码

 * @param phoen 电话号码相关信息

 * @return 主键(电话号码)

 */

- (int) insertPhone:(Phone *) phone

{

     NSString *sql = [NSString stringWithFormat:

                   @"INSERT INTO IM_PHONE(PHTYPE,"

                   "PHCODE,UPDATEDT) VALUES "

                   "('%@','%@','%@')",

                   [phone phType],

                   [phone phCode],

                   [phone updateDT]

                   ];

     NSLog(@"%@",sql);

     [db executeUpdate:sql];

     if ([db hadError])

     {

       NSLog(@"insertWith ERROR %d: %@", [db lastErrorCode], [db lastErrorMessage]);

       return (- 1);

     }

     NSLog(@"PK ID = %d",[db lastInsertRowId]);

     return [db lastInsertRowId];

}

说明:[db lastInsertRowId]----从方法的字面意思也很清楚,意思就是取得数据库插入的行的Id(即:主键值)

疑问:

1、同时插入多张表,这样的方法是否可行?

2、多用户操作SQLite数据库,这样是否可行,但SQLite就自己现在所学的一般做为客户端的小型数据文件,貌似不涉及到多用户?

3SQLite中用主键自动生成,是否是好的解决方案?如果用程序控制主键生成是否更好?

其他:

2011-08-09

iMilo

 

 

  评论这张
 
阅读(4702)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017