我已经设置了swift项目来使用sqlite.有时,插入时实际上并不插入正确的(或全部)值.我知道,因为我重新启动应用程序,当我回来时,条目是随机错误(没有插入的东西)或零.但有时是正确的.
这里是我设置的地方,是的,插入前数据的数据是正确的.
let update = "INSERT INTO ToDoItem (itemName, completed, goalDate) " + "VALUES (?, ?, ?);"
var statement: COpaquePointer = nil
if sqlite3_prepare_v2(database, update, -1, &statement, nil) == SQLITE_OK {
let itemName = item.itemName as String
let completed = item.completed == true ? 1 : 0
sqlite3_bind_text(statement, 1, itemName, -1, nil)
sqlite3_bind_int(statement, 2, Int32(completed))
if let goalDate = item.goalDate?.toString() {
sqlite3_bind_text(statement, 3, goalDate, -1, nil)
} else {
sqlite3_bind_text(statement, 3, "", -1, nil)
}
//println("inserting \(itemName), \(completed) and \(item.goalDate?.toString())") …Run Code Online (Sandbox Code Playgroud) 在npm文档中,只有可见的预处理语句用于插入.这些准备好的语句是否适用于选择,更新和删除?
我试过select,没有一个.each函数可以回调行.任何人都可以这样做或有资源链接,因为我可以肯定无法找到任何.
2015年8月19日 - 在3.13更新中似乎已经修复了Bug ,即使他们在更改日志中列出的唯一内容是"Fixed an issue which caused crashes when using setCampaignParametersFromUrl".想拿就拿吧.
2015年6月8日 - 仍然遇到这个问题.如果我禁用自动发送事件([GAI sharedInstance].dispatchInterval = -1;)然后我仍然收到错误.因此,我认为问题在于将事件插入到谷歌分析SQLite数据库中,不知何故我正在进行的数据库语句正在变为现实void.
2015年6月10日 - 仍然遇到崩溃.试图删除我的控制器,手动扩展GAITrackedViewController和发送createScreenView轨道,不会改变崩溃频率.
2015年6月25日 - 仍然遇到崩溃.
我已经添加Google Analytics SDK 3.12到我的iPhone应用程序,一切都按预期工作 - 我运行应用程序,可以看到我在Web界面上设置的所有点击和事件.
我正在我的AppDelegate右上角初始化SDK didFinishLaunchingWithOptions,如下所示:
[[GAI sharedInstance] trackerWithTrackingId:GOOGLE_ANALYTICS_ID];
Run Code Online (Sandbox Code Playgroud)
但是,我发现当我尝试自己使用SQLite时,运行Google Analytics会产生错误.它们可能表现为严重错误,例如:
"Database disk image is malformed" 然后insta-crashes"Disc i/O error" 每当我运行一个查询(虽然没有崩溃)而且它们也会导致我自己的SQLite查询失败,例如:
if (! sqlite3_prepare_v2(_db, [sql …Run Code Online (Sandbox Code Playgroud) sqlite google-analytics objective-c ios google-analytics-sdk
我试图从SQLite中提取最新的DateTime字段,并返回错误的时间.
这是数据库中的数据:

这是我通过LINQ获取最新DateTime的方法:
public string getLastSyncTime()
{
using (var db = new SQLite.SQLiteConnection(this.DBPath))
{
var query = db.Table<SyncAudit>()
.OrderByDescending(c => c.SyncTime)
.Select(c => c.SyncTime)
.FirstOrDefault();
return query.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它没有返回预期的日期时间.我正在上午1点1/1分获得:

我究竟做错了什么?
编辑:这是使用的提供商,每个请求:https://components.xamarin.com/view/sqlite-net
编辑2:请求的SyncAudit类:
class SyncAudit
{
public string Server { get; set; }
public string Database { get; set; }
public DateTime SyncTime { get; set; }
public int Successful { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个UWP.我正在使用sqlite-net-pcl库.将我的应用程序从RC升级到RTM后,我收到运行时错误 - 无法找到sqlite3.dll - 如果它在Mobile模拟器或设备上运行.在我添加了对C++ 2013 Runtime Package的引用并在Local Machine中运行它之后,它完美地工作了.
例外消息:
消息"'SQLitePCL.raw'的类型初始化程序引发了异常." 串
innerexception消息:
{"无法加载DLL的sqlite3":找不到指定的模块.(HRESULT异常:0x8007007E)"} System.Exception {System.DllNotFoundException}
当然我无法添加对"Sqlite for Universal App Platform"的引用,因为我发现了以下错误
严重性代码说明项目文件行错误有效负载包含两个或多个具有相同目标路径"sqlite3.dll"的文件.源文件:C:\ Program Files(x86)\ Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll C:\ Users\sMavrikis .nuget\packages\SQLitePCL.raw_basic\0.7.1\build \native\sqlite3_dynamic\winrt81\arm\sqlite3.dll TestApp1
如果我查看ALTER TABLE语句的语法定义,它似乎表明表名可以带有前缀schema-name.这是否意味着SQLite支持schematas(SQL Server的方式)?或者这schema-name是指另一个数据库(类似于MySQL)?
我有一个看起来像这样的查询:
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a'))
Run Code Online (Sandbox Code Playgroud)
它在~100ms内在本地SDK上运行,并以可接受的速度在云中运行.当我添加第二个订单(所以看起来像这样:)
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a')
.order('-b'))
Run Code Online (Sandbox Code Playgroud)
..在本地SDK上需要大约10秒(长100倍),并且在云中以与之前相同的速度运行.我需要有二阶属性.
有关设置的一些细节:
db模型,而不是ndbsqlite3 datastore.db "PRAGMA integrity_check了本地数据库,没有报告任何错误问题:如何在本地更快地运行查询?(在整个时间里,10s滞后的开发真的很困难.)
我在模型中拼写错误,现在我的一个列拼写错误了.我想删除数据库中的所有表,修复model.py中的错误,并在模型中使用正确的拼写重新创建数据库.
我试着用在建议这篇文章,但我按照列出存在的命令后,表仍然存在.
有人有快速的方法吗?
我看到很多示例显示如何使用sqlite3交互式shell,例如:
$ sqlite3
$ sqlite3> SELECT * from x;
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种方法在SQLite3数据库中使用bash脚本创建一个表,也就是说,非交互式 - 任何人都知道如何做到这一点?
例如,下面的不确实似乎工作,但它仍然互动:
#!/bin/bash
sqlite3 test.db "create table n (id INTEGER PRIMARY KEY,f TEXT,l TEXT);"
sqlite3 test.db "insert into n (f,l) values ('john','smith');"
sqlite3 test.db "select * from n";
Run Code Online (Sandbox Code Playgroud)
还有一个问题 - 通过调用"sqlite3"作为后台进程来"唤醒SQLite3"是否有帮助 - 或者它几乎总是在MacOS和Linux的后台运行?
让我们举个例子:我有一个表单,其中有几个部分,每个部分都有问题.侧面,我有答案映射到问题,他们有另一列,我想在查询时过滤:
所以我有以下实体:
@Entity(tableName = "sections")
public class Section {
@PrimaryKey
public long id;
public String title;
}
@Entity(tableName = "questions")
public class Question {
@PrimaryKey
public long id;
public String title;
public long sectionId;
}
@Entity(tableName = "answers")
public class Answer {
@PrimaryKey
public long id;
public long questionId;
public int otherColumn;
}
Run Code Online (Sandbox Code Playgroud)
在DAO部分,我想要检索所有这些.
这是我想通过此查询填充的POJO:
class SectionWithQuestions {
@Embedded
public Section section;
@Relation(parentColumn = "id", entityColumn = "sectionId", entity = Question.class)
public List<QuestionWithAnswer> questions;
public static class QuestionWithAnswer {
@Embedded …Run Code Online (Sandbox Code Playgroud)