服务器数据的查询与提交
发布时间:2024.03.05
对服务端数据包括查询与更新两种操作,查询,就是从服务器上取数据但不改变数据;更新,就是对服务器数据的增删改等改变数据的行为。
在做查询或更新数据时,需要一个服务器连接对象,由类JCSocServer定义,可以由如下语句建立一个连接:
JCSocServer server;
server=CRuntime.getInstance().getServer();
server就是一个连接对象,代表到服务器的一个tcp/ip连接。
1、查询
查询是通过向服务器提交SQL 语句获取数据库中的数据的,可以一次向服务器提交多个SQL语句,从而一次性返回多个结果集,类JCMQORecordsetC代表查询对象,如下:
JCMQORecordsetC qy = new JCMQORecordsetC();//建立查询对象
qy.setServer(server); //设置连接
String key,sql;
key = "likp";//为查询1指定一个名称,多个查询的名称不能相同以便区分
sql = " select * from l_mkpf_d where mandt='" + CRuntime.getInstance().MANDT() + "'";
qy.addSql(key, sql); //将要查询的视图1
key = "kna1";//为查询2指定一个名称
sql = "select * from l_lfa1_smp where mandt='" + CRuntime.getInstance().MANDT() + "' and lifnr='" + m_lifnr + "'";
qy.addSql(key, sql); //将要查询的视图2
qy.open();//将查询语句提交给服务器,这时要访问网络,服务器执行完查询后将结果集返回,该函数结束,所以这个函数要放在线程中执行
//查询结束后,就可以对结果集进行遍历了
int cnt;
key = "likp";//第一个结果集的名称
cnt=qy.recordCount(key).recordCount(key)//第一个结果集的行数量
for(int i=0;i<cnt;i++)
{//遍历每一行取字段值
String s1=qy.field(key,i,"ebeln");//字段ebeln的值
String s2=qy.field(key,i,"lifnr");//字段lifnr的值
......//其它操作
}
key = "kna1";//第二个结果集的名称
cnt=qy.recordCount(key).recordCount(key)//第二个结果集的行数量
for(int i=0;i<cnt;i++)
{//遍历每一行取字段值
String s1=qy.field(key,i,"kna1");//字段kna1的值
String s2=qy.field(key,i,"name1");//字段name1的值
......//其它操作
}
2、事务更新
不同的事务更新大多由不同的类完成,所以事务类比较多,使用方式大致步骤如下:
1、建立对象;
2、设置连接;
3、对属性赋值;
4、提交到服务器;
5、根据返回结果提示;