一个简单的数据连接有关问题

一个简单的数据连接问题
我是新手,我想做一个执行数据库的类,下面是我的类内容:
unit clstheAccess;

interface

Uses
  SysUtils, Classes, DB, ADODB, Forms, Dialogs;

type
  theAccess=class(TDataModule)
  AdoConn: TADOConnection;
  private
  { Private declarations }
  public
  procedure Conn;
  function ExecuteSQL(strSQL:String;var strMsg:String):integer;
  function ExecuteSQL1(strSQL:String;var strMsg:String;var rsReturn:TADOQuery):integer;
  { Public declarations }
end;

var
  gtheAccess:theAccess;

implementation

procedure theAccess.Conn;
var
  ConnectionString:String;
begin
  ConnectionString:='User ID=sa;Password=123456;Data Source=;Initial Catalog=master';
  AdoConn.Provider:='SQLOLEDB';
  AdoConn.ConnectionString:=ConnectionString;
  AdoConn.LoginPrompt:= False;
  AdoConn.Mode:= cmShareDenyNone;
  AdoConn.Connected:= True;
end;

function theAccess.ExecuteSQL(strSQL: String;var strMsg:String):Integer;
begin
  try
  if not AdoConn.Connected then Conn;
  AdoConn.Execute(strSQL);
  strMsg:='执行SQL语句成功';
  result:=1;
  except
  strMsg:='执行SQL语句失败';
  result:=0;
  end;
end;

function theAccess.ExecuteSQL1(strSQL:String;var strMsg:String;var rsReturn:TADOQuery):integer;
var rs:TADOQuery;
begin
  try
  rs:=TADOQuery.Create(Application);
  rs.Connection:=AdoConn; //这句有错误提示
  if not AdoConn.Connected then Conn;
  rs.SQL.Clear;
  rs.SQL.Add(strSQL);
  rs.Open;
  rsReturn:=rs;
  strMsg:='执行SQL语句成功';
  result:=1;
  rs.Free;
  except
  strMsg:='执行SQL语句失败';
  result:=0;
  end;
end;

end.


请大家帮我看看,这是哪里的错


------解决方案--------------------
在调用的时候,首要调用 procedure theAccess.Conn; 过程,否则,你直接调用那个function theAccess.ExecuteSQL1 就会报错的!
------解决方案--------------------
rs.Connection:=AdoConn; //这句有错误提示 ,
//adoConn你初始过了吗,还没初始化就调用能不出错吗
if not AdoConn.Connected then Conn;

这样 
Conn;
rs.Connection:=AdoConn;
------解决方案--------------------
每次执行ExecuteSQL1都要创建出一个TADOQuery来,效率也太低了,,,,不合格 :)
------解决方案--------------------
up
------解决方案--------------------
Query 本身也不要用:var 去回传啊。直接 function 返回 Query 就行了,最终由调用者释放掉资源。


------解决方案--------------------
楼主的代码没什么问题了,呵呵