我用COMMANDTEXT来实现查询什么的都会,不过这样体现不出三层的效果了
所以老师要求用远程调用的
我做了个小例子,结果一直提示出错
请各位大大帮帮忙看看
例子用的表就是一个USERNAME一个PASSWORD在远程模块
procedure Tsv.setquery(uname, pword: OleVariant);
var cmd:string;
begin
 cmd:='';
 cmd:='insert into users  values(uname,pword)' ;
 
 with ADOQuery1 do
  begin
   close;
   sql.clear;
   sql.add(cmd);
   Prepared;
   execsql;  end;end;客户端这边:
procedure TCMAIN.Button2Click(Sender: TObject);
var
sv:isvdisp;uname,pword:string;
begin
sv:=isvdisp(idispatch(dcomcon.GetServer));
uname:=trim(edit1.Text);
pword:=trim(edit2.Text);cds.Close;
trysv.setquery(uname,pword);
 cds.Open;
 except
 on e:exception do
 begin
 end;
end;
end;调试服务器端,在客户端添加用户,会提示错误,说是在此上下文中不允许使用UNAME,此处只允许使用常量,变量或表达式
然后OK后光标停在
   execsql;很头痛啊,毕业设计一定要用到这个的啊
前辈们指点下这个应该怎么办啊,或是有没有简单的MIDAS实例给我个链接我去学习下,CSDN这号是我向表哥拿的,没有分送给前辈了,真是不好意思,在这里先谢谢前辈们了!!谢谢!!!请帮帮我!

解决方案 »

  1.   

    procedure Tsv.setquery(uname, pword: OleVariant);
    var cmd:string;
    begin
     cmd:='';
     cmd:='insert into users (username,password) values(:username,:password)' ; with ADOQuery1 do
      begin
       close;
       sql.clear;
       sql.add(cmd);
     Parameters.ParamByName('username').Value:=uname;
    parameters.parambyname('password').value:=pword ;
     parameters.parambyname('password').value:=pword ;
       Prepared;
       execsql;  end;end;
    55555555555改出来了,好想哭,基础太差了。。之前忙着找工作毕业设计的事现在开始急,55555
      

  2.   

    去www.2ccc.com里面有几个三层的程序,有个关于汽车的