Inifile:= TIniFile.Create(getIniFileName(Application.exeName));
  with DM.OraQuery1 do
  begin
    Close;
    SQL.Text:='Select CSMC From DMGX02';
    Open;
    if not eof then
    csmc1:=Fieldbyname('csmc').AsString;
    with DM.OraQuery2 do
    begin
      Close;
      SQL.Text:='Select GXMC From DMGX02 Where CSMC='''+csmc1+'''';
      Open;
      if not eof then
      gxmc1:=Fieldbyname('gxmc').AsString;
      with DM.OraQuery3 do
      begin
        Close;
        SQL.Text:='Select CZNR1 From GXDY Where GXMC='''+gxmc1+'''';
        Open;
        if not eof then
        cznr1:=Fieldbyname('cznr1').AsString;
      end;
    end;
    while not eof do
    begin
    Inifile.WriteString('csmc1', 'gxmc1', 'cznr1');
    end;
  end;
我运行的结果是:
[csmc1]
gxmc1=cznr1-----------------
为什么不是我期待的数据库里面对应的字段值呢?麻烦点解一下。谢谢。

解决方案 »

  1.   

    Inifile.WriteString('csmc1', 'gxmc1', 'cznr1'); 这里的问题
    应该写变量值,别写常量值,你现在是一个常量字符串,所以只能出你最后那个结果
      

  2.   

    Inifile.WriteString('csmc1', 'gxmc1', 'cznr1'); 用变量代替常量
      

  3.   

    改成:Inifile.WriteString(csmc1, gxmc1, cznr1); 不加引号!!!
      

  4.   

    Inifile.WriteString('csmc1', 'gxmc1', 'cznr1'); 用变量代替常量 
      

  5.   

    你的cznr1是个变量吧?这样试试.
    Inifile.WriteString('csmc1', 'gxmc1', cznr1); 
      

  6.   

    Inifile.WriteString('csmc1', 'gxmc1', 'cznr1'); 用变量代替常量
    9楼那样就可以了。
      

  7.   

    搞清变量和常量的区别
    1.'aa' 字符串常量
    2.var aa:string;//字符串变量
      aa:='你好';
      
      

  8.   

    这个从数据库往出取的问题已经搞定了,谢谢大家~!Inifile:= TIniFile.Create(getIniFileName(Application.exeName));//建立INI文件
      with DM.OraQuery1 do 
      begin
        Close;
        SQL.Text:='Select distinct csmc,gxdy.gxmc,cznr1 From dmgx02,gxdy Where dmgx02.GXMC=gxdy.GXMC Order By csmc,gxmc,cznr1';
        Open;
        while not dm.OraQuery1.Eof do
        begin
          csmc1:=Trim(Fieldbyname('csmc').AsString);
          gxmc1:=Trim(Fieldbyname('gxmc').AsString);
          cznr1:=Trim(Fieldbyname('cznr1').AsString);
          Inifile.WriteString(csmc1, gxmc1, cznr1);
          //if (s1<>csmc1) and (s2<>gxmc1) and (s3<>cznr1) then
          //begin
          //s1:=csmc1;s2:=gxmc1;s3:=cznr1;
          dm.OraQuery1.next;
        end;
      end;