tadoquery再次打开时出错(300分)

  • 主题发起人 主题发起人 g622
  • 开始时间 开始时间
我运行来运行去都没问题啊!
而且你想要的功能也全都能实现。
我和你的程序唯一不同的也只能是数据库了。
我的ID是integer;webcontent没有使用OEL字段,而是直接用了String;
 
以下是我的源程序,在我机器上运行是正常得不能再正常了!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, DB, ADODB, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
WebBrowser: TWebBrowser;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
S:String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser.Navigate(S);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
WebBrowser.ExecWB(OLECMDID_PRINTPREVIEW,0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select webcontent From tb_webdata Where ID=:DD');
ADOQuery1.Parameters.ParamByName('DD').Value:=Strtoint(Edit1.Text);
AdoQuery1.Open;
S:=ADOQuery1.FieldByName('webcontent').AsString;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
S:='http://www.sina.com.cn';
end;

end.
 
新建一个表,包含两个字段(其中一个为OLE字段)
新建的Project测试一下,也许有帮助。
 
你的程序和我所不同的是你没使用TADOConnection,会不会是这儿的原因呢?
 
加上adoconnect就正常了
 
不会是ADO的错,很可能是代码的问题。
你代码中的ADOQuery根本没有使用呀,就是打开再关闭,跟WebBrowser的预览没关系嘛。
 
我试了一下,很不幸:出现了g622所说的错误。我改了一下代码,勉强还可以。
ADOQuery1使用其本身自己的ConnectionString。
try
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from cUser');
ADOQuery1.Open;
except
ADOQuery1.Close;
end;
 
后退
顶部