请教各位,webborwser打开网页复制粘贴操作之后不能进行数据库查询操作吗?
劳驾看看这段代码。如果执行这段代码,我整个程序中的ADO数据库操作全部出错。
出错提示:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
  iloop := strtoint(leftstr(inttostr(ilast3ditemno), 4));
  while iloop <= yearof(now) do begin
    if round(now - encodedatetime(iloop, 01, 01, 0, 0, 0, 0)) > 365 then
      ipage := 12
    else
      ipage := round((now - encodedatetime(iloop, 01, 01, 0, 0, 0, 0) - 7) /
        30);    while ipage >= 1 do begin
      bnext := false;
      wb.Navigate('http://www.3dlotto.net/histdata.asp?page=' + inttostr(ipage)
        +
        '&zqi=' + inttostr(iloop));
      dec(ipage);      while bnext = false do begin
        application.ProcessMessages;
      end;
    end;    inc(iloop);
  end;多谢。

解决方案 »

  1.   

    有点复杂了,我直接用wb.navigate('http://www.3dlotto.net/histdata.asp?page=1&zqi=2007');一条语句概括上面的代码。然后进行数据库操作,如下:with adoquery1 do begin
      close;
      sql.clear;
      sql.add('select * from db');
      open;
    end;就会出现提示:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
      

  2.   

    我尝试过,随便navigate任何一个url都会影响数据库操作。
      

  3.   

    找到原因了,原来我进行了如下操作:
    procedure TForm1.wbDocumentComplete(ASender:TObject;
    const pDisp:IDispatch; var URL:OleVariant);
    begin
    if (wb.QueryStatusWB(OLECMDID_SELECTALL) = (OLECMDF_ENABLED or
    OLECMDF_SUPPORTED)) then wb.ExecWB(OLECMDID_SELECTALL, 0);
    if (wb.QueryStatusWB(OLECMDID_COPY) = (OLECMDF_ENABLED or OLECMDF_SUPPORTED))
    then wb.ExecWB(OLECMDID_COPY, 0);
    memo1.PasteFromClipboard;
    end;但是此操作怎么会对数据库操作有影响呢?
      

  4.   

    换另一种方法搞定:  if Doc.QueryCommandEnabled('SelectAll') then
        Doc.ExecCommand('SelectAll', false, 0);
      if Doc.QueryCommandEnabled('Copy') then
        Doc.ExecCommand('Copy', false, 0);