注册 登录
编程论坛 ASP技术论坛

关于sql的问题,在当前情况下,该怎么做?

boyfuture 发布于 2008-05-24 20:03, 913 次点击
比如我想调用session(“Username”)这样的参数,我该怎么写啊?
<% @Language="JavaScript" %>
<%
function OpenDB()
{
DbPath="..
var sql="SELECT * FROM pubmessageinfo WHERE day(sendtime)<day(now()) and sender='"&session(“Username”)&"' order by pubdataid desc";
....
提示错误,如果不用session(“UserName")这样的东西,就提示错误,该怎么办啊?请各位大虾指教!
15 回复
#2
multiple19022008-05-24 21:50
1.你确定JScript里可以用&符号连接字符串吗?
2.……………………提示错误,如果不用session(“UserName")这样的东西,就提示错误
你想表达什么?
#3
天涯听雨2008-05-24 22:16
不知你提的问题所在……
#4
boyfuture2008-05-25 08:24
是这样的,我使用的是无刷新更新的方式,做即时交流。但是在服务器端的文件用<% @Language="JavaScript" %>这样的语句。其中关于sql的用法好像用上‘”&session(“Username”)&“’时就提示错误,但是我要改为‘王海’这样就可以。可能是无法兼容这样的语句。我该怎样修改才能使用于这样的环境(javascript)呢?而且用 if   。。。then的语句似乎也无法用,我该怎样修改才能使用于这样的环境呢?
sql="SELECT * FROM pubmessageinfo WHERE day(sendtime)<day(now()) and sender='"&session(“Username”)&"' order by pubdataid desc"; 这样的语句在javascript的环境中该怎样修改语句?谢谢啊!
#5
multiple19022008-05-25 08:29
服务器端我没用过JScript,提出如下建议:
ECMAScript似乎是区分大小写的,你写成Session试试
看看ECMAScript里如何实现指定集合中元素的,我记得是Session["username"],用中括号
ECMAScript里if的用法是
程序代码:

if(condition){
  //script
}

if(condition){
  //script
}else{
  //script
}
不了解Javascript的话请老老实实用VBScript
另外,涉及这么多引号的字符串请放在code标签里,不然看不清单引号双引号。
#6
hmhz2008-05-25 08:53
一个页面一开始声明了<% @Language="JavaScript" %>
那么下面的程序都必须遵照html和JavaScript的语言编写,asp就不能用了
JavaScript的session和asp的session是不同的,所以,JavaScript里更不能直接使用asp中的session("Username")来调用
#7
multiple19022008-05-25 08:57
[bo]以下是引用 [un]hmhz[/un] 在 2008-5-25 08:53 的发言:[/bo]

一个页面一开始声明了
那么下面的程序都必须遵照html和JavaScript的语言编写,asp就不能用了
JavaScript的session和asp的session是不同的,所以,JavaScript里更不能直接使用asp中的session("Username")来调用

可以用session["Username"]调用吗?
#8
multiple19022008-05-25 08:59
[url]http://zhidao.baidu.com/question/2629443.html[/url]

response.cookies(cookiesname)=value ;

对于response,request,session等几个ASP内置对象,不管是vbscript还是js,都是一样的..^_^
#9
boyfuture2008-05-25 13:30
看不懂啊
我用vb可以,但是每次刷新页面,看起来很难受啊。想用js无刷新方式做交流平台。。。。但是还是谢谢各位了!
#10
multiple19022008-05-25 13:41
[bo][un]boyfuture[/un] 在 2008-5-25 13:30 的发言:[/bo]

看不懂啊
我用vb可以,但是每次刷新页面,看起来很难受啊。想用js无刷新方式做交流平台。。。。但是还是谢谢各位了!

这是2回事。

无刷新(ajax)指的是客户端javascript,就是指从创建xmlhttp到连接服务器到下载页面内容到显示在页面上的过程,当然其中包括了服务器端的页面连接数据库干啥干啥的过程,但那在服务器端进行,服务器端可以使用任何语言,比如ASP(其实是环境)、VBScript、JScript、PHP,这些和客户端的javascript是无关的。
所以客户端的是不需要连接数据库的,明显不需要。
要连接数据库的是服务器端代码,用什么写无所谓,没逼你用JScript。
#11
boyfuture2008-05-25 16:56
<% @Language="JavaScript" %>
。。。。。
sResult[sResult.length] = rs("sender").Value + "@@@" + rs("target").Value + "@@@" + rs("sendtime").Value + "@@@" + rs("sendcontent").Value
rs.MoveNext();
}
Response.Write(escape(sResult.join("###")));
%>请问上述语句怎样才能转化为能在asp环境下使用的?因为涉及到客户端的信息交互,必须有这样一个结果,该怎么做呢?请指教!谢谢!
#12
boyfuture2008-05-25 21:08
帮帮忙吧,就这点过不去,都两天了,各位大虾帮帮忙吧!
#13
multiple19022008-05-25 21:32
你就用VBScript按照最正常的方式操作数据库不就行了?
#14
boyfuture2008-05-25 21:58
这是两个文件的代码,可是我不会怎么把他们组合在一起啊:
browserdata.asp(显示页面)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="command.asp" -->
<script language="JavaScript">
function GetResult()
{
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
oBao.open("POST","browserserverold.asp",false);
oBao.send();
var strResult = unescape(oBao.responseText);
var arrResult = strResult.split("###");
RemoveRow();
for(var i=0;i<arrResult.length;i++)
{
arrTmp = arrResult[i].split("@@@");
cont='<div class="u"><strong>'+arrTmp[0]+'</strong>&nbsp;对 <strong>'+arrTmp[1]+'</strong>&nbsp;说</div><div class="d">时间:'+arrTmp[2]+'</div><div class="co">'+arrTmp[3]+'</div>';
row1 = tb.insertRow();
cell1 = row1.insertCell();
cell1.innerHTML = cont;
}
}
browserserver.asp(后台处理页面,根据建议修改的,但是最终出来的结果是乱码)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/conn.asp" -->
<%set rs=Server.CreateObject("ADODB.RecordSet")
sql="SELECT * FROM pubmessageinfo order by pubdataid desc"
rs.open sql,conn,1,3
%>
 <%   Do Until rs.EOF  %>
 <%=rs("sender")%>@@@<%=rs("target")%>@@@<%=rs("sendtime")%>@@@<%=rs("sendcontent")%>
<%Response.Write("###")%>

 <%rs.MoveNext
   Loop %>
browserserver.asp(这个是原代码,出来的结果可看,但是时间是UTC格式,没法用,而且不知道如何修改才能使用session(“aa”)等参数)
<% @Language="JavaScript" %>
<%
function OpenDB()
{
DbPath="../databin/pomawinoasys.mdb";
var connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(DbPath);
var conn = Server.CreateObject("ADODB.Connection");
conn.Open(connstr);
return conn;
}
var sResult = new Array();
var oConn = OpenDB("");
var sql="SELECT * FROM pubmessageinfo  order by pubdataid desc";
var rs = oConn.Execute(sql);
while(!rs.EOF)
{
sResult[sResult.length] = rs("sender").Value + "@@@" + rs("target").Value + "@@@" +rs("sendtime").Value + "@@@" + rs("sendcontent").Value
rs.MoveNext();
}
Response.Write(sResult);
%>请大虾指教啊,真是需要大力帮忙啊,我都急死了,谢谢啊!
#15
multiple19022008-05-25 22:03
客户端和服务器端分离写。写一个文件里干啥?
#16
boyfuture2008-05-25 22:09
是分离写了啊,可是客户端读取服务器端的数据时,不知道怎么才能组合成正确的结果啊,而且如果用vb的结果未经过escape,出来的结果都是乱码啊
使用原来的代码,修改后,但是查询的时间是UTC格式,没法回到原来的yyyy-mm-dd 格式,该怎么办啊?
1