如果我的进程在事务中间终止,或者在SQLite提交事务时,数据库文件被破坏的可能性有多大?
我的应用程序使用SQLite数据库进行存储(直接,而不是通过Core Data).我正在开发一个新版本的应用程序,它需要更新数据库模式.在启动时,应用程序将检查数据库,如果需要更新,则执行一系列SQL语句来执行此操作.
根据数据库中的数据量,更新可能会长时间运行(大约几秒),因此我需要考虑在更新完成之前可能终止进程的可能性.(对于上下文,这在iPhone上,处理器很慢,应用程序可能会通过来电终止.)我当然会将升级SQL语句包装在一个事务中.这足以保证数据库不会被破坏吗?
我假设事务按照广告的方式工作,并且如果进程在事务中间终止,则文件将正常.但我也假设在COMMIT期间有一个时间窗口可能出错.
为了安全起见,我可以在开始更新之前创建数据库文件的备份副本,但如果事务是安全的,那么这将是过度的.它还会使更新过程花费更长时间,这会增加中断的可能性,然后我不得不考虑文件复制操作可能会被中断...我想让代码尽可能简单(但并不简单).
在研究这个问题的过程中,我开始阅读" SQLite中的原子提交 ",这比我可能需要知道的更详细,但是让我相信我不需要再次猜测SQLite保护SQLite的能力.数据库文件.但是我仍然想听听Stack Overflow:交易是否足够好,还是我应该更加谨慎?
我只是想读取文件的每个字符并将其打印出来,但是当文件完成阅读时,但我得到了一堆?完成阅读后.我如何解决它?
#include <stdio.h>
int main(void){
FILE *fr; /* declare the file pointer */
fr = fopen ("some.txt", "r"); /* open the file for reading */
/* elapsed.dta is the name of the file */
/* "rt" means open the file for reading text */
char c;
while((c = getc(fr)) != NULL)
{
printf("%c", c);
}
fclose(fr); /* close the file prior to exiting the routine */
/*of main*/
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我按照github页面上的说明进行了操作但是出了点问题(肯定是我:P)但是,你知道在Xcode4 RestKit中集成/使用的任何好教程吗?
谢谢!
我已经设置awstats来读取云端日志文件,我需要能够生成特定文件的命中报告,这些文件是用于横幅的iamges.我更改了"NotPageList"选项以排除图像文件,我删除了awstats*.txt数据文件并运行了一个新的更新但jpg图像仍未计为页面.为了让这个工作,我需要做什么?
LogFile="/var/log/cloudfront-logs/mydomain.log"
LogFormat="%time2 %cluster %bytesd %host %method %virtualname %url %code %referer %ua %query"
LogSeparator="\t"
SiteDomain="d2fxxxxxx.cloudfront.net"
HostAliases="d2fxxxxxx.cloudfront.net"
NotPageList="css js class bmp ico rss xml swf"
DecodeUA=1
Run Code Online (Sandbox Code Playgroud) 我正在使用 RubyXL 动态生成包含一些日期的电子表格文件。文档有点稀疏,所以我一直在查看源代码,看起来该库只对调用Date和DateTime时进行特殊处理change_contents,所以这就是我正在做的:
cell = sheet.add_cell_obj RubyXL::Cell.new(sheet, row_index, col_index)
cell.change_contents(Time.now.to_datetime)
Run Code Online (Sandbox Code Playgroud)
当我以这种方式创建电子表格时,Excel 不会将这些单元格的格式设置为日期。我猜我需要设置一些其他字段,也许cell.datatype,但我不确定。或者,也许我吠错了树。有人知道该怎么做吗?
如果我在Mac OS X或iPhone OS上的Core Graphics中编写绘图代码,我可以通过调用以下方法将活动填充颜色设置为红色:
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0); // RGB(1,0,0)
Run Code Online (Sandbox Code Playgroud)
如果我想要50%灰色,我可以打电话:
CGContextSetRGBFillColor(context, 0.5, 0.5, 0.5, 1.0); // RGB(0.5,0.5,0.5)
Run Code Online (Sandbox Code Playgroud)
但是对于灰色阴影,很容易做出一条较短的线并且打电话:
CGContextSetGrayFillColor(context, 0.5, 1.0);
Run Code Online (Sandbox Code Playgroud)
但是,这个函数不是简单地调用RGB方法,强度值被复制三次; 相反,它正在将上下文的颜色空间从DeviceRGB更改为DeviceGray.下一次调用RGB方法会将其切换回来.
我很想知道:
我要求技术上的好奇心,而不是过早优化的愿望,所以请将你的告诫保持在最低限度.
我正在尝试将大量数据导入到iPhone上的核心数据存储中.我正在使用SQLite支持核心数据存储.这似乎比我预期的要长.我已经减少了例程,因此它基本上只是尝试获取一个对象(看它是否已经存在),然后创建一个新对象(如果它没有)(他们从来没有这样做,因为我导入数据).但是,提取并不是耗时的部分.这是对象的创建.基本上,违规代码是:
MobileObject *newObject = (MobileObject *)[NSEntityDescription insertNewObjectForEntityForName:objDesc inManagedObjectContext:managedObjectContext];
Run Code Online (Sandbox Code Playgroud)
我注意到在模拟器上,它开始时相当快,大约有100个对象创建了一秒钟.它虽然减慢了,但是当创建了五千个对象时,对于100个对象几乎是2秒,并且当创建一万个对象时,每100个对象为4秒.整组21000个对象需要10分钟以上.这就是取出所有实际有用的代码(这只是一个fetch和一个对象创建).它在实际设备上要慢很多(可能是4倍).
我不明白的是为什么核心数据快速启动但随后开始减速.我已经尝试了索引和我的数据没有索引.我已经尝试创建自己的自动释放池,我会定期在循环中耗尽.我在每个对象创建后都尝试过保存.我试过等到最后才能保存.但无论我做什么,表现仍然看起来很悲惨.将新对象添加到核心数据存储中并且其中包含几千个对象,是否会很慢?有什么建议?
我正在尝试使用Restkit来调用我的Web服务器api,但是事情不起作用.我的控制器只显示活动指示器,没有任何反应.
我有一个api电话,假设要返回前50个视频,例如:http: //example.com/services/getTop50Video
返回的格式为:
<results>
<mysql_host>72.9.41.97</mysql_host>
<results>
<title/>
<views/>
<video_id>j2xFxHgENt4</video_id>
<thumbnail>http://img.youtube.com/vi/j2xFxHgENt4/2.jpg</thumbnail>
<url/>
</results>
...
</results>
Run Code Online (Sandbox Code Playgroud)
我的应用代表代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Configure RestKit Object Manager
RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:@"http://example.com/services"];
RKObjectMapper* mapper = objectManager.mapper;
[mapper registerClass:[YouTubeVideo class] forElementNamed:@"video"];
// Other non relevant stuff
}
Run Code Online (Sandbox Code Playgroud)
TWYouTubeVideo类:
@implementation TWYouTubeVideo
@synthesize title = _title;
@synthesize numberOfViews = _numberOfViews;
@synthesize videoID = _videoID;
@synthesize thumbnailURL = _thumbnailURL;
+ (NSDictionary*)elementToPropertyMappings {
return [NSDictionary dictionaryWithKeysAndObjects:
@"title", @"title",
@"views", @"numberOfViews",
@"video_id", …Run Code Online (Sandbox Code Playgroud) 我的Rails应用程序有一个带有"名称"属性的Post模型.我正在尝试使用RestKit从iOS创建一个新帖子.这是iOS代码.
NSDictionary* params = [NSDictionary dictionaryWithObject:@"amazingname" forKey:@"name"];
[[RKClient sharedClient] post:@"/posts" params:params delegate:self];
Run Code Online (Sandbox Code Playgroud)
这是在同一台机器上运行的服务器日志
Started POST "/posts" for 127.0.0.1 at Tue May 10 15:39:14 -0700 2011
Processing by PostsController#create as JSON
Parameters: {"name"=>"amazingname"}
MONGODB blog_development['posts'].insert([{"_id"=>BSON::ObjectId('4dc9be92be2eec614a000002')}])
Completed 406 Not Acceptable in 4ms
Run Code Online (Sandbox Code Playgroud)
如您所见,服务器获取请求,但名称未保存到数据库中.创建一个无名的帖子.我的iOS代码有什么问题?
我有Time对象,我正在写一个Excel文件.我正在使用axlsx库.将日期转换为单元格数据的类将DateTimeConverter其转换为浮点时间戳.
时间显示为mm/DD/YYYY HH:MM:SS预期,但值以GMT时间显示.
有没有办法让Excel格式化特定时区或读者的本地时区的时间?我目前的解决方案是将格式化的时间导出为字符串,我对此不满意.
有没有办法在不添加VBA宏的情况下执行此操作?(请注意,根据链接的"重复"问题,我不是要尝试使用VBA宏将本地时间转换为GMT,而是将GMT时间显示为当地时间 - 如果可能,最好不要使用VBA宏.)