精华内容
下载资源
问答
  • VBS连接数据库操作

    千次阅读 2010-09-09 21:47:00
    VBS连接数据库操作

     DATABASE公用函数
    '
    '###########################################################################################################
    '###########################################################################################################

    Dim objConnection                          'CONNECTION对象实例
    Dim objRecordSet                                   'RECORDSET对象实例       
    Dim objCommand                                '命令对象实例
    Dim strConnectionString                        '连接字符串

    ' ********************************************************************
    ' 函数说明:连接数据库;
    ' 参数说明:(1)strDBType(数据库类型:如ORACEL;DB2;SQL;ACCESS)
    '           (2)strDBAlias(数据库别名)
    '           (3)strUID(用户名)
    '           (4)strPWD(密码)
    '           (5)strIP(数据库IP地址:仅SQL SERVER 使用)
    '           (6)strLocalHostName(本地主机名:仅SQL SERVER 使用)
    '           (7)strDataSource(数据源:仅ACCESS使用;如d:/yysc.mdb)
    ' 返回结果:无
    ' 调用方法: ConnectDatabase(strDBType, strDBAlias, strUID, strPWD, strIP, strLocalHostName, strDataSource)
    ' ********************************************************************
    Sub ConnectDatabase(strDBType, strDBAlias, strUID, strPWD, strIP, strLocalHostName, strDataSource)
        Set objConnection = CreateObject("ADODB.CONNECTION"                '1 - 建立CONNECTION对象的实例
       
        Select Case UCase(Trim(strDBType))
            Case "ORACLE"
                strConnectionString = "Driver={Microsoft ODBC for Oracle};Server=" & strDBAlias & ";Uid="_
                    & strUID & ";Pwd=" & strPWD & ";"                                '2 - 建立连接字符串
                objConnection.Open strConnectionString                                '3 - 用Open 方法建立与数据库连接
            Case "DB2"
                strConnectionString = "Driver={IBM DB2 ODBC DRIVER};DBALIAS=" & strDBAlias & ";Uid="_
                    & strUID & ";Pwd=" & strPWD & ";"                               
                objConnection.Open strConnectionString                               
            Case "SQL"
                 strConnectionString = "DRIVER=SQL Server; SERVER=" & strIP & "; UID=" & strUID & "; PWD="_
                     & strPWD & "; APP=Microsoft Office 2003;WSID=" & strLocalHostName & "; DATABASE=" & strDBAlias & ";"
                objConnection.Open strConnectionString                                           
            Case "ACCESS"
                strConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & strDataSource &_
                    ";Jet OLEDBatabase Password=" & strPWD & ";"
                objConnection.Open strConnectionString                                                 
            Case Else
                MsgBox "输入的数据库类型格式有误" & vbCrLf & "支持的数据库类型格式:ORACLE;DB2;SQL;ACCESS;EXCEL"
        End Select
       
        If (objConnection.State = 0) Then
            MsgBox "连接数据库失败!"
        End If
       
    End Sub


    ' ********************************************************************
    ' 函数说明:查询数据库(查询单列);
    ' 参数说明: (1)strSql:SQL语句
    '           (2)strFieldName:字段名
    '           (3)str_Array_QueryResult:数组名(用来返回单列查询结果)
    ' 返回结果: intArrayLength:查询数据库返回的记录行数
    '           str_Array_QueryResult:数组名(用来返回单列查询结果)
    ' 调用方法: intArrayLength = QueryDatabase(strSql, strFieldName, str_Array_QueryResult)
    ' ********************************************************************
    Function QueryDatabase(strSql, strFieldName, str_Array_QueryResult)
        Dim intArrayLength                                                                                     '数组长度
         Dim i
       
        i = 0  
        str_Array_QueryResult = Array()                                '重新初始化数组为一个空数组
       
        Set objRecordSet = CreateObject("ADODB.RECORDSET"                '4 - 建立RECORDSET对象实例
        Set objCommand = CreateObject("ADODB.COMMAND"              '5 - 建立COMMAND对象实例
        objCommand.ActiveConnection = objConnection
        objCommand.CommandText = strSql
            objRecordSet.CursorLocation = 3
            objRecordSet.Open objCommand                            '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中
       
        intArrayLength = objRecordSet.RecordCount                  '将查询结果的行数作为数组的长度
       
        If intArrayLength > 0 Then
                    ReDim str_Array_QueryResult(intArrayLength-1)
                   
                    Do While NOT objRecordSet.EOF                                                '将数据库查询的列值赋值给数组            
                        str_Array_QueryResult(i) = objRecordSet(strFieldName)
                            'Debug.WriteLine str_Array_QueryResult(i)
                            objRecordSet.MoveNext
                            i = i + 1
                    Loop
    '        Else
                    'ReDim str_Array_QueryResult(0)      
                    'str_Array_QueryResult(0) = ""    
        End If
       
        QueryDatabase = intArrayLength
    End Function

    ' ********************************************************************
    ' 函数说明:更新数据库;包括INSERT、DELETE 和 UPDATE操作
    ' 参数说明:(1)strSql:SQL语句
    ' 返回结果:无
    ' 调用方法: UpdateDatabase(strSql)
    ' ********************************************************************
    Sub UpdateDatabase(strSql)
            Dim objCommand
            Dim objField       
           
            Set objCommand = CreateObject("ADODB.COMMAND")
            Set objRecordSet = CreateObject("ADODB.RECORDSET")
            objCommand.CommandText = strSql
            objCommand.ActiveConnection = objConnection
            Set objRecordSet = objCommand.Execute
           
    '        Do Until objRecordSet.EOF
           
    '                For Each objField In objRecordSet.Fields
    '                        Debug.Write objField.Name & ": " & objField.Value & "   "
    '                Next
                   
    '                objRecordSet.MoveNext
    '                Debug.WriteLine
    '        Loop       
           
            Set objCommand = Nothing
            Set objRecordSet = Nothing
                   
    End Sub





    ' ********************************************************************
    ' 函数说明:返回符合查询结果的列的长度
    ' 参数说明:(1)strSql:SQL语句
    ' 返回结果:返回符合查询结果的列的长度
    ' 调用方法: MaxLength = GetLenOfField(strSql)
    ' ********************************************************************
    Function GetLenOfField(strSql)
        '如果SQL语句为空,则默认返回的列长度为0,结束函数;否则返回列的实际长度
        If strSql = "" Then
            GetLenOfField = 0
                    Exit Function
        Else
                Set objRecordSet = CreateObject("ADODB.RECORDSET")                        '4 - 建立RECORDSET对象实例
                Set objCommand = CreateObject("ADODB.COMMAND")              '5 - 建立COMMAND对象实例
                objCommand.ActiveConnection = objConnection
                objCommand.CommandText = strSql
                    objRecordSet.CursorLocation = 3
                    objRecordSet.Open objCommand                                '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中
               
                GetLenOfField = objRecordSet.RecordCount                              '返回符合查询结果的列的长度
           
                    Set objCommand = Nothing       
                    Set objRecordSet = Nothing
            End If
    End Function


    ' ********************************************************************
    ' 函数说明:关闭数据库连接;
    ' 参数说明:无
    ' 返回结果:无
    ' 调用方法: CloseDatabase()
    ' ********************************************************************
    Sub CloseDatabase()
        objRecordSet.Close
        objConnection.Close
       
        Set objCommand = Nothing
        Set objRecordSet = Nothing
        Set objConnection = Nothing
    End Sub

     

     

    这是复制来的,我之前做过,确实是需要建立DSN数据源,需要去下载mysql驱动
    /一种是在ODBC数据源中建立一个DSN。具体方法是:
    1、打开控制面板中的ODBD数据源;
    2、选择系统DSN,添加一个新的DSN驱动程序;
    3、选择MyODBD,出现一个对话框供输入MySQL:
    (1)Windows DSN name:所要建立DSN的名称;
    (2)MySQL Host (name or ip):MySQL服务器的名称或IP地址。一般填LocalHost ;
    (3) MySQL database name:需要使用数据库的名称。
    4、在MySQL管理程序中建立数据库。以数据库chunfeng为例,内有user数据表,两个字段分别是:username和password,我们可以试着加入几个记录:
    (1)user:连接数据库的用户名。可填root超级用户;
    (2)password:连接数据库用户口令。可不填;
    (3)Port(if not 3306):MySQL在服务器的端口。填默认为3306;
    (4)SQL command on connect:使用SQL命令连接数据库。可不填。
    全部填完后按OK保存。

    好了,我们来连接数据库,ASP代码如下:
    <%
    strConnection = "dsn=chunfeng;driver={myodbd driver};server=localhost;uid=root;pwd=; database=chunfeng"
    Set adoDataConn = Server.CreateObject("ADODB.Connection")
    adoDataConn.Open strConnection

    strQuery = "SELECT * FROM user"
    Set rs = adoDataConn.Execute(strQuery)
    If Not rs.BOF Then
    %>
    <TABLE>
    <TR>
    <TD<b>用户名</b></TD>
    <TD><b>口令</b></TD>
    </TR>
    <%
    Do While Not rs.EOF
    %>
    <TR>
    <TD><%=rs("username")%></TD>
    <TD><%=rs("password")%></TD>
    </TR>
    <%
    rs.MoveNext
    Loop
    %>
    </TABLE>
    <%
    Else
    Response.Write("Sorry, no data found.")
    End If

    rs.Close
    adoDataConn.Close
    Set adoDataConn = Nothing
    Set rsEmailData = Nothing
    %>


    另一种方法就是把上面ASP代码第二行代码改为:

    strconnection="DefaultDir=;Driver={myodbc driver};database=chunfeng"
    并且无需建立系统DSN,也不需要用户名和口令。不过不推荐使用这种方法

     

     

     

    <%
    set conn=server.createobject("ADODB.Connection")
    'conn.open "Provider=SQLOLEDB;Server=litian2;Database=ltkucun;UID=sa;PWD=6729082;"
     DBPath = Server.MapPath("database/kucun.mdb")
     conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd=6729082;dbq=" & DBPath
     'conn.open "Provider=SQLOLEDB;Server=220.231.143.236,6666;Database=ltkucun;UID=sa;PWD=6729082;"
     
    %>

    展开全文
  • VBS 连接oracleDim CnnDim RstDim strCnnStrCnn="Provider=MSDAORA.1;User ID=loan;Password=loan;Data Source=orcl;Persist Security Info=False"Set Cnn = CreateObject("ADODB.Connection")Cnn.Open strCnn'查看...

    VBS 连接oracle

    Dim Cnn

    Dim Rst

    Dim strCnn

    StrCnn="Provider=MSDAORA.1;User ID=loan;Password=loan;Data Source=orcl;Persist Security Info=False"

    Set Cnn = CreateObject("ADODB.Connection")

    Cnn.Open strCnn

    '查看是否连接成功,成功状态值为1

    'msgbox Conn.state

    If Cnn.State = 0 Then

    msgbox  "连接数据库失败"

    else

    msgbox   "连接数据库成功"

    End If

    Set Rst =CreateObject("ADODB.Recordset")

    'Rst.open "update user_info set user_status='5' where user_email='278213098@qq.com'",Cnn

    Rst.open "select user_id,user_email from user_info where user_email like 'luyong%' and user_status='1'",Cnn

    i=1

    While not Rst.eof       '//循环取出DB里面的数据并导到Global table里面

    dim1=Rst("user_id").value

    dim2=Rst("user_email").value

    'DataTable.GlobalSheet.SetCurrentRow(i)

    'DataTable("AA",dtGlobalSheet)=dim1

    'DataTable("BB",dtGlobalSheet)=dim2

    MsgBox(dim1)

    i=i+1

    Rst.movenext

    wend

    '

    'Rst.close        '关闭记录集

    'Set Rst=nothing        '释放对象

    'cnn.close        '关闭连接

    'Set cnn=nothing        '释放对象

    红色连接串有udl文件产生

    创建连接数据库字符串的方法如下

    1、新建个空的文本文件,然后重命名为test.udl

    2609273034124645422.jpg

    2、双击打开test.udl,在Provider中选择要连接的数据库对应的供应商,比如SqlServer数据库就选Microsoft OLE DB Provider for SQL Server

    3、点击Next或者上面的Connection标签,在DataSource中输入数据库服务器的网络名称(或IP),并输入登录数据库的用户名和密码,注意保存密码上打勾

    4、点击 Test Connection,若测试通过,则点OK退出该udl文件

    5、右键点击test.udl,选择用记事本打开,有没发现你要写的连接字符串已经乖乖躺在那里了~赶紧Ctrl+C,Ctrl+V吧~

    .

    之前我还碰到test.udl 打不开,系统提示选择打开方式,查了一下,需要注册这个

    regsvr32   "C:\Program Files\Common Files\System\Ole DB\oledb32.dll" VBS连接mysql

    Dim Cnn

    Dim Rst

    Dim strCnn

    StrCnn="Provider=MSDASQL.1;Persist Security Info=True;Extended Properties='Driver=MySQL ODBC 5.1 Driver;SERVER=localhost;UID=root;PWD=123456;DATABASE=first;PORT=3306'"

    Set Cnn = CreateObject("ADODB.Connection")

    Cnn.Open strCnn

    '查看是否连接成功,成功状态值为1

    'msgbox Conn.state

    If Cnn.State = 0 Then

    msgbox  "连接数据库失败"

    else

    msgbox   "连接数据库成功"

    End If

    Set Rst =CreateObject("ADODB.Recordset")

    'Rst.open "select qq,status from qq",Cnn

    i=1

    While not Rst.eof       '//循环取出DB里面的数据并导到Global table里面

    dim1=Rst("qq").value

    dim2=Rst("status").value

    MsgBox(dim1)

    i=i+1

    Rst.movenext

    wend

    '

    Rst.close        '关闭记录集

    Set Rst=nothing        '释放对象

    cnn.close        '关闭连接

    Set cnn=nothing        '释放对象

    其中连接串是参考:http://blog..net/zyq5945/article/details/5486393

    这里用的是udl通过数据源来访问mysql的,因为udl本身没有提供连接mysql的方式

    首先你正确安装了MYSQL的数据库驱动程序(mysql-connector-odbc-5.1.6-win32.msi )

    1.在桌面上新建一个空的文本文件mysql.txt,重命名为mysql.udl;

    2.双击这个mysql.udl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole DB Provider for ODBC Drivers“,

    640355572033607297.jpg

    点击下一步;

    3.在“连接”页的,"指定数据源"选择"使用连接字符串";

    4.点击“编译”,弹出“选择数据源”,在“文件数据源”页中点击”新建“,在创建新数据源选择MYSQL的驱动程序”MySQL ODBC 5.1 Driver";

    3115365042250406268.jpg

    5.点击“下一步”,点击"浏览",在”另存为“对话框中文件名称写入“mysql",点击”下一步“,点击”完成“;

    6.在"MySQL Connnettor/ODBC Data Source Configuration"对话框中按需求(如下图);

    2510475317299206473.jpg

    (实际上4/5/6步创建了一个数据源,如果原本已经存在mysql的数据源,直接选择原有的数据源也可以)

    7.点击“Test”,看连接是否成功,连接成功会有个”Connenction successful“提示框,需要更详细的设置点击“Details”,点击”OK“,设置完成;

    8.返回“数据库连接属性”对话框,点击“测试连接”,成功的话就是我们要的连接字符串。

    有关udl文件的补充学习,baidu之

    udl(Universal Data Link)是通用数据连接文件,使用通用数据链接 (UDL) 文件来保存连接字符串。   使用 UDL 文件存储数据库连接的方式和使用“ODBC 数据源名称 (DSN)”非常相似。UDL 文件存储 OLE DB 连接信息,例如提供程序、用户名、密码和其他选项。用存储在该 UDL 文件中的信息可以打开 ADO 连接,从而允许管理员在需要的情况下更改它,并且避免了打开注册表或者使用 ODBC。

    有关创建见上文。

    用文本方式打开后的格式

    [oledb]

    ; Everything after this line is an OLE DB initstring

    Provider=MSDASQL.1;Persist Security Info=True;Extended Properties="Driver=MySQL ODBC 5.1 Driver;SERVER=localhost;UID=root;PWD=123456;DATABASE=first;PORT=3306"

    注意上面实际上是3行,最后一个就是我们需要的,

    展开全文
  • VBS 连接数据库 - 样例

    2011-05-03 17:02:00
    VBS 连接数据库 - 样例 例程1: Public strConn As StringPublic connPublic rsPublic xxPublic Sub Workbook_Open()strConn = "DSN=testdatabase;UID=;password="Set conn = CreateObject("ADODB...

    例程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

    展开全文
  • ' 函数说明:连接数据库; ' 参数说明:(1)strDBType(数据库类型:如ORACEL;DB2;SQL;ACCESS) ' (2)strDBAlias(数据库别名) ' (3)strUID(用户名) ' (4)strPWD(密码) ' (5)strIP(数据库IP地址:仅SQL SERVER ...

    '转别人写的一份公共函数:)

    ' DATABASE公用函数

    '

    '###########################################################################################################

    '###########################################################################################################

    Dim objConnection                          'CONNECTION对象实例

    Dim objRecordSet                                   'RECORDSET对象实例

    Dim objCommand                                '命令对象实例

    Dim strConnectionString                        '连接字符串

    ' ********************************************************************

    ' 函数说明:连接数据库;

    ' 参数说明:(1)strDBType(数据库类型:如ORACEL;DB2;SQL;ACCESS)

    '           (2)strDBAlias(数据库别名)

    '           (3)strUID(用户名)

    '           (4)strPWD(密码)

    '           (5)strIP(数据库IP地址:仅SQL SERVER 使用)

    '           (6)strLocalHostName(本地主机名:仅SQL SERVER 使用)

    '           (7)strDataSource(数据源:仅ACCESS使用;如d:\yysc.mdb)

    ' 返回结果:无

    ' 调用方法: ConnectDatabase(strDBType, strDBAlias, strUID, strPWD, strIP, strLocalHostName, strDataSource)

    ' ********************************************************************

    Sub ConnectDatabase(strDBType, strDBAlias, strUID, strPWD, strIP, strLocalHostName, strDataSource)

    Set objConnection = CreateObject("ADODB.CONNECTION"                '1 - 建立CONNECTION对象的实例

    Select Case UCase(Trim(strDBType))

    Case "ORACLE"

    strConnectionString = "Driver={Microsoft ODBC for Oracle};Server=" & strDBAlias & ";Uid="_

    & strUID & ";Pwd=" & strPWD & ";"                                '2 - 建立连接字符串

    objConnection.Open strConnectionString                                '3 - 用Open 方法建立与数据库连接

    Case "DB2"

    strConnectionString = "Driver={IBM DB2 ODBC DRIVER};DBALIAS=" & strDBAlias & ";Uid="_

    & strUID & ";Pwd=" & strPWD & ";"

    objConnection.Open strConnectionString

    Case "SQL"

    strConnectionString = "DRIVER=SQL Server; SERVER=" & strIP & "; UID=" & strUID & "; PWD="_

    & strPWD & "; APP=Microsoft Office 2003;WSID=" & strLocalHostName & "; DATABASE=" & strDBAlias & ";"

    objConnection.Open strConnectionString

    Case "ACCESS"

    strConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & strDataSource &_

    ";Jet OLEDBatabase Password=" & strPWD & ";"

    objConnection.Open strConnectionString

    Case Else

    MsgBox "输入的数据库类型格式有误" & vbCrLf & "支持的数据库类型格式:ORACLE;DB2;SQL;ACCESS;EXCEL"

    End Select

    If (objConnection.State = 0) Then

    MsgBox "连接数据库失败!"

    End If

    End Sub

    ' ********************************************************************

    ' 函数说明:查询数据库(查询单列);

    ' 参数说明:  (1)strSql:SQL语句

    '           (2)strFieldName:字段名

    '           (3)str_Array_QueryResult:数组名(用来返回单列查询结果)

    ' 返回结果:  intArrayLength:查询数据库返回的记录行数

    '           str_Array_QueryResult:数组名(用来返回单列查询结果)

    ' 调用方法: intArrayLength = QueryDatabase(strSql, strFieldName, str_Array_QueryResult)

    ' ********************************************************************

    Function QueryDatabase(strSql, strFieldName, str_Array_QueryResult)

    Dim intArrayLength                                                                                     '数组长度

    Dim i

    i = 0

    str_Array_QueryResult = Array()                                '重新初始化数组为一个空数组

    Set objRecordSet = CreateObject("ADODB.RECORDSET"                '4 - 建立RECORDSET对象实例

    Set objCommand = CreateObject("ADODB.COMMAND"              '5 - 建立COMMAND对象实例

    objCommand.ActiveConnection = objConnection

    objCommand.CommandText = strSql

    objRecordSet.CursorLocation = 3

    objRecordSet.Open objCommand                            '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中

    intArrayLength = objRecordSet.RecordCount                  '将查询结果的行数作为数组的长度

    If intArrayLength > 0 Then

    ReDim str_Array_QueryResult(intArrayLength-1)

    Do While NOT objRecordSet.EOF                                                '将数据库查询的列值赋值给数组

    str_Array_QueryResult(i) = objRecordSet(strFieldName)

    'Debug.WriteLine str_Array_QueryResult(i)

    objRecordSet.MoveNext

    i = i + 1

    Loop

    '        Else

    'ReDim str_Array_QueryResult(0)

    'str_Array_QueryResult(0) = ""

    End If

    QueryDatabase = intArrayLength

    End Function

    ' ********************************************************************

    ' 函数说明:更新数据库;包括INSERT、DELETE 和 UPDATE操作

    ' 参数说明:(1)strSql:SQL语句

    ' 返回结果:无

    ' 调用方法: UpdateDatabase(strSql)

    ' ********************************************************************

    Sub UpdateDatabase(strSql)

    Dim objCommand

    Dim objField

    Set objCommand = CreateObject("ADODB.COMMAND")

    Set objRecordSet = CreateObject("ADODB.RECORDSET")

    objCommand.CommandText = strSql

    objCommand.ActiveConnection = objConnection

    Set objRecordSet = objCommand.Execute

    '        Do Until objRecordSet.EOF

    '                For Each objField In objRecordSet.Fields

    '                        Debug.Write objField.Name & ": " & objField.Value & "   "

    '                Next

    '                objRecordSet.MoveNext

    '                Debug.WriteLine

    '        Loop

    Set objCommand = Nothing

    Set objRecordSet = Nothing

    End Sub

    ' ********************************************************************

    ' 函数说明:返回符合查询结果的列的长度

    ' 参数说明:(1)strSql:SQL语句

    ' 返回结果:返回符合查询结果的列的长度

    ' 调用方法: MaxLength = GetLenOfField(strSql)

    ' ********************************************************************

    Function GetLenOfField(strSql)

    '如果SQL语句为空,则默认返回的列长度为0,结束函数;否则返回列的实际长度

    If strSql = "" Then

    GetLenOfField  = 0

    Exit Function

    Else

    Set objRecordSet = CreateObject("ADODB.RECORDSET")                        '4 - 建立RECORDSET对象实例

    Set objCommand = CreateObject("ADODB.COMMAND")              '5 - 建立COMMAND对象实例

    objCommand.ActiveConnection = objConnection

    objCommand.CommandText = strSql

    objRecordSet.CursorLocation = 3

    objRecordSet.Open objCommand                                '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中

    GetLenOfField = objRecordSet.RecordCount                              '返回符合查询结果的列的长度

    Set objCommand = Nothing

    Set objRecordSet = Nothing

    End If

    End Function

    ' ********************************************************************

    ' 函数说明:关闭数据库连接;

    ' 参数说明:无

    ' 返回结果:无

    ' 调用方法: CloseDatabase()

    ' ********************************************************************

    Sub CloseDatabase()

    objRecordSet.Close

    objConnection.Close

    Set objCommand = Nothing

    Set objRecordSet = Nothing

    Set objConnection = Nothing

    End Sub

    展开全文
  • ' 函数说明:连接数据库; ' 参数说明:(1)strDBType(数据库类型:如ORACEL;DB2;SQL;ACCESS) ' (2)strDBAlias(数据库别名) ' (3)strUID(用户名) ' (4)strPWD(密码) ' (5)strIP(数据库IP地址:仅SQL SERVER ...
  • VBS 连接oracle Dim CnnDim RstDim strCnn StrCnn="Provider=MSDAORA.1;User ID=loan;Password=loan;Data Source=orcl;Persist Security Info=False" Set Cnn = CreateObject("ADODB.Connection")Cnn.Open strCnn '....
  • 新手问题:vbs连接数据库

    千次阅读 2017-01-08 16:42:04
    我用以下js连接正常 var conn = Server.CreateObject("ADODB.Connection"); var myconn = "Provider=SQLNCLI;Server=192.168.123.39;Database=dbcar;Uid=sa;Pwd=123;"; conn.Open(myconn); var rs = ...
  • VBS连接数据库代码

    2012-03-23 16:14:42
    ' 函数说明:连接数据库; ' 参数说明:(1)strDBType(数据库类型:如ORACEL;DB2;SQL;ACCESS) ' (2)strDBAlias(数据库别名) ' (3)strUID(用户名) ' (4)strPWD(密码) ' (5)strIP(数据库...
  • Example: Configuring a Database Connection with VBS EndTime Property Command Property Command Property TlgTrendWindowPressFirstButton 按字母顺序排列的 SQL 关键字列表 How to Create Menus in Multiple ...
  • VBS连接DB2数据库

    2019-10-03 23:56:11
    VBS连接数据库,参考了点资料 '建立连接Dim Cnn '定义数据库连接串 Set Cnn = CreateObject("ADODB.Connection") sql="DSN=*;DATABASE=*;PWD=*;SERVER=*;UID=*"Cnn.ConnectionString = sqlCnn.Open '打开数据库...
  • 要是你想选择自己用vbs实现这个要求,需要弄清楚三个问题:1、怎么用vbs连接数据库2、怎么查询变量归档3、怎么用vbs操作控件第一个问题主要是写好连接字符串,可以看书或者在网上搜教程,很简单。第三个问题网上也有...
  • VBS 连接WinCC数据库

    2018-06-03 16:19:15
    访问远程数据库服务器,配置数据库用户登录 配置启用TCP/IP,在数据库存储的情况下双击VBS文件直接可以访问数据库
  • vbs脚本文件,枚举了几种连接数据库的方式,使得开发者可以方便的连接任何数据库,查询数据库的信息。
  • VBS实现连接数据库

    2012-12-15 09:53:00
    前天在客户那里发现一个这样的问题:数据库(sql server 2008)和程序(asp)都是从另一个机子拷贝过来,但发现系统却登录不上,提示用户密码错误。刚开始用户一直认为是数据库的或程序配置问题,但查找了半天也没有发现...
  • 对于sql数据库连接,访问,读写 示例+解释 Function test_exStoreSql On Error Resume Next Dim test_GetTime, test_GetDate, test_GetReason '定义三个临时变量,存储在表单中采集到的信息 Dim rec '定义记录集,...
  • VBS连接SQL server数据库

    千次阅读 2013-05-30 22:37:49
    从数据透视图中导出报表其中一个条件需要从数据库中获取,采用vbs获取数据库,然后查找记录。之前学过vb获取数据库这次改成vbs获取方式也差不多。     Dim DB Dim isSQL Dim userKey Dim userName Dim ...
  • 今天写了个QTP连接ORACLE 数据库函数的VBS,共享一下:DBOperation.vbs'-----------------------------------------------------------------'function:数据库连接'call method:在调用文件中先定义Res,Cmd'For ...
  • 注意事项,wincc如果是32位软件系统需要去c盘找到C:\Windows\SysWOW64\odbcad32.exe配置mysql数据源,并测试,避免使用64位的ODBC数据源,不然会一直调试不同,连接不上,其他内容基本上跟网上内容差不多,Option ...
  • VBS脚本去连接SQL和dbf数据库样例!
  • 今天用VBS读写MDB数据库,把原来在asp里面运行正常的代码拿过来,发现总是出现 x800a0e7a错误: 查了一下,才想起来是因为64位系统未启用32 位 MDB 数据库引擎造成的。 才回想起来当初 IIS7.5 里面跑 asp 的时候...
  • '数据库连接字符串 Dim strCon '结果集对象 Dim oRs '执行对象 Dim oCmd '查询语句 Dim strSQL '结果集行数 Dim RsCount,IP,Port,PWD,usr,DBName Set oCon = CreateObject("ADODB.Connection")...
  • VBS连接Mysql数据库方法

    千次阅读 2017-08-04 14:35:40
    (1) 首先给出连接数据库的VB代码 Dim adoConn ‘定义ADO连接对象 Dim ConnectionStr ‘定义数据库连接字符串 ‘获取数据库连接字符串 ConnectionStr = “DSN=Mysql;DESCRIPTION={?????};SERVER=192.168.94.71;...
  • Data Source=" & dbServiceName con.Open If Err <> 0 Then MsgBox "连接数据库失败" WScript.Quit End If ' Dim Rs As ADODB.Recordset Dim strSQL Dim rs If sqlCommand = "" And tableName = "" Then MsgBox "既...
  • wincc连接自定义数据库脚本,用VBS做的,更新数据和插入数据都有
  • wincc使用vbs脚本连接mysql数据库

    千次阅读 2018-07-03 16:24:15
    注意事项,wincc如果是32位软件系统需要去c盘找到C:\Windows\SysWOW64\odbcad32.exe配置mysql数据源,并测试,避免使用64位的ODBC数据源,不然会一直调试不同,连接不上,其他内容基本上跟网上内容差不多,Option ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 147
精华内容 58
关键字:

vbs连接数据库