我正在开发一个C# windows service,它以指定的时间间隔(15分钟)顺序轮询多个数据库。我没有使用多线程,因为它是一个非常繁重的每个数据库的报告生成过程,并且有其他OLTP应用程序在同一服务器上使用相同的数据库,如果我们启动多个线程来同时处理多个数据库,它将使服务器宕机。
我需要知道哪个定时器应该使用System.Timer或System.Threading.Timer。此外,如果间隔设置为15分钟,并且数据库处理尚未完成,并且花费的时间超过15分钟,则在所有处理完成之前,不应执行间隔15分钟。有谁能帮忙吗。
我正在我的应用程序中创建一个新的数据库文件。当我启动iExplorer时,我可以将数据库文件复制到mac,然后轻松地打开它。
为什么这不能保护数据文件,使其在我的应用程序之外不可读?
var status = sqlite3_open_v2(dbFilePath.cStringUsingEncoding(NSUTF8StringEncoding)!, &_sqliteDB, SQLITE_OPEN_FILEPROTECTION_COMPLETE|SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE, nil)
if status != SQLITE_OK {
我在试着计算持续时间。我使用的是MySQL 5.0,但出现以下错误
1305 - FUNCTION smgm.DATEDIFF dose not exist
我的问题是:
SELECT DATEDIFF (MI,timein,timeout)/60 as duration
FROM User_smgm
where ID=2;
我的数据库名称是SMGM
你知道为什么会这样吗?当我尝试简单的DATEDIFF时,它工作得很好。就像我试过的
SELECT DATEDIFF('2008-11-30','2008-11-29') DURATION