sql-server - 使用参数从 Delphi 调用 SQL Server 存储过程?

标签 sql-server delphi ado

我正在尝试使用 ADO 从 Delphi 2010 调用 SP_SPACEUSED。我可以通过使用 TSQLStoredProc 并设置 StoredProcName 来不带参数地调用它。这给了我数据库大小。我现在需要一个特定的表大小,并且 SP_SPACEUSED 采用单个参数 @objname。我如何将其作为参数传递。我尝试过将其作为参数传递,但这不起作用。是一个参数吗?我可以从 Delphi 执行此操作吗?

最佳答案

快速而肮脏的示例(在 D6 中,但在 2010 年应该无需任何更改即可工作):

var
  I: Integer;
  adStoredProc : TADOStoredProc;
begin
  adStoredProc := TADOStoredProc.Create(nil);
  try
    adStoredProc.Connection := ADOConnection1;
    adStoredProc.ProcedureName := 'SP_SPACEUSED';
    adStoredProc.Parameters.Refresh;
    for I := 0 to adStoredProc.Parameters.Count - 1 do    // Iterate
    begin
      if Sametext(adStoredProc.Parameters[i].Name,'@objname') then
        adStoredProc.Parameters[i].Value := 't_config';
    end;    // for
    adStoredProc.Open;
    for I := 0 to adStoredProc.FieldCount - 1 do    // Iterate
    begin
      memo1.Lines.Append(format('%s : %s', [adStoredProc.Fields[i].Fieldname, adStoredProc.Fields[i].AsString]));
    end;    // for
  finally
    FreeAndNil(adStoredProc);
  end;
end;

关于sql-server - 使用参数从 Delphi 调用 SQL Server 存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3083292/

相关文章:

mysql - MySQL中使用timediff函数计算12小时格式的时差

c++ - 如何让我的应用程序使用 Windows 主题?

excel - ADO 和 DAO 的区别

c++ - ADO流无法保存从数据库加载的BLOB

sql - 如何在 T-SQL 中对分区进行排名

sql-server - Excel 和 SQL 排序之间的差异

sql - 如何以编程方式取消 SQL Server 执行过程

SQL在不知道列的情况下将行选择到字符串变量中

delphi - Delphi 中是否可以将枚举合并为更大的枚举?

c++ - 可以在 mfc 中为 ado 禁用 Schema.ini 中的 TextDelimiter 吗?