VBS 连接数据库 - 样例
例程1:
Public strConn As String
Public conn
Public rs
Public xx
Public Sub Workbook_Open()
strConn = "DSN=testdatabase;UID=;password="
Set conn = CreateObject("ADODB.Connection")
conn.Open strConn
UserForm1.Show
xx = 10000
Set rs = conn.Execute("SELECT * FROM table1")
Cells(1, 1).Value = rs("name")
End Sub
Set MyConn=Sever.CreateObject(“ADODB.Connection”)“FILEDSN=d:\Program Files\”
“SELECT * FROM Mytable”)“<BR>”&RS(“Mycolumn”))
MyConn.Open
Common Files\ODBC\Data Sources\MyData.dsn
Set RS=MyConn.Execute(
WHILE NOT RS.EOF
Response.Write(
RS.MoveNext
WEND
RS.Close
MyConn.Close
Set MyConn=Sever.CerateObject(“ADODB.Connection”)“FILEDSN=d:\Program Files\”
“SELECT * FROM Mytable”)
MyConn.Open
Common Files\ODBC\Data Source\MyData.dsn
Set RS=MyConn.Execute(
%>
<TABLE BORDER=1>
<TR>
<% FOR i=0 to RS.Fields.Count-1 %>
<TH><% =RS(i).Name *></TH>
<% Next %>
</TR>
<% While Not RS.EOF %>
<TR>
<% FOR i=0 TO RS.Fields.Count-1 %>
<TD><% = RS(i) %></TD>
<% Next %>
</TR>
<%
RS.MoveNext
WEND
RS.Close
MyConn.Close
例程2:
1、 運行數據庫DSN
WinCC 內部變量:@DatasourceNameRT,如:CC_MyTest_06_04_08_09_05_14R
2、普通連接的ConnectionString
(1)連接運行數據庫
strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initia
l Catalog=CC_MyTest_06_04_08_09_05_14R;Data Source=.\WINCC"
(2)連接其它數據庫,如:Northwind
strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initia
l Catalog=Northwind;Data Source=.\WINCC"
注:普通連接方式下,所有標準的SQL 語句都可以使用。
3、歸檔數據庫的ConnectionString
strSQL="Provider=WinCCOLEDBProvider.1;Catalog=CC_MyTest_06_04_08_09_05_14R;D
ata Source=.\WinCC"
在此連接方式下,只能用WinCCOLEDBProvider 提供的方法訪問歸檔數據庫:
(1)單個歸檔變量查詢:
strSQL = "TAG:R,10,'2006-04-12 16:00:00','2006-04-13 15:59:59'"
或
strSQL = "TAG:R,'Archive1\Tag1','2006-04-12 16:00:00','2006-04-13 15:59:59'"
(2)多個歸檔變量查詢:
strSQL = "TAG:R,(10;14;15),'2006-04-12 16:00:00','2006-04-13 15:59:59'"
或
strSQL = "TAG:R,('Archive1\Tag1';'Archive2\Tag1';'Archive2\Tag2'),'2006-04-12 16:00:00','2
006-04-13 15:59:59''"
注:如果需要對查詢結果再作過濾,可以使用Recordset.Filter 屬性再次過濾。
(3)報警信息的查詢:
strSQL = "ALARMVIEW:Select * From AlgViewEnu Where DateTime>='2006-04-12 16:00:
00' And DateTime<='2006-04-13 15:59:59' And MsgNR=11"
注:Where 語句可以根據自己的需要填寫。
例程3:
Set StrConn = CreateObject( "Adodb.connection ")
Set StrNew = CreateObject( "Adodb.RecordSet ")
StrConn.ConnectionString = "Provider=SQLOLEDB.1;Password= 你的密
碼;Persist Security Info=True;User ID=你的sql server 登錄用戶名;Initial Catalog=
你要登錄的SQL SERVER 數據庫名;Data Source=數據庫服務器地址 "
StrConn.Open
StrSQL= "SELECT TOP 1 * FROM telephone ORDER BY TTIME DESC
"
StrNew.Open StrSQL,StrConn,1,3
例程4:
ADO 是Microsoft 提供和建議使用的新型數據訪問接口,它是建立OLEDB 之上的一個抽象
層。微軟公司在操作系統中默認提供了 Access 的 ODBC 驅動程序以及 JET 引擎,
一、對ADO 對象的主要操作,一般包括6 個方面:
1.連接到數據源。通常使用ADO 的Connection 對象。一般使用相應的屬性打開到數據源的
連接,設置游標的位置,設置默認的當前數據庫,設置將使用的OLEDBProvider,直接提交
SQL 腳本等。
2.向數據源提交命令。通常涉及ADO 的Command 對象。可查詢數據庫并返回結果在Recor
dset 對象中。
3.執行SELECT 查詢命令。在提交SQL 腳本的任務時,不用創建一個Command 對象,就可
完成查詢。
4.可以通過ADO 的Recordset 對象對結果進行操作。
5.更新數據到物理存儲。作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]
6.提供錯誤檢測。通常涉及ADO 的Error 對象。
二、ADO 中主要對象的功能
Recordset 對象,用來封裝查詢的結果。
Field 對象,用來表達一行結果中各子段的類型和值。
Error 對象,用來檢測和判斷在數據庫操作中出現的錯誤,比如連接失敗。 在ADO 中,許
多對象名后多了一個"s",比如Error->Errors,Field->Fields 等等。添加"s"意味著是相應對象
的Collection(集合)對象,比如Errors 是Error 對象的Collection 對象。Collection 有點像
數組(Array),但不同的是,Collection 可以以不同類型的數據或對象作為自己的元素,而
數組中的各元素通常都是相同類型的。所以,在看到一個對象名最后是"s",通常表明這是
一個Collection 對象,比如Errors 中的各元素是由Error 對象的實例組成的。
三、具體應用
1、創建mdb 數據庫
ADOX 是ADO 對象的擴展庫。它可用于創建、修改和刪除模式對象,如數據庫和表格等。
其常用的對象有:Catalog—>創建數據庫。Column—>表示表、索引或關鍵字的列。作者:
臨汾市外事旅游局薛靖瀾,轉載請注明出處]
Key—>表示數據庫表中的關鍵字。
常用的方法有: Append 將對象添加到 其集合。Delete 刪除集合中的對象。作者:臨汾市
外事旅游局薛靖瀾,轉載請注明出處]
set cat= createobject("ADOX.Catalog")
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\shujuku.mdb"
Set tbl=createobject("ADOX.Table")
tbl.Name ="MyTable"
tbl.Columns.Append "姓名", 202 'adInteger
tbl.Columns.Append "性別", 3 'adInteger
tbl.Columns.Append "工作單位", 202 ,50 'adVarWChar
cat.Tables.Append tbl
不過你要操縱數據庫就連一個數據庫也不建,未免懶惰了點,用代碼雖然可以完成,但是我
覺得對數據約束完成的比較困難,本代碼也就是示范個例子,并不推薦使用此類方法。
2、打開數據庫 [作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]
Provider=Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source="
Set Objconn = createobject("ADODB.Connection")
Objconn.Open Provider & "數據庫名稱"
3、創建記錄集
Set Objrs = CreateObject("ADODB.Recordset")
4、執行SQL 查詢語句
Sql="SQL 查詢語句" '例如:Select count(*) from table1
Set objrs = objconn.execute(sql)
一般情況下,我們將絕大多數的操作轉化為SQL 語句完成。
常用的SQL 語句
在學習SQL 語句之前,讓我們先來對數據庫做一個基本的了解。一個數據庫中可能包含了
很多個基本單位叫做表。表格被分為“行”和“列”。每一行代表表的一個單獨組成部分,每一
列代表相同性質的一組數據。舉例來說,如果我們有一個記載顧客資料的表格,行包括姓、
名、地址、城市、國家、生日等。而一列則代表了所有的地址或者國家等。
一、建立數據表,我們前邊說過利用ADOX.Catalog 建立數據庫和數據表的方法,但是用的
似乎不是很多,一般情況下,如果我們需要在數據庫中動態建立一個表,我們將工作交給S
QL 語句來做,其基本語法是:
CREATE TABLE [表格名]([列名1] 數據類型 , [列名2] 數據類型,... )
例如我們要建立一個基本顧客表:
Create table [顧客表]([姓名] text(8), [性別] text(2),[住址] text(30))
二、插入數據項
insert into [數據表名稱] (數據項1,數據項2,...) values (值1,值2,...)
insert into 語句用來添加新的數據到數據庫中的指定表。通過(數據項1,數據項2,...) values
(值1,值2,...)來為新添加的數據賦初值。
三、刪除數據項
delete from [數據表名稱] where [數據項1] like [值1] and/or [數據項2] like [值2] ...作
者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]
四、更新數據項
update [數據表名稱] set 數據項1=值1,數據項2=值2,... where [數據項1] like [值1] and/
or [數據項2] like [值2] ...
該語句可以修改數據庫中指定數據表內的指定數據,如果不是用where 限定條件就表示修改
該表內所有的數據條目。
五、查詢數據項
select [數據內容] from [數據表名稱] where [數據項1] like [值1] and/or [數據項2] like
[值2] ... order by [數據項] asc/desc
[數據內容]部分表示所要選取的表格中的數據項,使用*表示選取全部。[數據表名稱]表示要
從哪一個表格中選取,如果你沒有接觸過數據庫可能很難了解什么是數據表格,沒關系,我
將在后面用到它的時候再說明。where 表示選取的條件,使用like 表示相等,也支持>=這樣
的判斷符號,同時使用多個條件進行選取時中間要使用and 進行連接。order by 決定數據的
排列順序,asc 表示按照[數據項]中的數據順序排列,desc 表示倒序,默認情況為順序。sel
ect 語句中除select 和from 之外其它均為可選項,如果都不填寫表示選取該數據表中的全部
數據。例如:下面的語句查詢某數據庫中表名稱為:testtable 中姓名為“張三”的nickname 字
段和email 字段。
SELECT nickname,email FROM testtable WHERE name='張三'
(一) 選擇列表
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部
變量和全局變量)等構成。
1、選擇所有列
例如,下面語句顯示testtable 表中所有列的數據:
SELECT * FROM testtable
2、選擇部分列并指定它們的顯示次序查詢結果集合中數據的排列順序與選擇列表中所指定
的列名排列順序相同。
例如:SELECT nickname,email FROM testtable
3、更改列標題
在選擇列表中,可重新指定列標題。定義格式為:列標題=列名
列名 列標題如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列
語句使用漢字顯示列標題:
SELECT 昵稱=nickname,電子郵件=email FROM testtable
(二) FROM 子句指定SELECT 語句查詢的表。
最多可指定256 個表,它們之間用逗號分隔。如果選擇列表中存在同名列,這時應使用對象
名限定這些列所屬的表或視圖。例如在usertable 和citytable 表中同時存在cityid 列,在查詢
兩個表中的cityid 時應加以限定。
(三) WHERE 子句設置查詢條件
WHERE 子句設置查詢條件,過濾掉不需要的數據行。例如下面語句查詢年齡大于20 的數
據:
SELECT * FROM usertable WHERE age>20
WHERE 子句可包括各種條件運算符:
比較運算符(大小比較):>、>=、=、<、<=、<>、!>、!<
范圍運算符(表達式值是否在指定的范圍):BETWEEN…AND…
NOT BETWEEN…AND…
列表運算符(判斷表達式是否為列表中的指定項):IN (項1,項2……)
NOT IN (項1,項2……)
模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOT LIKE
空值判斷符(判斷表達式是否為空):IS NULL、NOT IS NULL
邏輯運算符(用于多條件的邏輯連接):NOT、AND、OR
1、范圍運算符例:age BETWEEN 10 AND 30 相當于age>=10 AND age<=30 作者:臨汾
市外事旅游局薛靖瀾,轉載請注明出處]
2、列表運算符例:country IN ('Germany','China')
3、模式匹配符例:常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。可用于
char、 varchar、text、ntext、datetime 和smalldatetime 等類型查詢。 作者:臨汾市外事旅游
局薛靖瀾,轉載請注明出處]
可使用以下通配字符:
百分號%:可匹配任意類型和長度的字符,如果是中文,請使用兩個百分號即%%。
下劃線_:匹配單個任意字符,它常用來限制表達式的字符長度。
方括號[]:指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一個。 作者:臨
汾市外事旅游局薛靖瀾,轉載請注明出處]
[^]:其取值也[] 相同,但它要求所匹配對象為指定字符以外的任一個字符。
例如:作者:臨汾市外事旅游局薛靖瀾,轉載請注明出處]
限制以Publishing 結尾,使用LIKE '%Publishing'
限制以A 開頭:LIKE '[A]%'
限制以A 開頭外:LIKE '[^A]%'
4、空值判斷符例WHERE age IS NULL
5、邏輯運算符:優先級為NOT、AND、OR
最后,讓我們用一個簡單的例子結束這篇教程:
Objku = InputBox("請輸入單位數據庫的路徑","默認位置","d:\jbqk.mdb")
Set Objconn = createobject("adodb.connection")
Objconn.open ="provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Objku
sql = "CREATE TABLE [單位資料](ID Autoincrement PRIMARY KEY,[姓名] text(8),[性
別] text(2),[科室] text(6),[住址] text(30))"
Objconn.execute(sql)
sql = "INSERT INTO [單位資料]([姓名],[性別],[科室],[住址]) VALUES('張三','男','行管科','
解放路12 號')"
Objconn.execute(sql)
sql = "INSERT INTO [單位資料]([姓名],[性別],[科室],[住址]) VALUES('李斯','女','市場科','
五一路12 號')"
Objconn.execute(sql)
sql = "DELETE FROM [單位資料] WHERE [姓名] = '張三' "
Objconn.execute(sql)
sql = "UPDATE [單位資料]"
sql = "SELECT COUNT(ID) FROM [單位資料]"
轉載 :作者:臨汾市外事旅游局薛靖瀾
posted on 2011-05-03 17:02 ryhan 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/ryhan/archive/2011/05/03/2035493.html
總結
以上是生活随笔為你收集整理的VBS 连接数据库 - 样例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 速查100 WebServers
- 下一篇: Lec6-待学习的堆排序