在三层结构中,如何用SQL语名实现新增、更新、删除记录内容?(100分)

  • 主题发起人 主题发起人 clarion
  • 开始时间 开始时间
C

clarion

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何在三层结构中实现以标准SQL语句Insert,Update,Delete来实现对远程数据记录的新增、更新、删除操作,而不用Append,Edit,delete和Post指令?
 
ClientData.Close;
ClientData.CommandText := Memo1.Lines.Text;
ClientData.Open;
服务器上有个属性要设置为 CommandText (可能评写有误)
 
完颜康,对不起,忘记说明一个问题,我在服务器端使用的是ADOConnection + DataSetProvider + ADOQuery的组合,执行时出错提示没有返回数据集,但又没法使用ADOCommand,请教大侠如何解决?
 
同意楼上的!
在server中把DatasetProvider的option中poAllowcommandText设为True
 
建议看看李维的书
 
用 ADOQuery1.SQL
ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.Add('。。。。。。。。。。。。。。');
ADOQuery1.SQL.open ;
//或 ADOQuery1.ExecSQL
 
呵呵,抓到jrq的一个小失误
>>ADOQuery1.SQL.open ;
AdoQuery1.Open;
没有返回数据集就该用Adoquery1.ExecSql;
 
对不起各位,我的ADOQuery控件在服务器端上,首选,我无法直接修改ADOQuery.SQL.Text的值,
其次,我可以用给ClientData.CommandText 赋值的方式修改SQL命令,但客户端只会将我的
Update命令(或其它SQL指定)传给服务器的ADOQuery控件,但该控件中的Update指令一执行
就出错,提示没有返回结果集,修改不成功(注:在服务器端的DatasetProvider的option中
poAllowcommandText已被设为True)
针对以上问题该如何解决呢?有没有办法在客户端程序里修改服务器端的
ADOCommand.CommandText属性,并执行?
分不够可以再加
 
Server:
DataSetProvider1.Options->poAllowcommandText := True
Client:
ClientDataSet1.ProvidorName := DataSetProvider1;
ClientDataSet1.Close;
ClientDataSet1.CommandText := Memo1.Lines.Text;
//SQL语句
ClientDataSet1.Execute;

 
谢谢,问题已解决
 
后退
顶部