JavaScript DataBase Connector
JSDBC:提供Javascript有效串連資料庫,目前支援MySQL、SQLite、ACCESS,後期會支援更多的資料庫;
在從事AJAX開發的工程師肯定會希望有一個通過AJAX直接連接資料庫的組件,這樣,可以省掉後台很多的操作步驟,比如免去了部署JAVA的運行環境,免去了寫很多複雜的JDBC調用,不管出於調試的需要還是應用的需要,JSDBC都能夠很好的整合到您的應用當中。
/**
* 類說明:該指令碼主要是實現與JSDBC for MySQL 串連,方便使用者在js直接使用MySQL
* 建立事件:2009-06-12
*/
//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 = 0;i < array.length; i++)
{
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 = 0;i < array.length; i++)
{
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;
}