我有这个功能似乎正在做它应该做的事情:
var getData = function(query)
{
var data = [];
db.transaction(function(tx) {
tx.executeSql(query, [], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
data.push(results.rows.item(i));
}
}, error);
});
return data;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时console.log(data),它会显示一组包含正确数据的对象,您可以在Chrome控制台的示例中看到:

但是,data.length为0,因此无法进行迭代.我试过了
for(var i = 0; i < data.length; i++) {
$('.regions').append(data[i].region + '<br>');
};
Run Code Online (Sandbox Code Playgroud)
这是不好的,因为data.length是0.我试过了
for(var key in data) {
$('.regions').append(data[key].region + '<br>');
};
Run Code Online (Sandbox Code Playgroud)
哪个不起作用,大概是出于同样的原因.我甚至尝试过$.each()jQuery,但没有任何东西进入循环.我console.log(data)在这些循环之前做了一个权利来仔细检查它仍然有我想要的数据.我用手动手动重建数据
data = [
{
available: "1",
company_id: 1, …Run Code Online (Sandbox Code Playgroud) 我有2个像这样的结构表:
People
----------
>ID, Name, Surname
Projects
----------
>ID, Assistant#1, Assistant#2, Assistant#3, Assistant#4,
> Assistant#5, Assistant#6, Assistant#7, Assistant#8, Assistant#9,
> Assistant#10, lot of other columns..... (every assistant column
> contains an integer, the people ID)
Run Code Online (Sandbox Code Playgroud)
现在,我想查询我的数据库并从Project表中获取一行(让我们假设ID = 3的行)包含项目表的所有列,特别是每个助手都用它的正确名称和姓氏替换.我已经设法做了这个(有很多连接),但是凭借我的小sql经验,我的代码看起来非常笨重,我确信有更好的方法来做到这一点.
提前致谢.
我的iOS项目中的sqlite存在问题.我的配置:
当我在设备上安装我的应用程序时,我在控制台"没有这样的表测试"中收到此错误消息.但桌子肯定存在.
奇怪的是:如果我在另一台Mac上使用以下配置创建相同的项目(相同),那么该应用程序可以完美运行:
此外,如果我在第二个配置(Snow Leopard - Xcode 4.2)上安装第一个配置(Lion - Xcode 4.3.2)创建的项目,该应用程序仍然无法正常工作.
相反,如果我在Mac上安装第二个配置(Snow Leopard - Xcode 4.2)创建的项目第一个配置(Lion - Xcode 4.3.2),该应用程序可以工作.
这个问题让我抓狂!有人有想法吗?
我目前有一个存在的表,我可以从中提取数据.我想要做的是检查表中是否已经存在表,如果没有,我想创建表并将其保存到bundle(意味着路径将在主包中).我希望在setInput方法的顶部检查和创建数据库.我一直在寻找与此类似的东西,但我还没有想出任何东西.非常感谢任何帮助.这是我的代码:
-(IBAction)setInput:(id)sender
{
NSString *strStoreNumber;
NSString *strRegNumber;
strStoreNumber = StoreNumber.text;
strRegNumber = RegNumber.text;
lblStoreNumber.text = strStoreNumber;
lblRegNumber.text = strRegNumber;
NSString* databasePath = [[NSBundle mainBundle] pathForResource:@"tblStore" ofType:@"sqlite"];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
NSLog(@"Opened sqlite database at %@", databasePath);
sqlite3_exec(database, "CREATE TABLE IF NOT EXISTS tblStore (ID INTEGER PRIMARY KEY AUTOINCREMENT, Message TEXT)", NULL, NULL, NULL);
//...stuff
}
else
{
NSLog(@"Failed to open database at %@ with error %s", databasePath, sqlite3_errmsg(database));
sqlite3_close (database);
}
//
NSString *querystring;
// create your statement …Run Code Online (Sandbox Code Playgroud) 从我阅读一些Android取证文章我明白sqlite记录可以恢复,但只有当sqlite没有使用SQLITE_SECURE_DELETE选项编译(覆盖已删除的内容为'0')或没有触发真空(返回操作系统未分配空间)+ sqlite上也有选项可以自动进行真空吸尘.
在恢复已删除的记录方面,您对Android了解多少?它是用这个选项编译的吗?意见,链接,任何事情都受到欢迎
PS.我也知道删除的其他方法,通过将行中的特定标志标记为已删除..但数据仍然存在..所以我不感兴趣!
我正在尝试在Android中的SQLite数据库中创建一个表.我把所有东西都搞定了,但它一直告诉我,我没有列"年龄",当我清楚的时候!有人可以帮忙吗?
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "contactsManager";
// Contacts table name
private static final String TABLE_CONTACTS = "contacts";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";
private static final String KEY_AGE = "age";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating …Run Code Online (Sandbox Code Playgroud) Cursor cursor = db.rawQuery("SELECT id,lastname FROM people WHERE lastname=null; ",null);
Run Code Online (Sandbox Code Playgroud)
此查询不返回lastname为空的成员.该查询有什么问题?我应该检查那个WHERE lastname =""吗?
我想使用F#连接到SQL Server以外的数据库,使用与以下代码相同的代码:http://msdn.microsoft.com/en-us/library/hh361033(v = vs.110).aspx
我假设我需要数据库的ADO.Net连接器(MySQL或SQLite等).但是,一旦完成,我应该如何修改连接字符串:
type dbSchema = SqlDataConnection<"Data Source=MYSERVER\INSTANCE;Initial Catalog=MyDatabase;Integrated Security=SSPI;">
let db = dbSchema.GetDataContext()
Run Code Online (Sandbox Code Playgroud)
表示我想使用MySQL或SQLite等.
非常感谢
我正在尝试使用21个表构建数据库,每个表都绑定约束.我已经在PHPmyAdmin中实现了数据库,然后下载了结构脚本以在我的Android SQLite数据库中导入.
但我想知道在Android中使用许多表构建关系数据库的好方法,以及如何创建它们.
目前我有一个实现SQLiteOpenHelper的类:
public class SqlSig extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
for(int i = 0; i != ConfigBDD.requetes.length; i++){
db.execSQL(ConfigBDD.requetes[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
ConfigBDD.requetes [i]获取包含表创建请求和约束请求的字符串数组.此代码根本不起作用,并且logCat显示PRIMARY KEY指令的错误:
05-29 15:13:51.992: E/Database(8187): Failure 1 (near "KEY": syntax error) on 0x15c4b8
when preparing 'CREATE TABLE IF NOT EXISTS `arret` ( `id` int(11) NOT NULL , `id_externe`
varchar(10) DEFAULT NULL, `id_pid` int(11) NOT NULL, `nom` varchar(50) NOT NULL,
`description` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `id_pid` (`id_pid`) )
DEFAULT …Run Code Online (Sandbox Code Playgroud) 我可以ListView从我的SQLiteDatabasein 填充我的项目lunch.java.现在我想点击一个项目(共8个项目ListView)并转到一个新的活动,Display.java并显示它的所有营养成分.
编辑后
lunch.java:
public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
switch(pos)
{
case 0 :
String mealName = (String) parent.getItemAtPosition(pos);
Cursor cursor = dbopener.getBreakfastDetails(mealName);
cursor.moveToNext();
id = cursor.getLong(cursor.getColumnIndex(mealName));
String message = cursor.getString(1) + "\n" + cursor.getInt(2);
Intent event1 = new Intent("com.edu.tp.iit.mns.Display");
event1.putExtra("name", id);
startActivity(event1);
break;
Run Code Online (Sandbox Code Playgroud)
Display.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display);
TextView tv = (TextView) findViewById(R.id.tvfoodName);
Intent intent = getIntent();
long id …Run Code Online (Sandbox Code Playgroud)