【发布时间】:2016-05-25 15:46:49
【问题描述】:
我正在用 Delphi 7 IDE 调试 Delphi 代码,代码不是我的。我的目标是了解这段代码是如何工作的。这将帮助我编写与此代码交互的应用程序。
我一生中从未使用过 Delphi。我是一名 C、C++、C# 程序员。
我可以看到存储过程的输出(结果),但我需要查看存储过程的内容(我的意思是 SQL 语句)。我查看了 SQL Server 端,但没有找到任何东西。
在这个函数中调用了存储过程:
function TDBDM.getID( prKeyName : string ) : integer;
begin
try
spGetSN.Parameters.ParamValues['@prKeyname'] := prKeyName;
spGetSN.open;
result := spGetSN.Fields[0].AsInteger;
finally
spGetSN.close;
end;
end;
这里声明了存储过程“spGetSN”:
unit dmDB;
interface
uses
SysUtils, Classes, Forms, ADODB, DB, TypInfo, Dialogs, StdCtrls,
Controls,Registry, Windows;
type
eConnectionType = (ctSN);
TDBDM = class(TDataModule)
ADOConnectionSN: TADOConnection;
spGetSN: TADOStoredProc;
ADOQueryGetPartNoFromRMA: TADOQuery;
ADOQueryGetPartNoFromOrder: TADOQuery;
procedure ADOConnectionSNBeforeConnect(Sender: TObject);
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
function GetConnection( prConnectionType : eConnectionType ) :
TADOConnection;
public
{ Public declarations }
function getID( prKeyName : string ) : integer;
function getSN( prKeyName : string ) : string;
function getCommaValues( prSelect : string; prConnection :
eConnectionType = ctSN ) : string;
property pConnection[prType : eConnectionType] : TADOConnection read
GetConnection; default;
end;
var
DBDM: TDBDM;
implementation
uses dmRegistryClasses;
{$R *.dfm}
IDE 中定义的对象 TADOSTOREDPROC 'spGetSN' 的文本是:
object spGetSN: TADOStoredProc
Connection = ADOConnectionSN
ProcedureName = 'spGetSN;1'
Parameters = <
item
Name = '@RETURN_VALUE'
DataType = ftInteger
Direction = pdReturnValue
Precision = 10
Value = Null
end
item
Name = '@prKeyname'
Attributes = [paNullable]
DataType = ftWideString
Size = 30
Value = Null
end>
Left = 268
Top = 80
end
如何在 Delphi 调试器中打印或查看该存储过程的 SQL 代码?谢谢
【问题讨论】:
-
您不能轻易地从 Delphi 应用程序中获取存储过程的源代码。从 Sql Server Management Studio 中查看 SP 要容易得多:您无权访问吗?
标签: sql-server delphi stored-procedures