我想提出一个空间射击对我的最后一年的项目,并认为这将是冷静地包括本地比分/高分屏.我不知道如何解决这个问题,如果有人能指出我正确的方向,我会非常感激,我在网上发现的所有例子对我来说都很复杂.此外,我希望分数显示在用opengl es渲染的游戏屏幕上.谢谢.
我正在研究一个android项目,我必须删除表中的所有记录:
public void deleteAll(){
SQLiteDatabase db=this.getWritableDatabase();
String req="delete * from "+ TABLE_ENIGME;
db.execSQL(req);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我调用我的函数deleteAll时,这个异常被揭发了:
android.database.sqlite.SQLiteException: near "*": syntax error: delete * from enigme2
Run Code Online (Sandbox Code Playgroud)
那么为什么"*"是不合适的呢?
我试图以sqlite多种方式实现向数据库插入数据.在运行时,执行的代码返回插入的id,但是当我检查数据库时,没有插入任何内容.有谁知道这是什么问题?提前谢谢了.我在这里实现的代码:
sqlite3 *database;
sqlite3_stmt *addStmt;
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"MoviePlayerMgmt.rdb"];
BOOL success =[fileMgr fileExistsAtPath:dbPath];
if(!success)
{
NSLog(@"Cannot locate file %@",dbPath);
}
else{
NSLog(@"__________Open the file__________ %@",dbPath);
if(!(sqlite3_open([dbPath UTF8String], &database)==SQLITE_OK))
{
NSLog(@"An error has occured: %@",[NSString stringWithUTF8String:(char *) sqlite3_errmsg(database)]);
}
else{
NSLog(@"Open database");
NSString *strName = txtName.text;
NSLog(@"Computer name is %@",strName);
NSString *strIP = txtIP.text;
NSString *strPort = txtPort.text;
NSString *insertStatement = [NSString stringWithFormat:@"INSERT INTO COMPUTER (computerName, IPAddress, portNumber) VALUES (\"%@\", \"%@\", \"%@\")", …Run Code Online (Sandbox Code Playgroud) 当我尝试在桌面上保存我的数据库以使用SQLite浏览器进行编辑时,我已经这样做了
在文件资源管理器选项卡中,您将按照路径:
data> data> my-package-name> databases> my-database-file.
我选择文件,单击磁盘图标,然后我在控制台中出现此错误,
failed to pull selection
null
Run Code Online (Sandbox Code Playgroud)
我的方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.creeruncompte);
db=openOrCreateDatabase("DBProjet",MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS Client ( _id integer primary key, NomClient VARCHAR,PrenomClient VARCHAR,Email VARCHAR,MotPasse VARCHAR);");
db.execSQL("CREATE TABLE IF NOT EXISTS PointVisite ( _idp integer primary key , NomPoint VARCHAR,Adresse VARCHAR,Info VARCHAR,Commentaire VARCHAR);");
}
Run Code Online (Sandbox Code Playgroud)
我谷歌它,并找到一些如何解决它 和其他但没有任何工作
你能帮助我吗
谢谢
我正在学习iOS数据库中的一些概念......我知道sqlite3(开源)用于数据库,但我正在浏览一些github代码......
并遇到这两行:
NSString *sqLiteDb = [[NSBundle mainBundle] pathForResource:@"banklist"
ofType:@"sqlite3"]
Run Code Online (Sandbox Code Playgroud)
和
NSString *databaseFilename =@"abc.db"
Run Code Online (Sandbox Code Playgroud)
sqlite3何处使用db?db在textedit中打开文件时的示例项目我无法理解)?db文件和sqlite文件?如果我发布我的应用程序,并在2周内发布新的更新,我需要更改数据库,解决方案是什么?例如在Android中我有一个SQlite库覆盖检查数据库版本的Void.谢谢.
在下面的代码中,一切看起来都是正确的,但无论我提供什么数据,带注释的行总是返回错误代码null.我研究并改变了我能想到的所有参数.第一个sqlite3_bind_text行成功,接下来的三行每次都失败.我无法弄清楚.救命?
-(void)fillSqliteDb
{
sqlite3 *database;
if (sqlite3_open([[self sqliteFilePath] UTF8String], &database) != SQLITE_OK) {
sqlite3_close(database);
NSAssert(0, @"Failed to open database");
}
NSString *createSQL = @"CREATE TABLE IF NOT EXISTS FUNCTIONS (nouns TEXT, verbs TEXT, adverbs TEXT, adjectives TEXT);";
char *errorMsg;
if (sqlite3_exec (database, [createSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
sqlite3_close(database);
NSAssert(0, @"Error creating table: %s", errorMsg);
}
sqlite3_stmt *stmt;
for (int i=0; i<260; i++) {
NSString * pln = self.pluralNouns[i]; // pre-filled array of 260 words
NSString * vrb …Run Code Online (Sandbox Code Playgroud) 这是我发现的一个简短片段:
"删除数据
一旦不再需要数据,就可以使用 delete() 方法将其从数据库中删除。delete() 方法需要 3 个参数,数据库名称、WHERE 子句和 WHERE 子句的参数数组。要从表中删除所有记录,请为 WHERE 子句和 WHERE 子句参数数组传递 null。
db.delete("tbl_states", "id=?", new String[] {Long.toString(countryId)});
只需调用 delete() 方法即可从 SQLite 数据库中删除记录。delete 方法需要表名和可选的 where 子句和 where 子句参数替换数组作为参数。where 子句和参数替换数组的工作方式与 update where ? 被数组中的值替换。”
像往常一样,我找不到关于以下内容的简单文档:
我正在开发基于 SQLite[3.6.20] 的 C 库,但遇到了我不明白的行为。当需要关闭数据库连接时,我执行抢先回滚,然后我尝试使用sqlite3_next_stmt()迭代所有未完成的准备好的语句并完成它们:
sqlite3_stmt *stmt;
for (stmt = sqlite3_next_stmt(db, NULL);
stmt;
stmt = sqlite3_next_stmt(db, stmt)) {
sqlite3_finalize(stmt);
}
Run Code Online (Sandbox Code Playgroud)
这确实迭代了几个语句,并且通过一些检测,我可以确认每个语句的sqlite3_finalize()返回SQLITE_OK。
然而,在某些测试用例中,当我此后尝试关闭数据库时,我得到 SQLITE_BUSY(代码 5)并解释说存在未完成的语句。事实上,如果那时我sqlite3_next_stmt()再次调用,它会返回一个我的程序可能已经准备好的语句,但它不在之前由sqlite3_next_stmt().
那么,我认为未完成的声明应该sqlite3_next_stmt()在第一次通过时提供是错误的吗?我是否应该做一些额外的事情来确保我的语句可以通过这种方式清理?
我知道通常最好的方法是对主键使用INTEGER字段,但是不幸的是,由于使用的API,我只能使用格式为CHAR_INT的主键(例如:ABC_12345)。
我将拥有大量数据(10亿条记录),并且优先考虑查询和插入速度,使用CHAR_INT主键是否会对速度产生较大影响?还是相对可以忽略不计?
另外,为字符串的CHAR部分创建数字ID会更有效吗?因此,使用前面的示例:ABC_12345将变成类似于1_12345。我知道它们都是字符串,只是想知道仅使用数字是否有效率。
我正在使用SQLite。
谢谢!
sqlite ×10
android ×4
database ×2
ios ×2
iphone ×2
c ×1
c# ×1
cocoa-touch ×1
ddms ×1
eclipse ×1
java ×1
objective-c ×1
opengl-es ×1
sql ×1
xamarin.ios ×1