我正在尝试创建一个匹配字符串函数,该函数将从qml读取一个SQLLite(javascript创建的)数据库并匹配该字符串(在我的情况下为其提供的Web地址),这是我的数据库文件代码:
.pragma library
var db;
// opens database at launch
function openDB()
{
db = openDatabaseSync("BookmarksDB","1.0","Bookmarks Database",1000000);
createTable();
}
// creates table if it doesn't exist, otherwise ignores
function createTable()
{
db.transaction(
function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS bookmarks (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, url TEXT, creationdate TEXT, modified DATETIME)");
}
)
}
// deletes table
function dropTable()
{
db.transaction(
function(tx) {
tx.executeSql("DROP TABLE IF EXISTS bookmarks");
}
)
}
// creates a single bookmark record
function createBookmark(bookmarkItem)
{
db.transaction(
function(tx) {
tx.executeSql("INSERT INTO bookmarks (title, url, creationdate, modified) VALUES(?,?,?,?)",[bookmarkItem.title, bookmarkItem.url, bookmarkItem.creationdate, bookmarkItem.modified]);
}
)
}
// updates a single bookmark record
function updateBookmark(bookmarkItem)
{
db.transaction(
function(tx) {
tx.executeSql("UPDATE bookmarks SET title = ?, url = ?, creationdate = ?, modified = ? WHERE id = ?",
[bookmarkItem.title, bookmarkItem.url, bookmarkItem.creationdate, bookmarkItem.modified, bookmarkItem.id]);
}
)
}
// deletes a single bookmark record
function deleteBookmark(id)
{
db.transaction(
function(tx) {
tx.executeSql("DELETE FROM bookmarks WHERE id = ?", [id]);
}
)
}
// read list of bookmarks
function readBookmarkList(model)
{
model.clear();
var sqlstring = "SELECT id, title, url, creationdate FROM bookmarks";
db.readTransaction(
function(tx) {
var rs;
rs = tx.executeSql(sqlstring);
for (var i = 0; i < rs.rows.length; i++) {
model.append(rs.rows.item(i))
}
}
)
}
// read a single bookmark item
function readBookmarkItem(id) {
var data = {}
db.readTransaction(
function(tx) {
var rs = tx.executeSql("SELECT * FROM bookmarks WHERE id=?", [id])
if(rs.rows.length === 1) {
data = rs.rows.item(0)
}
}
)
return data;
}
// create a default bookmark item
function defaultItem()
{
return {title: "", url: "", creationdate: new Date(), modified: new Date()}
}
我想创造类似的东西, function checkUrl(url){
if(dbvalues == url){ 返回true } else {return false}
} }
但我不知道如何从表中读取所有数据并将其与函数中给出的url进行比较。
有人可以帮帮我吗?
我是一个带有SQL东西的完整菜鸟
在Symbian上使用Qt Quick 1.1
答案 0 :(得分:0)
为什么不尝试像
这样的东西function checkURL(url) {
var exists
db.readTransaction(function(tx) {
var sql = "SELECT url FROM bookmarks WHERE url=? LIMIT 1";
var rs = tx.executeSql(sql, [url])
exists = rs.rows.length > 0
})
return exists
}
LIMIT 1
子句将告诉数据库引擎在找到符合条件的第一行时停止搜索。
我自己没试过,但它应该有效。