选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。
执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
如果需要使用FMDB对整个数据进行加密,则需要引入SQLCipher。
一、如果xcode使用cocoapods管理第三方库,则可以直接引入:pod 'FMDB/SQLCipher'
二、也可以使用手动动集成,把sqlite3.c和sqlite3.h加入到工程目录,然后在project的build setting里改动两个配置:
1、other c flags下添加如下设置:
2、 other link flags下添加如下设置:
三、报错问题:
如果出现sqlite3_key方法报错,提示如下:Implicit declaration of function 'sqlite3_key' is invalid in C99
则可能是因为搜索不到sqlite3.h,需要把sqlite3.c和sqlite3.h所在目录添加到header search path下面,如:
$(SRCROOT)/myproject/SQLCipher
(一)FMDB的基本介绍FMDB 同时兼容ARC与非ARC工程,会自动根据功臣的配置来调整相关的内存管理。
FMDB常用类:
FMDatabase:一个单一的数据库,用于执行SQL语句
FMResultSet:执行查询一个FMDatabase的结果集
FMDatabaseQueue:在多个线程来执行查询和更新数据库的数据
(二)数据库 *** 作:
创建数据库
建表(创建一张表)
增(向表中插入新数据inset or replace into)
删(删除表中数据delete)
改 (修改数据库中当前已有的数据update)
查(查询语句select)
总结:数据库增删改等 *** 作:除了查询 *** 作,FMDB数据库 *** 作都执行executeUpdate方法,这个方法返回BOOL型。
数据库查询 *** 作: 查询 *** 作使用了executeQuery,并涉及到FMResultSet。
(三)代码学习
在实际项目中一般使用databaseQueue,
创建数据库
- (void)openDBWithFileName:(NSString *)fileName dbName:(NSString *)dbName{
//首先判断传入的参数
if (!fileName.length || !dbName.length) {
return
}
//获取文件目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, NO)
NSString *documentDirectory =[paths firstObject]
NSString *pathDirectory = nil
if (fileName.length !=0 ) {
pathDirectory = [documentDirectory stringByAppendingPathComponent:fileName]
}
// 创建文件夹
if (![[NSFileManager defaultManager] fileExistsAtPath:pathDirectory]) {
NSError *error
[[NSFileManager defaultManager] createDirectoryAtPath:pathDirectory withIntermediateDirectories:YES attributes:nil error:&error]//参数YES,表示不管有没有这个文件夹都会去创建,如果参数为no,则 只会在没有这个文件夹的时候才会创建
if (error) {
NSLog(@"%@",[error description])
}
}
//创建数据库
NSString *dbPath = [pathDirectory stringByAppendingPathComponent:dbName]
if (!_dbQueue) {
NSLog(@"%@",[FMDatabaseQueue databaseQueueWithPath:dbPath])
self.dbQueue = [FMDatabaseQueue databaseQueueWithPath:dbPath]
NSLog(@"%@__open",self.dbQueue)
}
}
插入数据
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)