我的想法是这样的,在做入库的时候,表入库中只有商品代码字段,如何实现在dbgrid中能显示出表商品代码中的商品名称及规格型号等字段?

解决方案 »

  1.   

    跟Query的datasource相连,然后Query从几张表里面选数据就好了
      

  2.   

    “商品代码”用Adoquery控件,“入库”用Adotable 控件,dbgrid只能一次连接一个datasource啊?我是新手,没看明白,请见谅!
      

  3.   

    是不是我没有说明白,是这样的:
        我做一个商品入库程序,上部为共有项,下部用dbgrid来输入入库明细,在输入入库明细时,当输入商品代码字段时,可以弹出窗口来查询,也可以直接输入商品代码然后在后面显示出商品名称,规格型号,计量单位等字段,但是我在设计时,无法用dbgrid与入库表和商品代码表相连接,不知道我的想法是否是否实现。
        我用的是SQL数据库,上面的ljmanage告诉我方法是不是可以用视图的方法来实现呢?但我用视图时,不知道怎么能增加到入库中去新的数据,我是个新手,问些的幼稚的问题,希望大家不要见笑:P
      

  4.   

    例如:要编制一个人事管理程序,为简化演示程序,只建立两个数据库,每个数据库都只建立两个字段。  个人简介 jianjie.dbf,由人事处维护;工资情况 gongzi.dbf,由财务处维护。  一、数据库的建立  进入DataBase Desktop,建立数据库结构如下:  jianjie.dbf  编号 字段名:bianhao size:4 type:number  姓名 字段名:xingming size:10 type:character  gongzi.dbf  编号 字段名:bianhao size:4 type:number  工资 字段名:gongzi size:4 Dec 2 type:number  注意:两个数据库的bianhao字段的size、type必须一致。实际上,两数据库文件可以分布在网络的不同计算机上,为便于演示,分别存为″c: estjianjie.dbf″和″c: estgongzi.dbf″。  二、应用程序的编制  启动Delphi,新建一个工程,在窗体中加入Query控件Query1,databasename属性设为c: est;  加入DataSource控件datasource1,DataSet属性设为Query1;加入DbGrid控件dbgrid1,DataSource属性设为DataSource1,将Query1.sql属性设为   SELECT DISTINCT A.bianhao,a.xingming, b.gongzi  FROM ″jianjie.dbf″ A, ″gongzi.DBF″ b  WHERE A.bianhao=b.bianhao  再将Query1.enabled属性设为True,不用编译,DbGrid1就会显示:bianhao,xingming,gongzi三个字段。如果jianjie.dbf和gongzi.dbf中有记录,则记录会显示出来。因篇幅所限,此文只介绍了Dbgrid中显示多个数据库内容的一般方法,读者可在此基础上进行完善,使该方法更好地适应您的需要。
     
      

  5.   

    我的方法是这样的:
     ADOQuery_spbm中: select * from spbm,rkls1 where rkls1.spdm=spbm.spdm
     Datasouce名:spbmcx 与 ADOQuery_spbm相连,DBGrid_rkls1 与 spbmcx相连,
    按增加按钮时:
        ADOQuery_spbm.Open;
        ADOQuery_spbm.Append;
    写完内容后,按保存按钮时
        ADOQuery_spbm.post;
        ADOQuery_spbm.close;
    但是却出现了,违反了Parimary key 约束'pk_spbm'.不能在对象'spbm'中插入重复键。
    我不知道我的描述是否清楚?我是个新手,请不要见笑!不知还有什么好的方法?
      

  6.   

    我以前建了视图,但也是出现了和这次一样的提示:“违反了Parimary key 约束'pk_spbm'.不能在对象'spbm'中插入重复键。”?所以才想到用这种方法是否能够实现?
      

  7.   

    你查询时用视图查,写的时候可以用SQL直接写到表里去。是不是想把所有的功能都用dbgrid
    实现?如果那样的话,我帮不上你,因为没试过。
      

  8.   

    但是只有一个DBgrid?怎么实现两个功能呢?我倒是这样想过,建两个查询表ADoquery,但怎么能实现呢?
      

  9.   

    期待高手ING……
    或者你也可以写个SQL过程,当DBgrid被改动或视图被修改时,触发这个过程,利用这个过程对数据库进行修改(还要写个触发器)。这样就不用添加控件了。
      

  10.   

    在DBgrid的Onchange事件(或其它更合适的事件)中调用存储过程直接写到表里去。查询时还是从视图查,怎样?就是查询和修改分两个过程完成。
      

  11.   

    如果仅仅为了查询,最好用Query或clientdataset.commandtext;
    如果要修改,要简单就用临时表或MemoTable.