我开始在iPhone上部署一个离线应用程序,但它仍处于繁重的开发阶段.我的查询有一个简单的错误处理程序:
db.transaction(tx) {
tx.executeSql("SELECT * FROM TABLE",[], successHandler, errorHandler);
});
function errorHandler(transaction, error) {
alert("Error : " + error.message);
}
Run Code Online (Sandbox Code Playgroud)
当我测试自己的应用程序,并得到一个错误,我设法找到生成错误的查询是什么.但是当它是我的用户(当然是远程用户)时,它非常困难,因为错误消息并不具体.
有没有办法将上下文信息添加到我的错误消息中,例如sql查询或注释参数?
我的旧应用程序使用带有SQLite的web2py作为数据库.现在我想尝试将此应用程序移植到Dart并再次使用SQLite作为数据库.
我找不到任何关于如何使用它的文档.我刚刚发现了如何使用MySQL和sqljocky.
我试过读取web_sql和indexed_db API,但我找不到连接SQLite的方法.我怎样才能使用Dart的SQLite?
我有简单的WebSQL数据库,有1个表和3列.我想再添加一列,但如果数据库已经存在,我就无法做到.只有在我在缓存中清理它之后才有可能,但后来我丢失了所有数据.
如何在不删除数据库的情况下向表中添加新列?
// database creating
MYDB.init.open = function(){
MYDB.init.db = openDatabase("MYDB","1.0"," super-data-base",1024*1024*5);
}
//table creating
MYDB.init.createTable = function(){
var database = MYDB.init.db;
database.transaction(function(tx){
tx.executeSql("CREATE TABLE IF NOT EXISTS mytable (ID INTEGER PRIMARY KEY ASC,item TEXT,description TEXT)", []);
});
}
//
//a lot of code for adding datas and reading datas
//
//database updating that does not work
MYDB.init.updateTable = function(){
var database = MYDB.init.db;
database.transaction(function(tx){
tx.executeSql("ALTER TABLE mytable ADD time VARCHAR NOT NULL BEFORE description");
});
}
Run Code Online (Sandbox Code Playgroud)
所有其他UPDATE功能都运行良好.
有没有办法从 WebSQL 运行 PRAGMA 命令?PRAGMA 在 SQLite 文档中定义,但似乎在 WebSQL 中不起作用。
我在Safari中使用HTML 5 Web SQL数据库.我将数据库大小设置为5 MB.创建数据库后,大小增加了,但我找不到数据库的新大小.创建后我在哪里可以找到数据库的大小?
我正在尝试优化我的本地数据库在正在开发的Web应用程序中填充的速度.目前,它使用PHP访问数据库,然后使用Javascript将该数据插入本地数据库.
问题是,除了几个条目之外的任何东西都会减慢速度,我很确定这是因为它为每一行执行单独的SQL查询.我一直在阅读交易(提交和回滚,什么不是),这似乎是一个答案,但我不完全确定如何实现它,甚至在哪里.
以下是加载特定表的其中一个函数的示例.
function ploadcostcodes()
{
$IPAddress = '';
$User = '';
$Password = '';
$Database = '';
$Company = '';
$No='';
$Name='';
ploadSQLConnection($IPAddress,$User,$Password,$Database,$Company);
Run Code Online (Sandbox Code Playgroud)
//这连接到信息来源的实际数据库.
$Login = 'XXXXXXX';
$conn=mssql_connect($IPAddress,$Login,$Password);
if (!$conn )
{
die( print_r('Unable to connect to server', true));
}
mssql_select_db($Database, $conn);
$indent=" ";
$sql="SELECT Cost_Code_No as No, Description as Name, Unit_of_Measure FROM v_md_allowed_user_cost_codes WHERE Company_No = " . $Company . " and User_No = '" . $User . "'";
$rs=mssql_query($sql);
if (!$rs)
{
exit("No Data Found");
}
while …Run Code Online (Sandbox Code Playgroud) 我目前正在将mysql数据库的xml导出导入到websql数据库中,以用于在线移动体验.
一切正常,花花公子,直到我插入的任何字符串都有双引号.通常,在PHP中,我会在插入时使用类似:mysql_real_escape_string的东西.
我知道我可以尝试的选项是编写正则表达式并创建用于添加/删除斜杠的函数.谷歌上有很多这方面的例子 - 但我希望看到的是,是否有其他人遇到过这种情况,并且可能有更好的解决方案.
谢谢你的帮助!
我正在寻找一种针对PhoneGap应用程序的演进,稳定且经过验证的数据库解决方案,其尺寸不受限制.
我在LocalStorage工作了一年多,而且效果很好.至少如果你没有达到5 MB的限制.
这就是我的担心:我目前正在计划的应用程序将需要处理更多数据,我不想说"抱歉,我们达到了5 MB的限制,无法完成您的操作!" 对于刚买了64 GB iPhone的用户.
有什么建议吗?
谢谢!
托马斯
我正在开发一个项目,这是一个移动网络应用程序.我正在使用JQuery mobile.
我有一个带有jquery列表视图的页面,当用户点击列表视图中的每个项目时,与该项目关联的所有数据都将传递到对话框页面.我使用本地存储来传递页面之间的值.但是,我要做的是记录用户的操作并将其显示为活动源.存储他们点击的项目,他们在打开的对话框页面上花了多长时间,以及能够在新页面上显示所有这些信息.例
你点击了项目a
你在b项上花了15秒
等等
那么本地存储是否适合这个或WEB SQL?
我还注意到WeB SQL不再被主动维护了?http://www.w3.org/TR/webdatabase/ 这是否意味着它将被弃用?
本地存储示例:
每个项目都是一个json对象,我需要传递整个对象才能在新页面中查看它,所以我有:
function addPostToLocalStorage(YTfeeditems){
$(".item").on('click', function () {
var i = $('.item').index(this);
console.log(i);
var Viditem = YTfeeditems[i];
console.log(Viditem);
localStorage['youtubeclickedPost'] = JSON.stringify(Viditem);
storedItem = localStorage['youtubeclickedPost'];
retrievPostFromLocalStorage();
}
});
function retrievPostFromLocalStorage(){
var retrievedStringItem = localStorage.getItem(['youtubeclickedPost']);
var convertedPost = JSON.parse(retrievedStringItem);
showDetailedPost(convertedPost);
}
Run Code Online (Sandbox Code Playgroud)
当点击项目时,我想存储视频的ID,记录点击的时间,记录ytfullviewpage打开的时间以及单击"竖起"图像或"拇指"的页面记录内单击"已点击",将这些详细信息添加到本地ftorage并在新页面中检索它们以显示它们.我似乎可以理解在执行此操作时采用本地存储的方法.我已经在这里粘贴了我的javascript
这可能会给你一个更好的主意.
我是新的websql.i无法在websql中插入主键.
创建查询
db.transaction(function (tx) {
var sql =
"CREATE TABLE vehicles ( "+
"id integer primary key autoincrement,"+
"vehicle_ref_no VARCHAR(255),"+
"vehicle_plate_no VARCHAR(255),"+
)";
tx.executeSql(sql);
});
Run Code Online (Sandbox Code Playgroud)
插入查询
db.transaction(
function (tx) {
tx.executeSql(
"INSERT INTO vehicles VALUES (?, ?)",
[data.vehicle_ref_no,
data.vehicle_plate_no,
],
function (tx, result) {
console.log("Query Success");
},
function (tx, error) {
console.log("Query Error: " + error.message);
}
);
},
function (error) {
console.log("Transaction Error: " + error.message);
},
function () {
console.log("Transaction Success");
}
);
Run Code Online (Sandbox Code Playgroud)
这段代码不添加自动增量值,任何想法?除了我以外,还有什么好方法吗?