我想对此问题进行有效编码
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元素,接受字符串和整数值,请参阅Build your own profiler using ADO 。 我的result.addstring不起作用,不会做任何类型的转换,例如。默认字符串,也使用result.add(...)语句
如果没有额外的编码,处理这些数据的最有效方法是什么?
答案 0 :(得分:2)
这是Delphi 101.您必须先创建一个类的实例才能使用它,而您的代码不会这样做。
您需要先创建Result
才能访问它。
Result := TStringList.Create;
Result.AddStrings(....);
从函数返回对象实例时,您需要记住,调用代码有责任在之后释放它,因此请确保使用try..finally
保护该代码以确保发生避免内存泄漏。
说“不起作用”是完全没有意义的,除非你解释什么“不起作用”的意思。请记住,在这里提问时我们无法看到您的屏幕或阅读您的想法,因此您在撰写问题时需要具体。如果你说“不起作用”,请解释你的意思。如果您说“我收到错误”,请描述错误并提供您收到的完全错误消息(如果有),包括任何内存地址或错误代码。您可以清楚地在您面前获得这些信息,或者您不会知道事情不起作用或者您收到错误。绝对没有理由不在你的问题中提供这些细节。