先查找表 class 的classname获取相应的classid.
用TQuery组件   select * from class where classname=指定值
通过
   Query.fieldbyname("classid") 可以获取classid.
然后插入的时候用这个值不就行了!

解决方案 »

  1.   

    你把他们同时对应取出,当他们改变时同时改变。
    如:
        tuxedoquery1.sql.clear;
        tuxedoquery1.sql.add(sqltext);
        try Tuxedoquery1.OPEN;
        except
          begin
          infodlgform.showbox('数据库连接失败!');
          exit;
          end;
        end;
        TuxedoQuery1.First;
        while not TuxedoQuery1.Eof do
          begin
          xzMC.Items.Add(TuxedoQuery1.fieldbyname('dxxzmc').asstring);
          xzdm.Items.Add(TuxedoQuery1.fieldbyname('dxxzdm').asstring);
          Tuxedoquery1.Next;
          end;
        xzMC.ItemIndex:=0;
        xzdm.ItemIndex:=0;
    end;procedure TForm_fyjs.xzmc_1Change(Sender: TObject);
    begin
        xzdm_1.itemindex:=xzmc_1.itemindex;
    end;
      

  2.   

    使用主从表:class是主表,student是从表。—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  3.   

    通过classname从table class中得到classid,然后再insert到table student中。
      

  4.   

    使用主从表:class是主表,student是从表。他们通过CLASSID关联—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  5.   

    在Student表的控件中增加一个新的字段设置该字段的名称、数据类型、长度,然后将字段类型设置为lookupKeyField填Student中的ClassID,
    DataSet填Class表的DataSet
    LookupKey填Class表的ClassID
    Result Field填Class表的ClassName这样在数据输入的时候当输入班级信息的时候使用你增加的Lookup字段就可以满足你的要求了!
      

  6.   

    班级表要事先建好,输入新学生时,可用combobox控件列出所有班级,从列表中选出
    班级名,
    加入时
    classname:string;
    classname:=combobox.text;
    query1.colse;
    query1.sql.clear;
    query1.sql.add('select classid from class where classbname=''%s'' ')
    );
    query1.prepare;
    query1.open;
    format(sql,[classname]);
    选出classid,
    加入表就行了
      

  7.   

    在ongettext事件中写呀

    if sender.asstring='' then
       text:='空'
    else
       text:=sender.asstring;
    在onsettext事件中写:
    try
    if text<>'' then
       begin
       Query1.edit;
       Query1.fieldbyname('zd').asstring:=text;
       end
    else
       begin
       Query1.edit;
       Query1.fieldbyname('zd').clear;
       end;
    except
    //
    end;
      

  8.   

    if text<>'' then
       begin
       Query1.edit;
       Query1.fieldbyname('zd').asstring:=text;//在赋值之前请将名称转化成代码。
       end
    else