-1

我想对这个问题进行有效的编码

function ADOConnectionWillExecute( Connection: TADOConnection; var CommandText:      
WideString;
 var CursorType: TCursorType; var LockType: TADOLockType;
 var CommandType: TCommandType; var ExecuteOptions: TExecuteOptions;
 var EventStatus: TEventStatus; const Command: _Command;
 const Recordset: _Recordset) : TStringlist ;

 begin

  result.AddStrings(
  CommandText,
  'Before '+GetEnumName(TypeInfo(TCommandType),Integer(CommandType)),
   GetEnumName(TypeInfo(TEventStatus),Integer(EventStatus)),
   GetEnumName(TypeInfo(TCursorType),Integer(CursorType)),
   GetEnumName(TypeInfo(TADOLockType),Integer(LockType)), 0);
  end;

在来自互联网的原始代码源中,所有数据都写入 GUI 元素,接受字符串和整数值,请参阅使用 ADO 构建自己的分析器 。我的 result.addstring 不起作用,不会对例如进行任何类型转换。默认字符串,也使用 result.add(...) 语句

无需太多额外编码即可处理这些数据的最有效方法是什么?

4

1 回答 1

3

这是Delphi 101。您必须先创建一个类的实例才能使用它,而您的代码不会这样做。

您需要先创建Result才能访问它。

Result := TStringList.Create;
Result.AddStrings(....);

从函数返回对象实例时,您需要记住调用代码有责任在之后释放它,因此请确保保护该代码try..finally以确保发生这种情况以避免内存泄漏。

除非您解释“不起作用”是什么意思,否则说“不起作用”是完全没有意义的。请记住,在这里提出问题时,我们无法看到您的屏幕或读懂您的想法,因此您在写问题时需要具体。如果您说“不起作用”,请解释该短语的含义。如果您说“我收到错误”,请描述错误并提供您收到的确切错误消息(如果有),包括任何内存地址或错误代码。很明显,这些信息摆在您面前,否则您将不知道事情不正常,或者您遇到了错误。绝对没有理由不在您的问题中提供这些细节。

于 2013-10-04T11:29:00.230 回答