关于使用ADO的问题。(100分)

  • 主题发起人 主题发起人 若飞
  • 开始时间 开始时间

若飞

Unregistered / Unconfirmed
GUEST, unregistred user!
我在datamodule中建立了名为datam包含一个ADOConnection1、一个
ADOQuery1以及一个DataSource1,现在FORM1中放置一个DBGRID控件,
在FORM1中使用了USE DATAM,当中TFORM1.FormCREATE事件中使用以下语句:
var str_sql:string;
begin
with datam.ADOQuery1 do
begin
str_sql:='select * from phone_dno2';
active:=false;
sql.clear;
sql.add(str_sql);
open;
end;
end;
当程序运行使就出错,这是为什么?
以上ADOConnection1是与MSSQL连接上了.请各位大虾帮帮忙!谢谢!
 
你不要放入TFORM1.FormCREATE事件。
放入TFORM1.FormActivate时间就可以了。如下:

procedure TForm1.FormActivate(Sender: TObject);
var str_sql:string;
begin
with datam.ADOQuery1 do
begin
str_sql:='select * from phone_dno2';
active:=false;
sql.clear;
sql.add(str_sql);
open;
end;
end;
 
1)先close
2)放到sql属性里去,在设计阶段边active成功则不会出错了。
 
你可用这种方法。
var str_sql:string;
begin
with datam.ADOQuery1 do
begin
active:=false;
str_sql:='select * from dbo.phone_dno2';
sql.clear;
sql.add(str_sql);
active:=true;
end;
end;
其中代码听的dbo字符为数据库的拥有者。
 
还有一个问题请教各位:为什么在ADOCONNECTION中使用ODBC串连接时没问题,而用
直接SQLOLEDB连接时却出现“protocol error in tds stream”为何?我使用
SQL6.5做为后端数据库。
 
多人接受答案了。
 
后退
顶部