簡體   English   中英

我可以使TADOStoredProc按名稱將給定參數應用於目標過程嗎?

[英]Can I make TADOStoredProc apply given parameters to the target procedure by name?

我試圖從delphi7調用存儲過程。 該過程還包含具有默認值的參數。 據我所知,我可以調用此過程而不顯式傳遞參數值,具有默認值。 這就是我在我的delpho代碼中所做的。

但..

結果似乎令人困惑。 我跳過的參數確實得到了一些價值。 這是下一個參數的值。 它最后出現的最后一個參數沒有得到它的價值。

我試圖搜索並找到這篇文章。 所以,事實證明,德爾福忽略了我給TADOStoredProc的參數的名稱,並按照我將它們添加到參數集合的順序傳遞它們,即最后一個參數(很高興它也是可選的 ,沒有例外)被扔了)沒有傳遞給程序。

我看到@crefird的答案,建議使用TADOQuery而不是TADOStoredProc。 但我不喜歡這種做法。 我最好給所有參數賦予某些值,並且根本不使用可選參數功能。

那么,當使用TADOStoredProc時,有沒有更好的解決方案讓delphi通過名稱為存儲過程指定參數?

你可以在設計時制作一個TADOStoredProc並讓它填充其參數集合。 如果您沒有表單可以使用,可以使用DataModule。

幾年前,我學到了同樣的課程 - 參數名稱被忽略了。 通過在參數列表的END處放置任何新的SP參數,並且如果需要,使它們成為可選的,在過去十年中維護和增長使用Delphi和SQL Server的代碼庫變得更加容易。

我似乎有人制作TADOStoredProc對象,然后調用其refreshParams(或refreshParameters - 不確定名稱)方法。 這將涉及到數據庫的一次額外的旅行,這可能是要避免的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM