用过Web Server 的同行请帮我看看,我只想返回来个记录集。
服务器端的接口实现:
OleVariant TSoapDataModuleADO_WAD::OpenSQL(AnsiString ASql)
{
if (ASql.IsEmpty()) return NULL;
try
{
DataSetProvider1->DataSet = ADOQuery1;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(ASql);
ADOQuery1->Open();
return DataSetProvider1->Data;
}
catch(...)
{
return NULL;
}
}
客户端调用接口:
OleVariant IRec;
IRec=service->OpenSQL(suiMemo1->Text);
if (IRec==NULL)
{
ShowMessage("执行失败!");
return;
}
/*下面这行出错,提示'Invalid data packet'
服务器是返回 ataSetProvider1->Data;
我用 ClientDataSet1->Data接收不对吗??请指正
*/
ClientDataSet1->Data = IRec;
问题点数:100、回复次数:12Top
1 楼ljianq(泉深水清)回复于 2003-11-04 09:04:03 得分 0
建议使用XML;Top
2 楼swites(难民营中的人)回复于 2003-11-04 09:10:56 得分 0
gz!Top
3 楼jb9802(杰怪)回复于 2003-11-07 16:02:46 得分 0
T0:ljianq(泉深水清)
Web Servers 在传送的时候是转成XML的呀!!Top
4 楼ljianq(泉深水清)回复于 2003-11-10 12:57:03 得分 20
我的意思是ClientDataSet1有个XMLData属性,它是个WideString类型的,这样你可以通过
字符串来传送数据集。
实现就不会有问题了。Top
5 楼rabbit9(执子之风)回复于 2003-11-10 15:55:44 得分 0
关注中....Top
6 楼loby(菠萝)回复于 2003-11-13 03:01:31 得分 0
我也要看看!真在学呢?Top
7 楼loby(菠萝)回复于 2003-11-16 20:35:34 得分 0
你是使用的soapDataModule吗?他会自动的帮你发送xml格式的数据!如果是使用的一般的DataModule,你就需要自己把他转换为xml格式的数据,这是很复杂的哦!Top
8 楼loby(菠萝)回复于 2003-11-16 20:50:07 得分 10
对不起,是我搞错了!没看见,你用的确实是soapDataModule,(泉深水清)说的是对的你返回的数据格式应该是BSTR*的。呵呵!不好意思!Top
9 楼jb9802(杰怪)回复于 2003-11-21 00:53:59 得分 0
TO: loby(菠萝)
有没有具体的源码呀?Top
10 楼Raptor(猛禽)回复于 2003-11-21 12:58:25 得分 70
支持泉深水清
把你代码里的OleVariant换成BSTR
把CDS->Data换成CDS->XMLData即可Top
11 楼Raptor(猛禽)回复于 2003-11-21 12:59:16 得分 0
另:
这个叫Web Service不是Web ServerTop
12 楼jb9802(杰怪)回复于 2004-03-15 13:32:35 得分 0
OleVariant换成BSTR
那返回怎么写:return DataSetProvider1->Data; 类型有问题呀?Top
相关问题
- 怎样控制SQL SERVER返回的记录数???
- 返回记录总数! 在SQL SERVER 中过程怎样写?
- 请问如何在SQL Server的查询中,返回记录的当前序号?
- 关于用ADO调用SQL SERVER存储过程返回记录集的问题
- VB如何执行SQL Server中的存储过程返回记录集?
- 讨论ListView里显示十万级以上记录时,象SQL Server里的返回所有行的方式显示记录,怎么实现?
- ADO记录集GetRecordCount()返回记录条数为啥总为-1??
- rs能不能返回当前记录集的记录数
- rs 记录集无法返回 rs.recordcount 记录总数
- 删除记录后无法返回正确的记录数(vb6.0)




