首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请大家看看这两个函数是否存在资源释放方面的有关问题

2012-02-12 
请大家看看这两个函数是否存在资源释放方面的问题?unit UntSQLHelperinterfaceusesADODB, Uni, DB, SysUt

请大家看看这两个函数是否存在资源释放方面的问题?
unit UntSQLHelper;

interface

uses
  ADODB, Uni, DB, SysUtils, StrUtils, Forms, Controls, ComObj, Windows, Activex, Variants, ADOInt, Dialogs;

type
  SQLHelper = class
  public
  { 返回一个DataSet }
  class function ExecuteDataSet(conn: TADOConnection; strSQL: string): TDataSet; overload;  
  { 直接获取一个结果值,返回结果为变体类型,可直接赋值使用。}
  class function GetFieldValue(conn: TADOConnection; strSQL: string): olevariant; overload;
   
  end;

implementation

{ SQLHelper }

class function SQLHelper.ExecuteDataSet(conn: TADOConnection;
  strSQL: string): TDataSet;
var
  query: TADOQuery;
begin
  query := TADOQuery.Create(nil);
  query.Connection := conn;
  query.SQL.Clear;
  query.SQL.Add(strSQL);
  query.Open;
  result := query;
end;

class function SQLHelper.GetFieldValue(conn: TADOConnection; strSQL: string): OleVariant;
begin
  result := SQLHelper.ExecuteDataSet(conn, strSQL).Fields.Fields[0].Value;
end;


end.

GetFieldValue函数里需不需要释放那个DataSet?如果有问题,怎么改比较好?
谢谢大家。

[解决办法]
跨进程修改DBGRID内容,有没有例子,没人会我
[解决办法]
每执行一次GetFieldValue就会创建一个,需要释放
[解决办法]
query 做为一个参数传递进去
[解决办法]
ExecuteDataSet返回的对象,用完后要释放
[解决办法]
这种写法没法释入DataSet, 把DataSet做为参数传进去。用完释放。
[解决办法]
你可以写个函数来释放这个dataset
就像内存申请和内存释放一样

热点排行