web服务器Asp网页,客户端如何传值及提交?(200分)

  • 主题发起人 主题发起人 Jenkin_lj
  • 开始时间 开始时间
J

Jenkin_lj

Unregistered / Unconfirmed
GUEST, unregistred user!
条件:
1。web服务器: IIS 5.0 + Asp页面
2。客户机: win98,2000

希望实现:
客户机通过程序
把一些值传到相应的Asp页面,提交后让web服务器将值插入数据库中(通过已编好的Asp)

举例:
1。客户机输入一个学生记录,name,sex,age
2。把这条记录的几个参数name,sex,age传到Asp页面AddStudent.asp
3。AddStudent.asp中有一个form,form.submit后,将name,sex,age插入
数据库student表中

请问如何来做这个客户端程序? 传值还有让Asp页面 Submit?
先谢谢您的参与!
 
你的客户机输入记录应该是在Form那里输入的吧,你可以把有Form的页面单独做一个htm的文件,
把你的Form的Action设为AddStudent.asp。
你在AddStudent.asp中取得你单独做的那个文件的Form的各个选项的值!

name=Request.Form("name")
sex=request.form("sex")
age=Request.form("age")

然后你在写一条SQL语句插入数据库中!
如果可以的话,留下Email,我给你发过来!
Good Luck!

 
谢谢dreamliu2001
e-mail: rikinglj@citiz.net

 

给分真高!
客户端程序?呵呵,用dreamweaver或者InterDev,主要还是服务器端程序。
这种程序只要在网上找找就行了。
http://www.aspsky.net/download/index.asp
 
如果是dreamweaver ultradev的话,此功能就不用写语句了
 
只想用delphi编程

客户机不使用ie,而是使用delphi编的程序

服务器上除了asp外,不需要其他的服务程序

谢谢大家的支持!请指教!
 
用TMS控件组的WEBPOST控件
www.51delphi.com有下载,
你看一看吧,有源码,封装了wininet.dll
可以完成你的功能
 
还可以用Session对象的,那样就没有页面的限制的了
 
再请教
1。asp中可以有事务处理吗? 可以回滚吗?
2。delphi如何获得asp处理的返回值?(如插入成功,或者失败)

to dhl2001: 那个构件包没有例子又没有帮助,还是谢谢!

to nexthawks,你说的session 是什么意思,可以说的详细点吗?
 
由于ASP进行数据库操作是调用的ADO,所以确切地说就是ADO有事务处理吗?——当然有了。
使用ADODB.Connection的BeginTrans开始记录事务,CommitTrans提交,RollbackTrans回滚。
例:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = MM_ADO_Web_Con1_STRING '数据库连接字串
Conn.Open
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = Conn '绑定数据库连接
RS.Source = "SELECT * FROM Mytable"
RS.Open
Conn.BeginTrans
'(在此加入更新数据内存的代码)RS开始进行数据更新之类的操作
Conn.RollbackTrans '现在,RS进行的更新就被撤消了
 
to: Sachow
谢谢你的指点,仍有以下问题:
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "dsn=shangbao" //Access数据库
CONN.beginTrans
WorkStr="insert into password(id,pwd) values("&id&",'"+password+"') "
Conn.Execute WorkStr
if conn.Errors.Count>0 then
Response.Write "<P>Error!</P>"
conn.Errors.Clear
conn.rollbackTrans
end if
1. WorkStr="insert into password(id,pwd) values("&id&",'"+password+"') "
此insert语句不能执行,数据表password中id为数字,而变量id为string,请问如何
转化?需要包括什么文件?
2。 Response.Write "<P>Error!</P>" 页面总是不显示Error!,为什么?

***3。delphi如何获得asp处理的返回值?(如插入成功,或者失败), 请教大侠!

 
1。asp中可以有事务处理吗? 可以回滚吗?

有的

2。delphi如何获得asp处理的返回值?(如插入成功,或者失败)

asp中有错误处理

如果你不想程序有太多的bug,建议先学习asp。
 
1、
WorkStr="insert into password(id,pwd) values('"&id&"','"+password+"') "
最简单的办法是加"'"(单引号),数据库会自动转换,此法适用于SQL Server和Oracle等
数据库;另外是不是可以用CInt(id)的方法,你试试看(我一年不做ASP,忘了)。

2、在出错的代码前加入:On Error Resume Next
3、只有用你的程序分析ASP返回的页面中的信息了,例如用Pos或AnsiPos判断返回的页面
信息里有没有“成功”、“失败”等字串。
 
1. WorkStr="insert into password(id,pwd) values("&id&",'"+password+"') "
此insert语句不能执行,数据表password中id为数字,而变量id为string,请问如何
转化?需要包括什么文件?

ASP中可以用INT()来把字符转换为整型,比如:ID=Int(ID) 不需要包括文件

2。 Response.Write "<P>Error!</P>" 页面总是不显示Error!,为什么?

这个语句是正确的,检查一下上面的语句,看是否运行到了这一句。

***3。delphi如何获得asp处理的返回值?(如插入成功,或者失败), 请教大侠!

你可以将ASP处理的结果返回到某个固定TEXT文本中,其内容采用固定格式,如

1 //第一行 成功为1 错误为0
随机号 //此随机号可由客户端程序产生,以确定是否为本客户端所需要的,当然假如就一个客户就不用了

然后你用NMHTTP把它Get下来检查一下就OK了吧.
 
谢谢楼上几位的回答
仍有以下的疑问:
&&ASP中可以用INT()来把字符转换为整型,比如:ID=Int(ID) 不需要包括文件
1.ASP如何转化成double? 小数

&&然后你用NMHTTP把它Get下来检查一下就OK了吧.
我用
WebBrowser1.Navigate('http://10.11.6.120/default.asp', EmptyParam,
EmptyParam, PostData,headers);
再用
NMHTTP1.Get('http://10.11.6.120/default.asp');
Memo1.Text := NMHTTP1.Body;
2。 但是memo1中显示的返回html总是上一次的结果,如何解决?
多谢大侠!
 
1.ASP中的数据类型只有一种:变体(variant),可以当作任意一种类型,建议你去查一
下ASP参考资料。
2.NMHTTP1.Get('http://10.11.6.120/default.asp');
Memo1.Text := NMHTTP1.Body;
Default.asp不会就是你输出的TEXT文件吧?
ASP输出TEXT文件需要建立FSO对象,把结果写到硬盘上,生成一个TEXT文件,然后你再用
NMHTTP取得这个TEXT文件就可以了。

建立TEXT文件的ASP源码:
dim fout
Set fout = fso.CreateTextFile("C:/test.txt")
fout.WriteLine newstemplate
fout.close

强烈建议你找ASP参考手册,读一下。
 
to: snowsky
Default.asp不会就是你输出的TEXT文件吧?
ASP输出TEXT文件需要建立FSO对象,把结果写到硬盘上,生成一个TEXT文件,然后你再用
NMHTTP取得这个TEXT文件就可以了。
建立TEXT文件的ASP源码:
dim fout
Set fout = fso.CreateTextFile("C:/test.txt")
fout.WriteLine newstemplate
fout.close

我用delphi就不能获得asp处理后的返回页面了吗?难道非要在asp中写源码?


 
大虾们,请指教!
大虾们,请指教!大虾们,请指教!
大虾们,请指教!
大虾们,请指教!
 
谢谢各位大虾的指点

偶已经知道如何来做了:

用一个timer 判断webbrowser.busy属性, 如果为false 的时候
再去获得text
Memo1.Text := GetWebBrowserText(WebBrowser1);
function GetWebBrowserText(IE: TWebBrowser): string;
var
Doc: IHtmlDocument2;
Body: IHtmlElement;
begin
try
Result := '';
Doc := IE.Document as IHtmlDocument2;
if Doc = nil then Exit;
Body := Doc.Body;

if Body = nil then Exit;
Result := Body.innerText;
except end;
end;

 
接受答案了.
 
后退
顶部