在进行asp网站开发时,有时需在客户端调用mssql数据库的数据进行打印,若调用数据量小,可以通过在客户端运用filesystemobject生成文件对象的方法实现打印,这里不再赘述。若需调用大量数据,可在客户端脚本中实例化rds.dataspace(remote data service)对象,并采用远程提供程序通过asp网站访问mssql数据库(设置成只能通过rds default handler或自定义商业对象才能访问数据库,可保证数据库的安全),再在客户端实例化excel.application对象,把数据集中的数据写入excel中,再进行保存或打印。代码如下:
| <html> <head> <meta content="text/html; charset=gb2312" http-equiv=content-type> <title>客户端电子表格打印</title> </head> <body bgcolor=skyblue topmargin=5 leftmargin="20" oncontextmenu="return false" rightmargin=0 bottommargin="0"> <div align="center"><center> <table border="1" bgcolor="#ffe4b5" style="height: 1px; top: 0px" bordercolor="#0000ff"> <tr> <td align="middle" bgcolor="#ffffff" bordercolor="#000080"> <font color="#000080" size="3"> 客户端电子表格打印 </font> </td> </tr> </table> </div> <form name="myform"> <div align=left> <input type="button" value="excel report" name="report" language="vbscript" onclick="fun_excel()" style="height: 32px; width: 90px"> </div> </form> </body> </html> <script language="vbscript"> sub fun_excel() dim rds,rs,df dim strcn,strsql,strrs dim xlapp, xlbook, xlsheet1 set rds = createobject("rds.dataspace") set df = rds.createobject("rdsserver.datafactory","http://192.168.0.1") '192.168.0.1 为web服务器ip地址 strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 为web服务器ip地址 strsql= "getalljobs" set rs = df.query(strcn, strsql) set xlapp = createobject("excel.application") '注意不是:server.createobject("excel.application") set xlbook = xlapp.workbooks.add set xlsheet1 = xlbook.worksheets(1) xlsheet1.cells(1,1).value ="职务表" xlsheet1.range("a1:d1").merge xlsheet1.cells(2,1).value = "job_id" xlsheet1.cells(2,2).value = "job_desc" xlsheet1.cells(2,3).value = "max_lvl" xlsheet1.cells(2,4).value = "min_lvl" cnt =3 do while not rs.eof xlsheet1.cells(cnt,1).value = rs("job_id") xlsheet1.cells(cnt,2).value = rs("job_desc") xlsheet1.cells(cnt,3).value = rs("max_lvl") xlsheet1.cells(cnt,4).value = rs("min_lvl") rs.movenext cnt = cint(cnt) + 1 loop xlsheet1.application.visible = true end sub </script> |
| set rds = createobject("rds.dataspace") set df = rds.createobject("rdsserver.datafactory","http://192.168.0.1") '192.168.0.1 为web服务器ip地址 strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 为web服务器ip地址 strsql= "getalljobs" set rs = df.query(strcn, strsql) |
| set dc = createobject("rds.datacontrol") dc.executeoptions =1 '设置成同步执行,可以简化下步代码 dc.fetchoptions = 1 with dc .server = "http://192.168.0.1" .handler = "msdfmap.handler" .connect = "data source=pubsdatabase;" .sql = "getalljobs" .refresh end with set rs= dc.recordset |
| [sql getalljobs] sql="select * from jobs" [connect pubsdatabase] access=readonly connect="provider=sqloledb;data source=sql server;initial catalog=pubs;uid=userid;pwd=password" |
| '编写activex dll,名称:rsget.dll,包含类rsreturn,方法returnrs public function returnrs(strdb as variant, strsql as variant) as adodb.recordset 'returns an adodb recordset. on error goto ehgetrecordset dim cn as new adodb.connection dim rs as new adodb.recordset select case strdb case "ydjjspdatabase" strdb = "ydjjsp" case "pubsdatabase" strdb = "pubs" end select if strsql = "getallbuy" then strsql = "select * from buyuser" goto nextstep end if if left(strsql, instr(strsql, "(") - 1) = "getpubsbyid" then if instr(strsql, ",") <= 0 then dim str as string str = mid(strsql, instr(strsql, "(") + 2, instr(strsql, ")") - instr(strsql, "(") - 3) strsql = "select * from jobs where job_id='" & str & "'" else dim strstart, strend as string strstart = mid(strsql, instr(strsql, "(") + 2, instr(strsql, ",") - instr(strsql, "(") - 3) strend = mid(strsql, instr(strsql, ",") + 2, instr(strsql, ")") - instr(strsql, ",") - 3) strsql = "select * from jobs where job_id>='" & strstart & "' and job_id<='" & strend & "'" end if end if nextstep: dim strconnect as string strconnect = "provider=sqloledb;server=ddk;uid=ydj;pwd=ydj; database=" & strdb & ";" cn.open strconnect rs.cursorlocation = aduseclient rs.open strsql, cn, adopenstatic, adlockoptimistic, adcmdtext set returnrs = rs exit function ehgetrecordset: err.raise err.number, err.source, err.description end function |
| set rds = createobject("rds.dataspace") set df = rds.createobject("rdsserver.datafactory","http://192.168.0.1") '192.168.0.1 为web服务器ip地址 strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 为web服务器ip地址 strsql= "getalljobs" set rs = df.query(strcn, strsql) |
| set rds = createobject("rds.dataspace") set df = rds.createobject("rsget.rsreturn","http://192.168.0.1") set rs=df.returnrs("pubsdatabase","getpubsbyid('2','10')") |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器