function getConfig(config, args) {
if (args) {
for (var proto in args) {
config[proto] = args[proto];
}
}
return config;
}
function getConnection() {
return new ActiveXObject("ADODB.Connection");
}
function getRecordset() {
return new ActiveXObject("ADODB.Recordset");
}
var DB = {};
DB.ConnectionString = 'Provider=Sqloledb;User ID=sa;Password=sa;Initial Catalog=T;Data Source=WWW-D17F81FA113\\SQLEXPRESS;';
//添加 一条记录
DB.Add = function (table, keyValueCol) {
var returnID=null;
var Conn = getConnection();
Conn.Open(DB.ConnectionString);
var Rs = getRecordset();
Rs.Open('select * from '+table+' where 1=2', Conn, 3, 2);
Rs.AddNew();
for (var key in keyValueCol) {
Rs.Fields.Item(key).Value = keyValueCol[key];
}
Rs.Update();
Rs.Close();
Rs = null;
Conn.Close();
Conn = null;
return DB.Get("select IDENT_CURRENT('"+table+"') as ID")["ID"];
}
//修改一条记录
DB.Upd = function (sql, keyValueCol) {
var Conn = getConnection();
Conn.Open(DB.ConnectionString);
var Rs = getRecordset();
Rs.Open(sql, Conn, 3, 2);
for (var key in keyValueCol) {
Rs.Fields.Item(key).Value = keyValueCol[key];
}
Rs.Update();
Rs.Close();
Rs = null;
Conn.Close();
Conn = null;
}
//执行 无返回结果的查询
DB.Exe = function (sql) {
var Conn = getConnection();
Conn.Open(DB.ConnectionString);
Conn.Execute(sql);
Conn.Close();
Conn = null;
}
//获得 一个查询记录
DB.Get = function (sql) {
var _record = null;
var Conn = getConnection();
Conn.Open(DB.ConnectionString);
var Rs = getRecordset();
Rs.Open(sql, Conn, 1, 1);
if (!Rs.EOF) {
_record = {};
for (var i = 0; i _record[Rs.Fields.Item(i).Name] = Rs.Fields.Item(i).Value;
}
}
Rs.Close();
Rs = null;
Conn.Close();
Conn = null;
return _record;
}
//批量 获得/添加 数据
DB.Batch = function () {
var Conn = getConnection();
var Rs = getRecordset();
var _Batch = this;
var _table = null;
_Batch.Open = function (sql) {
Conn.Open(DB.ConnectionString);
Rs.Open(sql, Conn, 3, 2);
}
_Batch.Add = function (table , keyValueCol) {
Rs.AddNew();
for (var key in keyValueCol) {
Rs.Fields.Item(key).Value = keyValueCol[key];
}
Rs.Update();
return DB.Get("Select IDENT_CURRENT('"+ table +"') as ID")["ID"];
}
_Batch.Get = function () {
var record_arr = [];
while (!Rs.EOF) {
var _record = {};
for (var i = 0; i _record[Rs.Fields.Item(i).Name] = Rs.Fields.Item(i).Value;
}
record_arr.push(_record);
Rs.MoveNext();
}
return record_arr;
}
_Batch.Close = function () {
Rs.Close();
Rs = null;
Conn.Close();
Conn = null;
}
}
//获得 sql 的某页的数据
DB.List = function () {
var _Config;
var _List = this;
_List.Page = {
PS : 20,
AP : 1,
PC : 1,
RC : 1
};
_List.Query = function () {
_Config = new getConfig({
fields : " * ",
table : null,
where : " 1=1 ",
sort : " ID desc ",
pk : " ID "
}, arguments[0]);
_List.Page.RC = DB.Get("select count(" + _Config.pk + ") as [count] from " +
_Config.table + " where " + _Config.where).count;
_List.Page.PC = Math.ceil(_List.Page.RC / _List.Page.PS);
if(_List.Page.AP>_List.Page.PC) _List.Page.AP = _List.Page.PC;
}
_List.Get = function (p) {
p = isNaN(p) ? 1 : parseInt(p);
_List.Page.AP = p;
var sql = '';
if (p > 1) {
sql = "select top " + _List.Page.PS + " " + _Config.fields +
" from " + _Config.table + " where " + _Config.where +
" and " + _Config.pk +
" not in(select top " + (p - 1) * _List.Page.PS + " " + _Config.pk +
" from " + _Config.table + " where " + _Config.where +
" order by " + _Config.sort + ") order by " + _Config.sort;
} else {
sql = "select top " + _List.Page.PS + " " + _Config.fields +
" from " + _Config.table + " where " + _Config.where + " order by " + _Config.sort;
}
var return_arr = null;
var Batch = new DB.Batch();
Batch.Open(sql);
return_arr = Batch.Get();
Batch.Close();
return return_arr;
}
}
//sql 只读
DB.Reader = function () {
var Conn = getConnection();
var Rs = getRecordset();
var _Reader = this;
_Reader.EOF = false;
_Reader.Open = function (sql) {
Conn.Open(DB.ConnectionString);
Rs.Open(sql, Conn, 1, 1);
_Reader.EOF = Rs.EOF;
}
_Reader.Read = function () {
if (!Rs.EOF) {
var _record = {};
for (var i = 0; i _record[Rs.Fields.Item(i).Name] = Rs.Fields.Item(i).Value;
}
Rs.MoveNext();
return _record;
} else {
_Reader.EOF = true;
}
}
_Reader.Close = function () {
Rs.Close();
Rs = null;
Conn.Close();
Conn = null;
}
}
%>

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

WebStorm Mac版
好用的JavaScript開發工具