我在Linux机器上使用sqlite3,我在没有用户名和密码的情况下获取数据库.我可以设置相同的用户名和密码吗?
我正在创建一个数据库帮助程序类,对于其中的一些方法,我只查询数据库和我写的其他人.
我的理解是这两种方法都会打开数据库并让程序只读取或写入数据库.
对于查询语句,值得使用getReadableDatabase(),或者两种方法之间的性能差异很小.
谢谢你的时间.
受到关于SQLite3中以下代码的这个问题的启发:
static int strlen30(const char *z){
const char *z2 = z;
while( *z2 ){ z2++; }
return 0x3fffffff & (int)(z2 - z);
}
Run Code Online (Sandbox Code Playgroud)
这附带一条提交消息,说这个函数有助于int溢出.
我对这部分特别感兴趣:
const char *z2 = z;
while( *z2 ){ z2++; }
Run Code Online (Sandbox Code Playgroud)
对我来说,这个循环前进,z2直到z2指向null终止符.然后z2-z产生字符串长度.
为什么不使用strlen()这个部分并重写如下:
return 0x3fffffff & (int)(strlen(z));
Run Code Online (Sandbox Code Playgroud)
为什么使用循环+减法代替strlen()?什么可以循环+减法做什么strlen()不可以?
创建标准SQLite游标后,我使用以下命令迭代条目:
while (cursor.moveToNext()) {
}
Run Code Online (Sandbox Code Playgroud)
正在正确处理所有行.我读过的所有文档都说明你需要发出一个文件moveToFirst()来确保你指向光标集的第一个条目.
这是否有效,即使它不应该,另一个版本可能没有相同的处理?
我正在尝试使用Django 1.3进行单元测试.通常,我使用MySQL作为我的数据库后端,但由于单个单元测试的旋转速度非常慢,我使用的是Sqlite3.
所以,为了我的单元测试切换到Sqlite3,在我的settings.py中,我有:
import sys
if 'test' in sys.argv:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME':'/tmp/database.db',
'USER' : '',
'PASSWORD' : '',
'HOST' : '',
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的unittest时python manage.py test myapp.Test.test_myfunc,我得到错误:
DatabaseError: no such table: django_content_type
Run Code Online (Sandbox Code Playgroud)
谷歌搜索显示有一个小的可能 原因,这种错误,其中没有一个似乎适用于我.我没有运行Apache,所以我没有看到权限如何成为一个问题.正在创建文件/tmp/database.db,因此/ tmp是可写的.应用程序django.contrib.contenttypes包含在我的INSTALLED_APPS中.
我错过了什么?
编辑:我在Django 1.5中再次遇到这个问题,但没有提出的解决方案.
我在app store上有一个版本1.0的应用程序,它使用sqlite数据库来读取数据.
现在我想用数据库文件中的更新将我的版本更新为1.1.
在我在设备上安装应用程序时使用开发人员证书时它没有更新数据库,因为数据库文件已经存在于文档文件夹中,所以我必须手动删除应用程序并再次安装它.
我的问题是,当任何用户更新应用程序时,数据库也会根据当前版本进行更新.
欢迎任何建议.
谢谢
我在我的rhel 5上安装了django 1.4.默认情况下,rhel 5有python 2.4但是要使用django 1.4我手动安装python 2.7.3开发服务器运行正常,但是当我创建一个新项目并更改设置后. py文件为:
'ENGINE':'django.db.backends.sqlite3','NAME':'/ home/oracle /Desktop/test1/my.db'
现在,当我给出python2.7 manage.py syncdb命令时,我得到的错误为:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 443, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 69, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py",
line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py",
line 8, in <module>
from django.core.management.sql import custom_sql_for_model,
emit_post_sync_signal …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序项目Cordova,在我有一个简单的Sqlite数据库.
--------------------
ID | Name | Number |
--------------------
Run Code Online (Sandbox Code Playgroud)
由于我是Android应用程序的新手,我只是准备好了UI.我有两个text inputs,一个<div>显示表数据的标签和3 buttons.当用户点击每列时,弹出窗口显示删除或编辑行内容.

这是HTMLUI 的代码:
<body>
<h1>My first App</h1>
<p>Open Database</p>
<div id="qrpopup" > //The hidden div tag for implementing the popup
<hr/>
<input type="text" id="editNameBox"><br>
<input type="text" id="editNumberBox"><br>
<button onclick="goDelete()">Delete</button>
<button onclick="goEdit()">Edit</button>
<button onclick="document.getElementById('qrpopup').style.display='none';">Discard</button>
</div>
<div>
Name<input type="text" value="Name" id="txtName">
Number<input type="text" value="123" id="txtNumber"><hr/>
</div>
<div id="tblDiv"></div>
<div style="text-align: center">
<button onclick="goInsert()">Insert</button>
<button onclick="goSearch()">Search</button>
<button onclick="successCB()">Show All</button>
</div>
</body> …Run Code Online (Sandbox Code Playgroud) 我无法理解在SQLite3数据库中使用回调函数.
据我所知,它用于遍历具有多个记录的SELECT语句.但我不明白它是如何做到这一点或如何使我自己有用的回调.我已经多次阅读 TutorialsPoint以尝试理解,但这不是为我做的.
当我在Visual Studio中使用他们的示例和调试来查看如何填充和遍历参数数组时,我迷路了.VS也只显示数组中的当前插槽,而不是整个数组本身.
如果您需要任何澄清,请告诉我,因为我在这里学习!
我要求有人解释如何使用回调.也许是其他人如何使用它的一些例子.只是解释这个人甚至在做什么:
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s: ", (const char*)data);
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的SQLite3表重现为保存在手机文档中的.csv文件.
为了做到这一点,我试图在文件的末尾附加一个新行,每次在我的数组中找到一个对象时,这都有效 - 但它似乎一遍又一遍地重现最后一行的确切数量我的SQL表中的行.
这是SQLite Select查询:
NSMutableArray *allGPS = [[NSMutableArray alloc] init];
GPS *gps = [[GPS alloc] init];
// Open the database from the users filessytem
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"GPS.db"];
if (sqlite3_open([databasePath UTF8String], &databaseHandle) == SQLITE_OK)
{
NSString *sqlStatement = [NSString stringWithFormat:@"SELECT * FROM GPSJob;"];
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(databaseHandle, [sqlStatement UTF8String], -1, &statement, NULL) == SQLITE_OK) {
NSLog(@"Statement prepared");
while(sqlite3_step(statement) == SQLITE_ROW)
{
[gps setJobNo:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,0)]];
[gps setSourceMonitor:[NSString …Run Code Online (Sandbox Code Playgroud) sqlite ×10
android ×3
c++ ×2
django ×2
ios ×2
xcode ×2
app-store ×1
c ×1
callback ×1
cordova ×1
database ×1
django-admin ×1
iphone ×1
javascript ×1
objective-c ×1
performance ×1
python ×1
string ×1
strlen ×1
unit-testing ×1
username ×1