var HTML:TStrings;
    I,J:Integer;
begin
HTML:=TStringList.Create;
HTML.Add('<table width="100%" border="1">');
HTML.Add('<TR>');
for J:= 0 to Query.FieldCount-1 do
  begin
  HTML.Add(Format('<TD>%S</TD>',[Query.FieldDefs[J].Name]));
  end;
HTML.Add('</TR>');
for I:=0 to 30 do
  begin
  HTML.Add('<TR>');
  for J:= 1 to Query.FieldCount do
    begin
    HTML.Add(Format('<TD>%S</TD>',[Query.Fields.FieldByNumber(J).AsString]));
    end;
  HTML.Add('</TR>');
  Query.Next;
  end;
HTML.Add('</Table>');
Response.Content:=HTML.Text;
HTML.Free;在一般的程序中可以,但到了CGI中不通过.Query是一个TADOQuery.
我用的是IIS5,W2kP,DElphi6

解决方案 »

  1.   

    Query.Active:=True;在CGI中用Query一定要显示的设定Query.Active
    不然,呵呵....
      

  2.   

    对每一个action发出一个请求的时候都会启动一个新的线程要求对数据集进行打开操作
      

  3.   

    数上的朋友,我还是不行呀!
    明明平时能行,拿到IIS上面当CGI就会出错!
      

  4.   

    建议用一个TRY/EXCEPT把BEGIN/END里的代码括起来,在EXCEPT里把错误信息返回到RESPONSE里,看看具体出了什么错才好分析。
      

  5.   

    确实是不行的!我以前也试验过ADO,反复测试了好长时间,只要一设置Active属性(或者ADOQuery.Open)就报错,无论如何调试都没有办法,但是同样的代码用Query就没有任何问题了!