procedure Tform1.FormCreate(Sender: TObject);
var
  mc, s, wherestr,gjmc: string;
begin
  listbox1.clear;
  if ff = 3 then
    mc := form3.stringgrid1.cells[1, ggrow];
   //wherestr := 'gjmc=''' + mc + '''';
  with OraQuery1 do
  begin
    try
      Close;
      SQL.Text:='Select gjgg from GJGGDM where gjmc='''+mc+'''';
      Open;
      while not eof do
      begin
        s := fieldbyname('gjgg').asstring;
        if s <> '' then
          listbox1.items.add(s);
        next;
      end;
    except
      messagedlg('没有相应的工具!', mtinformation, [mbok], 0);
    end;
    Close;
  end;
end;mc:=form3.stringgrid1.cells[1, ggrow] 这个串的写法有问题吗?是不是无法得到form3的stringgrid的单元格的内容?导致的问题?

解决方案 »

  1.   

    gjgg是字段名 GJGGDM是表名 where后面的查询条件没有执行。
      

  2.   

    发现个问题?在oracle利语句都运行不起来,哈哈~! 看来是写的有问题,自己想想~
      

  3.   

    这样写是可以取出值的procedure TForm1.Button1Click(Sender: TObject);
    begin
     StringGrid1.Cells[1,1]:='kkkkk';
     edit1.Text:=StringGrid1.Cells[1,1];  //结果是edit1.text:='kkkkk';
    end;
      

  4.   

    干吗在formcreate的时候做这些呢,放到formshow里面试试看
      

  5.   

    这些语句不应写到窗口的create事件中,因为stringgrid1可能还没创建或者赋值。
    把涉及OraQuery1控件的语句写到窗口show事件或者active中就可以了。
    再一个:'Select gjgg from GJGGDM where gjmc='''+mc+'''';可能写法有问题,该下引号试试,我忘记怎么写了。
      

  6.   

       try 
          Close; 
          SQL.Text:='Select gjgg from GJGGDM where gjmc='''+mc+''''; 
          Open; 
          first;//是不是要加个
          while not eof do 
          begin 
            s := fieldbyname('gjgg').asstring; 
            if s  <> '' then 
              listbox1.items.add(s); 
            next; 
          end; 
        except 
          messagedlg('没有相应的工具!', mtinformation, [mbok], 0); 
        end; 
      

  7.   

    设断点跟直踪,看看问题在哪,而且最好别在oncreate中做这些事。
      

  8.   

    oncreate里最好只写初始化的东西.
      

  9.   

    设置断点单步调试的话,停在SQL.Text:='Select * from tablename where 条件'这里。像我昨天那种写法是个死循环。
    我的查询条件是从stringgrid的一个Cells里面取的字符串,但是在sql语句里面不正确呀,应该怎么写呢?
      

  10.   

    就是通过一个字段gjmc查找与其对应的gjgg,但是gjmc的值是通过stringgrid的一个cell取到的,这个如何实现?分别在两个窗体中。