『壹』 如何將本地的EXCEL數據存儲到區域網內的sql伺服器
要求
下面的列表列出了推薦使用的硬體、軟體、網路架構以及所需的 Service Pack:
Microsoft SQL Server 7.0、Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 的可用實例
Microsoft Visual Basic 6.0(針對使用 Visual Basic 的 ADO 示例)
本文的部分內容假定您熟悉下列主題:
數據傳輸服務
鏈接伺服器和分布式查詢
Visual Basic 中的 ADO 開發
回到頂端
示例
導入與追加
本文使用的示例 SQL 語句演示了「創建表」查詢。該查詢通過使用 SELECT...INTO...FROM 語法將 Excel 數據導入新的 SQL Server 表。如這些代碼示例所示,在繼續引用源對象和目標對象時,可以通過使用 INSERT INTO...SELECT...FROM 語法將這些語句轉換成追加查詢。
使用 DTS 或 SSIS
可以使用「SQL Server Data Transformation Services (DTS) 導入向導」或「SQL Server 導入和導出向導」將 Excel 數據導入到 SQL Server 表中。在逐步執行向導並選擇 Excel 源表時,要記住附加美元符號 ($) 的 Excel 對象名稱代表工作表(例如,Sheet1$),而沒有美元符號的普通對象名稱代表 Excel 指定的范圍。
使用鏈接伺服器
要簡化查詢,可以將 Excel 工作簿配置為 SQL Server 中的鏈接伺服器。 有關其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
306397 如何:結合 SQL Server 鏈接的伺服器和分布式查詢使用 Excel
下列代碼將 Excel 鏈接伺服器「EXCELLINK」上的 Customers 工作表數據導入新的名為 XLImport1 的 SQL Server 表:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
還可以通過按照以下方式使用 OPENQUERY 以全通過方式對源數據執行查詢:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
'SELECT * FROM [Customers$]')
使用分布式查詢
如果不想將對 Excel 工作簿的永久連接配置為鏈接伺服器,可以通過使用 OPENDATASOURCE 或 OPENROWSET 函數為特定目的導入數據。下列代碼示例也能將 Excel Customers 工作表數據導入新的 SQL Server 表:
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]
SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])
SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]')
使用 ADO 和 SQLOLEDB
當通過使用 Microsoft OLE DB for SQL Server (SQLOLEDB) 在 ADO 應用程序中連接到 SQL Server 時,可以使用與「使用分布式查詢」 一節中相同的「分布式查詢」語法將 Excel 數據導入 SQL Server。
下列 Visual Basic 6.0 代碼示例要求添加對 ActiveX 數據對象 (ADO) 的項目引用。此代碼示例還演示了如何在 SQLOLEDB 連接上使用 OPENDATASOURCE 和 OPENROWSET。
Dim cn As ADODB.Connection
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;Data Source=<server>;" & _
"Initial Catalog=<database>;User ID=<user>;Password=<password>"
'Import by using OPENDATASOURCE.
strSQL = "SELECT * INTO XLImport6 FROM " & _
"OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', " & _
"'Data Source=C:\test\xltest.xls;" & _
"Extended Properties=Excel 8.0')...[Customers$]"
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print "Records affected: " & lngRecsAff
'Import by using OPENROWSET and object name.
strSQL = "SELECT * INTO XLImport7 FROM " & _
"OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
"'Excel 8.0;Database=C:\test\xltest.xls', " & _
"[Customers$])"
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print "Records affected: " & lngRecsAff
'Import by using OPENROWSET and SELECT query.
strSQL = "SELECT * INTO XLImport8 FROM " & _
"OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
"'Excel 8.0;Database=C:\test\xltest.xls', " & _
"'SELECT * FROM [Customers$]')"
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print "Records affected: " & lngRecsAff
cn.Close
Set cn = Nothing
使用 ADO 和 Jet Provider
上一節中的示例使用 ADO 和 SQLOLEDB Provider 連接到從 Excel 到 SQL 導入的目標。也可以使用 OLE DB Provider for Jet 4.0 來連接到 Excel 源。
Jet 數據引擎可以通過使用具有三種不同格式的特殊語法來在 SQL 語句中引用外部資料庫:
[Full path to Microsoft Access database].[Table Name]
[ISAM Name;ISAM Connection String].[Table Name]
[ODBC;ODBC Connection String].[Table Name]
本節使用第三種格式創建到目標 SQL Server 資料庫的 ODBC 連接。可以使用 ODBC 數據源名稱 (DSN) 或者 DSN-less 連接字元串:
DSN:
[odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]
DSN-less:
[odbc;Driver={SQL Server};Server=<server>;Database=<database>;
UID=<user>;PWD=<password>]
下列 Visual Basic 6.0 代碼示例要求添加對 ADO 的項目引用。此代碼示例演示了如何使用 Jet 4.0 Provider 通過 ADO 連接將 Excel 數據導入到 SQL Server。
Dim cn As ADODB.Connection
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\test\xltestt.xls;" & _
"Extended Properties=Excel 8.0"
'Import by using Jet Provider.
strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
"Server=<server>;Database=<database>;" & _
"UID=<user>;PWD=<password>].XLImport9 " & _
"FROM [Customers$]"
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print "Records affected: " & lngRecsAff
cn.Close
Set cn = Nothing
也可以通過使用該語法(Jet Provider 支持)將 Excel 數據導入其他 Microsoft Access 資料庫、索引順序存取方法 (ISAM)(「desktop」)資料庫或 ODBC 資料庫。
『貳』 html5本地存儲更新資料庫sql 怎麼寫
HTML5本地存儲——Web SQL Database
在HTML5 WebStorage介紹了html5本地存儲的Local Storage和Session Storage,這兩個是以鍵值對存儲的解決方案,存儲少量數據結構很有用,但是對於大量結構化數據就無能為力了,靈活大不夠強大。
Web SQL Database
我們經常在資料庫中處理大量結構化數據,html5引入Web SQL Database概念,它使用 SQL 來操縱客戶端資料庫的 API,這些 API 是非同步的,規范中使用的方言是SQLlite,悲劇正是產生於此,Web SQL Database規范頁面有著這樣的聲明
This document was on the W3C Recommendation track but specification work has stopped. The specification reached an impasse: all interested implementors have used the same SQL backend (Sqlite), but we need multiple independent implementations to proceed along a standardisation path.
大概意思就是
這個文檔曾經在W3C推薦規范上,但規范工作已經停止了。目前已經陷入了一個僵局:目前的所有實現都是基於同一個SQL後端(SQLite),但是我們需要更多的獨立實現來完成標准化。
也就是說這是一個廢棄的標准了,雖然部分瀏覽器已經實現,但。。。。。。。
三個核心方法
但是我們學一下也沒什麼壞處,而且能和現在W3C力推的IndexedDB做比較,看看為什麼要廢棄這種方案。Web SQL Database 規范中定義的三個核心方法:
openDatabase:這個方法使用現有資料庫或新建資料庫來創建資料庫對象
transaction:這個方法允許我們根據情況控制事務提交或回滾
executeSql:這個方法用於執行SQL 查詢
openDatabase
我們可以使用這樣簡單的一條語句,創建或打開一個本地的資料庫對象
var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1024 * 1024);
openDatabase接收五個參數:
資料庫名字
資料庫版本號
顯示名字
資料庫保存數據的大小(以位元組為單位 )
回調函數(非必須)
如果提供了回調函數,回調函數用以調用 changeVersion() 函數,不管給定什麼樣的版本號,回調函數將把資料庫的版本號設置為空。如果沒有提供回調函數,則以給定的版本號創建資料庫。
transaction
transaction方法用以處理事務,當一條語句執行失敗的時候,整個事務回滾。方法有三個參數
包含事務內容的一個方法
執行成功回調函數(可選)
執行失敗回調函數(可選)
db.transaction(function (context) {
context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)');
context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")');
});
這個例子中我們創建了一個table,並在表中插入三條數據,四條執行語句任何一條出現錯誤,整個事務都會回滾
executeSql
executeSql方法用以執行SQL語句,返回結果,方法有四個參數
查詢字元串
用以替換查詢字元串中問號的參數
執行成功回調函數(可選)
執行失敗回調函數(可選)
在上面的例子中我們使用了插入語句,看個查詢的例子
db.transaction(function (context) {
context.executeSql('SELECT * FROM testTable', [], function (context, results) {
var len = results.rows.length, i;
console.log('Got '+len+' rows.');
for (i = 0; i < len; i++){
console.log('id: '+results.rows.item(i).id);
console.log('name: '+results.rows.item(i).name);
}
});
完整示例
<!DOCTYPE HTML>
<html>
<head>
<title>Web SQL Database</title>
</head>
<body>
<script type="text/javascript">
var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1024 * 1024);
var msg;
db.transaction(function (context) {
context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)');
context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")');
});
db.transaction(function (context) {
context.executeSql('SELECT * FROM testTable', [], function (context, results) {
var len = results.rows.length, i;
console.log('Got '+len+' rows.');
for (i = 0; i < len; i++){
console.log('id: '+results.rows.item(i).id);
console.log('name: '+results.rows.item(i).name);
}
});
});
</script>
</body>
</html>
最後
由於Web SQL Database規范已經被廢棄,原因說的很清楚,當前的SQL規范採用SQLite的SQL方言,而作為一個標准,這是不可接受的,每個瀏覽器都有自己的實現這還搞毛的標准。這樣瀏覽器兼容性就不重要了,估計慢慢會被遺忘。不過Chrome的控制台真心好用啊,神馬cookie、Local Storage、Session Storage、Web SQL、IndexedDB、Application Cache等html5新增內容看的一清二楚,免去了很多調試代碼工作。
『叄』 redis怎麼緩存sql數據
利用redis做緩存伺服器來緩解資料庫查詢壓力是非常有效也是非常有必要的, 當用戶第一次點擊頁面的時候查詢資料庫, 然後將查詢結果緩存在redis伺服器中,緩存時間隨你的數據改變時間而定,這樣可大大降低資料庫壓力;下面是具體函數方法;
public function getSqlVal(){
//獲取參數列表,這個參數隨你需求而定,一般可能需要傳入dbname,查詢方式如fetchAll,查詢語句等
$argv = func_get_args();
//假設這里現在只傳入dbName和sql語句
$dbName = $argv[0];
$sql = $argv[1];
//現在把這個參數列表轉成md5之後作為存redis的key值
$md5SqlKey = MD5(serialize($argv));
//下面通過一個redis函數來進行存取數據
$res = getRedisData($md5SqlKey);
//如果取到數據,說明已經緩存在redis伺服器中, 直接取數據就好, 如果沒有數據, 則再去資料庫查詢數據,再講查詢的數據存在redis伺服器中
if(!empty($res)) {
return $res;
}
//後面是查詢資料庫操作,查詢結果返回在$res中
getRedisData($md5SqlKey,$res); //講返回結果存在redis中
return $res;
}
public function getSqlVal(){
//獲取參數列表,這個參數隨你需求而定,一般可能需要傳入dbname,查詢方式如fetchAll,查詢語句等
$argv = func_get_args();
//假設這里現在只傳入dbName和sql語句
$dbName = $argv[0];
$sql = $argv[1];
//現在把這個參數列表轉成md5之後作為存redis的key值
$md5SqlKey = MD5(serialize($argv));
//下面通過一個redis函數來進行存取數據
$res = getRedisData($md5SqlKey);
//如果取到數據,說明已經緩存在redis伺服器中, 直接取數據就好, 如果沒有數據, 則再去資料庫查詢數據,再講查詢的數據存在redis伺服器中
if(!empty($res)) {
return $res;
}
//後面是查詢資料庫操作,查詢結果返回在$res中
getRedisData($md5SqlKey,$res); //講返回結果存在redis中
return $res;
}
『肆』 html5,什麼是本地存儲什麼是websql資料庫存儲
HTML5 :
將成為HTML、XHTML以及HTMLDOM的新標准。
HTML的上一個版本誕生於1999年。自從那以後,Web世界已經經歷了巨變。
HTML5仍處於完善之中。然而,大部分現代瀏覽器已經具備了某些HTML5支持。
本地存儲:
儲存在用戶本地終端上的數據,多數使用cookie
Cookie技術誕生以來,它就成了廣大網路用戶和Web開發人員爭論的一個焦點。有一些網路用戶,甚至包括一些資深的Web專家也對它的產生和推廣感到不滿,這並不是因為Cookie技術的功能太弱或其他技術性能上的原因,而是因為Cookie的使用對網路用戶的隱私構成了危害。因為Cookie是由Web伺服器保存在用戶瀏覽器上的小文本文件,它包含有關用戶的信息[2]。
websql資料庫存儲:
使用資料庫進行數據存儲,現在流行的資料庫有:
1、Access一般用在小網站上,類似企業站,功能比較簡單,對數據要求不高;
2、Mssql是一個比較大的完善的資料庫,在windows上常用,配NETASP等程序。
3、Mysql是一個小型的公開源代碼的免費資料庫,在windows,linux上都常用,和PHP程序組成一對完美搭檔。
『伍』 任何高效的將資料庫中大量數據儲存到本地
1、可以在遠程伺服器上備份資料庫,然後下載.bak文件在本地恢復2、鏈接上遠程伺服器,選中要備份的資料庫--》右擊--》任務--》生成腳本然後根據向導執行,但是在「選擇腳本選項」頁面要把 編寫數據的腳本 的選項 設置成TRUE,然後下一步,選擇你要備份的表、存儲過程、視圖等 知道最後生成一個.sql文件,在本地執行就好了。
『陸』 如何把從資料庫讀取的數據緩存到本地
先看資料庫表, 我裡面有46條記錄,其中有三條重復,我就拿其中一條emp_id 為"DWR65030M" 做例子
『柒』 怎樣知道自己寫的SQL語句是有緩存的
--清除存儲過程緩存
DBCC FREEPROCCACHE
--清除會話緩存
DBCC FREESESSIONCACHE
--清除系統緩存
DBCC FREESYSTEMCACHE('All')
--清除所有緩存
DBCC DROPCLEANBUFFERS
再配合以下的語句:
--內存使用情況
SELECT * FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Target Server Memory (KB)','Total Server Memory (KB)')
-- 內存狀態
DBCC MemoryStatus
你就能知道SQL語句對緩存的使用情況了
『捌』 sql 存儲過程中本地臨時表的生存周期
你用的是動態語句,動態語句執行完後,臨時表也就無效了,所以你後面那一句會報錯。
可以創建##table這種全局臨時表即可。
select
*
into
##tmp
from
table
再看看別人怎麼說的。
『玖』 本地資料庫管理,查詢,文件緩存都是app基礎嗎
是的 這些的都是基本的只是 然後的才能開發的 採納吧
『拾』 JDBC訪問SQLServer有沒有緩存存在那裡用的伺服器是tomcat,資料庫為本地和異地的時候,是否都有緩存
什麼是緩存,什麼是內存?如果說是List的話那是默認將數據添加到列表對象的內存堆棧中。jdbc就沒有緩存,你可以每次執行一條sql然後在ide調試狀態下去看看你的資料庫中執行的sql就明白了,如果要將查詢對象緩存需要自己實現,現在一些成熟的項目ehcache,oscache等等,還有就是自己實現了。