A表:
性别 性别代号
男   1
女   2B表:
姓名 姓别 年龄
张三 1    12
李四 2    13现在输入界面中:edit1内容为姓名,combobox内容为性别(男,女),edit2内容为年龄.
如何在写入表B中时,将combobox中的男或女自动转换成1或者2谢谢.

解决方案 »

  1.   

    select b.姓名, a.性别, b.年龄 from B表 b 
    left join A表 a on(b.性别=a.性别代号)如果你的控件是数据敏感控件就行了
      

  2.   

    insert into B表(姓名, 姓别, 年龄)
    values(:XM, :XB, :NL)
    cdspublic.Params.ParamByName('XM').asstring:=trim(edit1.text);
    if combobox.text='男' then
      cdspublic.Params.ParamByName('XB').asstring:=1
    else
      cdspublic.Params.ParamByName('XB').asstring:=2;
    cdspublic.Params.ParamByName('NL').asstring:=trim(edit2.text);
      

  3.   

    不用写,直接用DBlookupComboBox即可
    具体用法为:
    1.设定DBlookupComboBox的DataSource为获取B表的table或query组件(TDataSource),DataField为性别
    2.设定DBLookupComboBox的ListSource为获取A表的table或query组件(TDataSource),ListField为性别,KeyField为性别代号
    按照以上两步操作即可满足你要实现的目标
      

  4.   

    create table ttt(fm int,name varchar(20));create table tttt (fm int,fmdesc varchar(20));
    insert into tttt values(1,'男');
    insert into tttt values(1,'女');insert into ttt select fm,'lidddd' from tttt where fmdesc='男'select  * from ttt
      

  5.   

    select fm,'lidddd' from tttt where fmdesc='男'  这部分需要进行拼SQL
      

  6.   

    如果有多个关联表,是不是要加多个DATASOURCE?如果只用SQL语句可以解决吗?
      

  7.   

    用sql转换下
    INSERT INTO b
    SELECT Name ,CASE WHEN '男' then 1 ELSE 0 END
      

  8.   

    楼主可以这样想,一班,二班,三班...十班  象这种编排是有序的,也就是说它们之间是不可能断开的.
    所以楼主可以在这样的表中加一个 自动id ,这样
     一班 对应 1,
     二班 对应 2,
     三班 对应 3,
     ...
     十班 对应 10
    楼主在找某个班级时,如 SELECT ID FROM T WHERE NAME='五班'
    INSERT INTO TEST
    SELECT XXX,(SELECT ID FROM T WHERE NAME=COMBOX1.VALUE)
      

  9.   


    // 你按下边的方式处理,保存ComboBox1.ItemIndex值就可以了procedure TForm1.FormCreate(Sender: TObject);
    begin
      ComboBox1.Items.Add('男');
      ComboBox1.Items.Add('女');
      combobox1.Text := combobox1.Items.Strings[0];
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      showmessage(inttostr(ComboBox1.ItemIndex));
    end;