Javascript怎么连接SQLite数据库

Javascript怎么连接SQLite数据库,第1张

javascript连接sqllite方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta content="text/htmlcharset=ISO-8859-1" http-equiv="content-type">

<title>Prova</title>

</head>

<body>

<script type="text/javascript">

//Provenia SRL ITC - Paola Savioli

//Questa funzione apre il database SQL Lite

//Il parametro che va cambiato è il nome del database

function ApriDatabase() {

try {

if (window.openDatabase) {

var shortName = 'Ristoranti.sqllite'

var version = '1.0'

var displayName = 'Ristoranti italia'

var maxSize = 65536// in bytes

db = openDatabase(shortName, version, displayName, maxSize)

}

} catch (e) {

alert('Apri Database' + e)

}

}

//Provenia SRL ITC - Paola Savioli

// Questa funzione eseque una query su un database aperto con la funzione ApriDatabase

function EseguiQuery($query, callback) {

try {

ApriDatabase()

if (window.openDatabase) {

db.transaction(

function (tx) {

tx.executeSql($query, [], function (tx, result) {

if (typeof (callback) == "function") {

callback(result)

} else {

if (callback != undefined) {

eval(callback + "(result)")

}

}

}, function (tx, error) {})

})

return rslt

}

} catch (e) {

alert('Esegui Query' + e)

}

}

function VisualizzaComuni() {

try {

var schemanode = document.GetElementById('RCOMUNI')

schemanode.innerHTML = ""

var result = EseguiQuery('SELECT * FROM COMUNE')

for (var i = 0i <result.rows.lenght++i) {

var row = result.row.item(i)

var notediv = document.createElement('div')

notediv.innerHTML = 'Codice Provincia:' + row['PROVINCIA'] + 'Nome:' + row['NAME']

schemanode.appendchild(notediv)

}

} catch (e) {

alert('Visualizza Comuni' + e)

}

}

</script>

<input type="button" name='select' onClick="VisualizzaComuni()"

value='Visualizza Comuni'>

<div id="RCOMUNI"></div>

</body>

</html>

sqlite是一个嵌入式的SQL数据库引擎,只用一个文件就ok,小巧方便,所以是一个非常不错的嵌入式数据库,在Mozilla Firefox使用SQLite作为数据库。

例如:存放cookies的文件就是一个SQLite的数据库文件,一般存在于 ~/.mozilla/firefox/cojs83dh.default目录下,那么如何进行查看e69da5e6ba90e799bee5baa6e79fa5e9819331333363376432呢?

可使用vim打开文件,查看到使用的格式是sqlite3,而在GNU Linux下有一个命令可以对其进行查看:sqlite3,以下就是具体的使用步骤:

0、使用命令对此数据库进行打开:

$ sqlite3 cookies.sqlite

进行入sqlite3命令行模式

1、查看此文件中的数据库的名称:

sqlite>.databases

seq name file

avaScript DataBase Connector

JSDBC:提供Javascript有效的连接数据库,目前支持MySQL、SQLite、ACCESS,后期会支持更多的数据库;

在从事AJAX开发的工程师肯定会希望有一个通过AJAX直接连接数据库的组件,这样,可以省掉后台很多的 *** 作步骤,比如免去了部署JAVA的运行环境,免去了写很多复杂的JDBC调用,不管出于调试的需要还是应用的需要,JSDBC都能够很好的集成到您的应用当中。

/**

* 类说明:该脚本主要是实现与JSDBC for MySQL 连接,方便用户在js直接使用MySQL

* 创建事件: 3333

*/

//Include OCX Object

document.writeln(" <OBJECT id='mysql' classid='clsid:9C579403-6745-4695-B14C-96212D319F18'")

document.writeln(" codebase='JSDBC_MySQL.ocx#Version=1,0,0,000'")

document.writeln(" WIDTH='0' HEIGHT='0'>")

document.writeln(" </OBJECT>")

//error message

var lasterr = ""

//Exec Falg

var execFlag

/**

* Connecte to mysql server

* provite:MySQL IP,PORT,DB Name,USER,Password,CharSet

*/

function connectMySQL()

{

execFlag = mysql.connecte("127.0.0.1","3306","testdb","root","123210","GBK")

if(execFlag == 1)

return 1

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Close already open Connection

*/

function closeMySQL()

{

execFlag = mysql.close()

if(execFlag == 1)

return 1

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Exec Insert Into SQL statement

* @param {Object} sql

*/

function insertMySQL(sql)

{

execFlag = mysql.insertData(sql)

if(execFlag == 1)

return 1

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Exec DataBase Manager Language

* @param {Object} sql

*/

function execDMLMySQL(sql)

{

execFlag = mysql.execDML(sql)

if(execFlag == 1)

return 0

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Exec Select Data From DataBase

* @param {Object} sql

* @param {Object} cnum == Number of fields in SQL statement

*/

function selectMySQL(sql,cnum)

{

var rs = mysql.selectData(sql,cnum)

if(rs.length >0)

{

var array = new Array()

var DataSet = new Array()

var rowsplit = ''//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的,使用时拷贝过去即可

var fieldsplit =''//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的,使用时拷贝过去即可

array = rs.split(rowsplit)

for(var i = 0i <array.lengthi++)

{

var DataRow = array[i].split(fieldsplit)

DataSet[i] = DataRow

}

return DataSet

}

else

{

lasterr = mysql.getLastError()

return null

}

}

/**

* Exec Delete SQL statement

* @param {Object} sql

*/

function deleteMySQL(sql)

{

execFlag = mysql.deleteData(sql)

if(execFlag == 1)

return 1

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Exec Update SQL statement

* @param {Object} sql

*/

function updateMySQL(sql)

{

execFlag = mysql.updateData(sql)

if(execFlag == 1)

return 1

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Exec Call Produce

* @param {Object} proname == Produce Name

* @param {Object} inparas == Produce IN Parameters

* @param {Object} outparas == Produce OUT Parameters

* @param {Object} cnum == Number of fields in OUT Parameters

*/

function callProduceMySQL(proname,inparas,outparas,cnum)

{

var rs = mysql.execProduce(proname,inparas,outparas,cnum)

if(rs.length == 0)

{

lasterr = mysql.getLastError()

return null

}

else

{

var array = new Array()

var DataSet = new Array()

var rowsplit = ''//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的

var fieldsplit =''//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的

array = rs.split(rowsplit)

var DataRow = new Array()

for(var i = 0i <array.lengthi++)

{

var fieldarray = array[i].split(fieldsplit)

DataSet[i] = fieldarray

}

return DataSet

}

}

/**

* Exec Transcation

* @param {Object} sql

*/

function execTranscationMySQL(sql)

{

execFlag = mysql.execTranscation(sql)

if(execFlag == 1)

return 1

else

{

lasterr = mysql.getLastError()

return 0

}

}

/**

* Get Last Error Message if exec error from js

*/

function getLastErrorMySQL()

{

return lasterr

}

/**

* Get Last Error Message if exec error from ocx

*/

function getLastErrorFromMySQL()

{

var lasterrmysql = mysql.getLastError()

return lasterrmysql

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6851839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存