其实只有这么长:已经在SQL Server里面作了存储过程
但是关于前台的关于存储过程的定义和调用的语句我很不解,请给与解释一下好吗????????
如果关于统计的函数已经写好在SQL Server的一个存储过程
那我在前台应该怎么样调用这个存储过程呢?
另:请帮忙解释一下这一段有关统计的程序,万分感谢了!!!!!!!!!!!!!!!!!!!!!!!111
procedure TFSltCal.AddDepartJie;
var sqltxt :string;
begin  if(r1.Checked)then
  begin
    Self.GrateStr := '1 年级';
    Self.sltDbtable := '大一男生体育合格标准表';
    AQ1.Close;
    AQ1.SQL.Text := 'select distinct student_depart from nan_one';
    AQ1.Open;
    cb1.Items.Clear;
    while not aq1.Eof do
    begin
      cb1.Items.Add(aq1.fieldbyname('student_depart').AsString);
      aq1.Next;
    end;
    Aq1.Close;
    aq1.SQL.Text := 'select distinct student_jie from nan_one';
    aq1.Open;
    cb2.Items.Clear;
    while not aq1.Eof do
    begin
      cb2.Items.Add(aq1.fieldbyname('student_jie').AsString) ;
      aq1.Next;
    end;
  end;
...................
那这一段程序是不是实现的是往选定的存储过程中写入Inout数据(执行的选择条件)呢?
比如在存储过程proc大学生体育合格标准总计评分男1中,有Select @级别=2000 后的话就
相应的存储
上面的程序与这段程序有什么关联?????请在给解释一下好马????????
(我不明白TFSltCalNa1.AddDepartJie是什么意思????AddDepartJie是什么??????)
procedure TFSltCalNa1.AddDepartJie;
var sqltxt :string;
begin  if(r1.Checked)then
  begin
    Self.GrateStr := '1 年级';
    Self.StpName := 'proc大学生体育合格标准总计评分男1';    Aq1.Close;
    aq1.SQL.Text := 'select distinct student_jie from nan_one';
    aq1.Open;
    cb2.Items.Clear;
    while not aq1.Eof do
    begin
      cb2.Items.Add(aq1.fieldbyname('student_jie').AsString) ;
      aq1.Next;
    end;
  end;http://www.csdn.net/expert/topic/793/793455.xml?temp=.4732324
http://www.csdn.net/expert/topic/793/793448.xml?temp=.6726953

解决方案 »

  1.   

    ***************注意注意***********************其实程序只有这么长**********
    已经在SQL Server里面作了存储过程
    但是关于前台的关于存储过程的定义和调用的语句我很不解,请给与解释一下好吗????????
    如果关于统计的函数已经写好在SQL Server的一个存储过程
    那我在前台应该怎么样调用这个存储过程呢?
    另:请帮忙解释一下这一段有关统计的程序,万分感谢了!!!!!!!!!!!!!!!!!!!!!!!111
    procedure TFSltCal.AddDepartJie;
    var sqltxt :string;
    begin  if(r1.Checked)then
      begin
        Self.GrateStr := '1 年级';
        Self.sltDbtable := '大一男生体育合格标准表';
        AQ1.Close;
        AQ1.SQL.Text := 'select distinct student_depart from nan_one';
        AQ1.Open;
        cb1.Items.Clear;
        while not aq1.Eof do
        begin
          cb1.Items.Add(aq1.fieldbyname('student_depart').AsString);
          aq1.Next;
        end;
        Aq1.Close;
        aq1.SQL.Text := 'select distinct student_jie from nan_one';
        aq1.Open;
        cb2.Items.Clear;
        while not aq1.Eof do
        begin
          cb2.Items.Add(aq1.fieldbyname('student_jie').AsString) ;
          aq1.Next;
        end;
      end;
    ...................
    那这一段程序是不是实现的是往选定的存储过程中写入Inout数据(执行的选择条件)呢?
    比如在存储过程proc大学生体育合格标准总计评分男1中,有Select @级别=2000 后的话就
    相应的存储
    上面的程序与这段程序有什么关联?????请在给解释一下好马????????
    (我不明白TFSltCalNa1.AddDepartJie是什么意思????AddDepartJie是什么??????)
    procedure TFSltCalNa1.AddDepartJie;
    var sqltxt :string;
    begin  if(r1.Checked)then
      begin
        Self.GrateStr := '1 年级';
        Self.StpName := 'proc大学生体育合格标准总计评分男1';    Aq1.Close;
        aq1.SQL.Text := 'select distinct student_jie from nan_one';
        aq1.Open;
        cb2.Items.Clear;
        while not aq1.Eof do
        begin
          cb2.Items.Add(aq1.fieldbyname('student_jie').AsString) ;
          aq1.Next;
        end;
      end;http://www.csdn.net/expert/topic/793/793455.xml?temp=.4732324
    http://www.csdn.net/expert/topic/793/793448.xml?temp=.6726953
      

  2.   

    我不知道TFSltCal是什么东东?StpName又是什么属性?
    这段程序确实没有调用存储过程,几乎毫无关系,如果有,就是Self.StpName := 'proc大学生体育合格标准总计评分男1'这里有文章,但光有这句是没有意义的,这只是把存储过程名字赋给StpName,我猜TFSltCal为自定义的一个类,StpName为类的一个属性,一定在某个地方根据StpName属性调用存储过程,建议你查找一下StpName
    要调用存储过程,要么用存储过程控件,如果用Query,就要用SQL语句
    sql := 'Execute 存储过程名称'
           //在这里,存储过程名称为proc大学生体育合格标准总计评分男1
    然后
    Query.SQL.Add(sql);
    Query.ExecSQL;
    看看你的这些代码,根本没有Execute语句,也没有存储过程控件.ExecProc,所以并不是在这些代码里调用存储过程的,可以说这些代码几乎和存储过程无关
      

  3.   

    http://www.csdn.net/expert/topic/794/794623.xml?temp=.9245417
      

  4.   

    建议你按住Ctrl键,用鼠标在StpName点击左键,看看StpName在哪里定义,然后按Ctrl+F,查找哪里用到StpName,上面的代码我确实看不出调用存储过程
      

  5.   

    建议你按住Ctrl键,用鼠标在StpName点击左键,看看StpName在哪里定义,然后按Ctrl+F,查找哪里用到StpName,上面的代码我确实看不出调用存储过程
      

  6.   

    早点把问题说清楚嘛,很简单的
    举个小例子吧
    if(r1.Checked)then
      begin
        with aq1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Execute proc大学生3       ');
          SQL.Add(' '''+Trim(Edit1.Text)+''' ');
          Prepared;
          ExecSQL;
        end;
      end;