zoukankan      html  css  js  c++  java
  • (转)ASP连接sql server实例解析

    本文转载自:http://blog.csdn.net/xys_777/article/details/5696276

    1、首先确定自己的iis没有问题

    2、其次确定自己sqlserver没有问题

    然后在iis的目录wwwroot里,建立一个文件 名为testSqlServer.asp,编写代码如下即可

    <%  
    'ole db连接  
    set cnn1 = Server.CreateObject("ADODB.Connection")   
    '连接串需要注意sqlserver的实例名,是否是默认,非默认必须要写出来  
    cnn1.Open "provider=sqloledb;data source=./sqlexpress;initial catalog=master;user id=sa;password=000000;"   
    sql = "select * from master..spt_values"  
    set rs= Server.CreateObject("ADODB.RecordSet")  
    rs.Open sql,cnn1 ,1,1  
    '获得连接信息与查询结果行数  
    Response.write("连接1:"&cnn1.ConnectionString&"<br/> spt_values行数:"&rs.recordcount&"<br/><br/>")  
    '循环结果输出  
    do While not rs.eof  
        Response.write(rs(0)&","&rs(1)&","&rs(2)&","&rs(3)&","&rs(4)&"<br/>")  
        rs.MoveNext  
    Loop  
    rs.close()  
    cnn1.close()  
    %>  
      
    <%  
    'odbc连接  
    set cnn2 = Server.CreateObject("ADODB.Connection")   
    cnn2.Open "Driver={SQL Server};Server=./sqlexpress;Database=master;UID=sa;PWD=000000;"   
    sql = "select * from master..spt_values"  
    set rs= Server.CreateObject("ADODB.RecordSet")  
    rs.Open sql,cnn2 ,1,1  
    Response.write("连接2:"&cnn2.ConnectionString&"<br/> spt_values行数:"&rs.recordcount&"<br/>")  
    do While not rs.eof  
        Response.write(rs(0)&","&rs(1)&","&rs(2)&","&rs(3)&","&rs(4)&"<br/>")  
        rs.MoveNext  
    Loop  
    rs.close()  
    cnn2.close()  
    %>  

    在ie地址输入http://localhost/testsqlserver.asp,即可看到如下结果

    连接1:Provider=SQLOLEDB.1;Password=000000;User ID=sa;Initial Catalog=master;Data Source=./sqlexpress;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PC-201003062254;Use Encryption for Data=False;Tag with column collation when possible=False  
    spt_values行数:2346  
      
    rpc,1,A ,,  
    pub,2,A ,,  
    sub,4,A ,,  
    dist,8,A ,,  
    dpub,16,A ,,  
    rpc out,64,A ,,  
    data access,128,A ,,  
    collation compatible,256,A ,,  
    system,512,A ,,  
    use remote collation,1024,A ,,  
    lazy schema validation,2048,A ,,  
    。。。。。。。。。。。。。。。  
      
      
    serial writes,32,V ,,  
    read only,4096,V ,0,1  
    deferred,8192,V ,0,1  
    连接2:Provider=MSDASQL.1;Extended Properties="DRIVER=SQL Server;SERVER=./sqlexpress;UID=sa;PWD=000000;APP=Microsoft? Windows? Operating System;WSID=PC-201003062254;DATABASE=master"  
    spt_values行数:2346  
    rpc,1,A ,,  
    pub,2,A ,,  
    sub,4,A ,,  
    dist,8,A ,,  
    dpub,16,A ,,  
    rpc out,64,A ,,  
    data access,128,A ,,  
    collation compatible,256,A ,,  
    system,512,A ,,  
    use remote collation,1024,A ,,  
    lazy schema validation,2048,A ,,  
    。。。。。  

    很容易吧,你也去试试吧,其实编码都是很简单的事情。

    补充,调用存储过程

    <%     
    'ole db连接     
    set Conn= Server.CreateObject("ADODB.Connection")      
    '连接串需要注意sqlserver的实例名,是否是默认,非默认必须要写出来     
    Conn.Open "provider=sqloledb;data source=192.168.1.101;initial catalog=master;user id=sa;password=000000;"      
    %>  
      
      
    <%  
    Const adInteger= 3    
    Const adVarChar= 200    
    Const adParamInput= 1    
    Const adParamOutput= 2    
    Const adCmdSPStoredProc = 4    
    Set adoComm = CreateObject("ADODB.Command")  
    With adoComm     
      .ActiveConnection = Conn  
      .CommandType = adCmdSPStoredProc  
    .Prepared = true     
      .CommandText = "sp_checklogin"   
    .Parameters.append .CreateParameter("@userid",adVarChar,1,6,"NO001") '参数名,参数类型,输入输出类型,长度,值   
    .Parameters.append .CreateParameter("@flag",adInteger,2) '返回参数,返回总记录数,数据长度可以省略.  
    .execute     
    End With  
    flag = adoComm(1)  
    Set adoComm = Nothing  
    response.write "执行本程序后,存储过程返回值Flag:"&flag&"<br>"  
      
    if flag=0 then     
    response.write "提示:成功登录!(该帐户今天第一次登录)"   
    else  
    response.write "提示:该帐号已有人登录,不可再登录"   
    end if    
      
    %>  
      
      
    <%  
    sql = "select * from master..spt_values"    
    set rs= Server.CreateObject("ADODB.RecordSet")     
    rs.Open sql,Conn ,1,1     
    '获得连接信息与查询结果行数     
    Response.write("连接1:"&Conn.ConnectionString&"<br/> spt_values行数:"&rs.recordcount&"<br/><br/>")     
    '循环结果输出     
    do While not rs.eof     
        Response.write(rs(0)&","&rs(1)&","&rs(2)&","&rs(3)&","&rs(4)&"<br/>")     
        rs.MoveNext     
    Loop    
    rs.close()     
    'Conn.close()     
    %>   

    SQL存储过程如下:
    CREATE procedure sp_checklogin  
    @userid varchar(6) , -- 操作帐号
    @flag int out -- 输出参数 0:没有登录 1:已经登录
    as
    declare @sql nvarchar(100)
    IF object_id('tempdb.dbo.##'+@userid) is null
      begin
      set @sql='create table ##'+@userid+'( userid varchar(6))'
      exec(@sql);
      set @flag = 0
      end
    Else
    set @flag = 1
    GO

  • 相关阅读:
    被放弃的概率权,机器下围棋不理会沉没成本
    百位性感女明星三围大曝光,体型测试设计
    斯坦福大学机器学习,EM算法求解高斯混合模型
    Javascript图片预加载详解
    使用马尔可夫模型自动生成文章
    18种女粉引流方法、效果、评估
    既然认准了这条路,就不必打听要走多久!
    新媒体运营10个大坑,思维导图版
    谷歌发布"自动机器学习"技术 AI可自我创造
    Centos7下PHP的卸载与安装nginx
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/3173245.html
Copyright © 2011-2022 走看看