有一个学生卡管理表(stu_card),里面有学生卡(card_id)字段和学生学号(student_no)字段
还有一张学生家长表(parent),里面有学生学号(student_no)字段和家长姓名字段
现要写个存储过程,给定学生卡号,根据学生卡查学生家长,用存储过程怎么写?假设表数据如下:
stu_card表
card_id      student_no
123456        0000001parent表 
student_no    parentname    lab
0000001       张三          父亲
0000001       李鹃          母亲
    
   
如代入123456的参数,得到上面两个家长姓名
最好说一下delphi端怎么调

解决方案 »

  1.   

    SQL端
    CREATE PROCEDURE 根据学生卡查学生家长
    @a [char](15)
     AS
    select  parentname lab from   where parent where  student_no=@a
    GO
    delphi端
    with adostoredproc1 do
    begin
      close;
      parameters.refresh;
       parameters. parameterbyname('@a').value:=edit1.text;
    open;
    while  not adostoredproc1.eof do
    begin 
     memo1.line.add( adostoredproc1.fieldbyname('parentname lab').value);
    adostoredproc1.next;
    end;
      

  2.   

    哦。SQL端应该是
    CREATE PROCEDURE 根据学生卡查学生家长
    @a [char](15)
    AS
    select parentname  from  parent  where student_no=(select student_no from stu_card where  card_id =@a)
    GO
      

  3.   

    存储过程
    CREATE PROCEDURE HYKH 
          @card_id VARCHAR(50),@parentname varchar(50) output
    AS 
    select @lab form 
     set @parentname=(select lab from parent where student_no=(select student_no from stu_card where card_id=@card_id) )DELPHI写如下
    procedure TForm1.Button2Click(Sender: TObject);
    begin
            adostoredproc1.Parameters.ParamByName('@card_id').Value:='1234';
            adostoredproc1.execproc;
            edit2.Text:=adostoredproc1.Parameters.ParamByName('@parentname').value;
    end;end.