久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

  • <small id='iScyU'></small><noframes id='iScyU'>

      <i id='iScyU'><tr id='iScyU'><dt id='iScyU'><q id='iScyU'><span id='iScyU'><b id='iScyU'><form id='iScyU'><ins id='iScyU'></ins><ul id='iScyU'></ul><sub id='iScyU'></sub></form><legend id='iScyU'></legend><bdo id='iScyU'><pre id='iScyU'><center id='iScyU'></center></pre></bdo></b><th id='iScyU'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='iScyU'><tfoot id='iScyU'></tfoot><dl id='iScyU'><fieldset id='iScyU'></fieldset></dl></div>
      • <bdo id='iScyU'></bdo><ul id='iScyU'></ul>

      <legend id='iScyU'><style id='iScyU'><dir id='iScyU'><q id='iScyU'></q></dir></style></legend>
      1. <tfoot id='iScyU'></tfoot>

        存儲過程 API 的最佳實踐?

        Best practices for stored procedure API?(存儲過程 API 的最佳實踐?)
        <legend id='9i7gT'><style id='9i7gT'><dir id='9i7gT'><q id='9i7gT'></q></dir></style></legend>

            <tbody id='9i7gT'></tbody>
            <bdo id='9i7gT'></bdo><ul id='9i7gT'></ul>

            <small id='9i7gT'></small><noframes id='9i7gT'>

                <i id='9i7gT'><tr id='9i7gT'><dt id='9i7gT'><q id='9i7gT'><span id='9i7gT'><b id='9i7gT'><form id='9i7gT'><ins id='9i7gT'></ins><ul id='9i7gT'></ul><sub id='9i7gT'></sub></form><legend id='9i7gT'></legend><bdo id='9i7gT'><pre id='9i7gT'><center id='9i7gT'></center></pre></bdo></b><th id='9i7gT'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='9i7gT'><tfoot id='9i7gT'></tfoot><dl id='9i7gT'><fieldset id='9i7gT'></fieldset></dl></div>

                  <tfoot id='9i7gT'></tfoot>
                • 本文介紹了存儲過程 API 的最佳實踐?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我們正在向我們的產品添加一些可由 3rd 方客戶端調用的存儲過程.是否有參數驗證、返回值、RAISERROR 等的最佳實踐?

                  We are adding some stored procedures to our product that can be called by 3rd-party clients. Are there best practices for parameter validation, return values, RAISERROR, etc?

                  第 3 方客戶端不能直接訪問表,只能訪問某些 sproc.sprocs 接觸的表受到了很好的約束,但我們希望盡可能方便用戶,當 sprocs 被錯誤調用時提供詳細的錯誤信息.

                  3rd-party clients will not have direct table access, only to certain sprocs. The table touched by the sprocs is well-constrained but we want to be as user-friendly as possible as far as providing detailed error information when the sprocs are called incorrectly.

                  推薦答案

                  提供人類可以理解的信息性錯誤消息并不難.只是帶有描述性文本的 RAISERROR.稍微困難一點的是提高本地化文本,這意味著正確使用 sp_addmessage 和家人.真正的難題是引發程序可以做出反應的錯誤.這意味著正確記錄錯誤代碼(嚴重性狀態),以及在 API 中使用它們的嚴格代碼紀律.

                  Is not hard to provide informational error messages that a human can understand. Just RAISERROR with a descriptive text. slightly more difficult is to raise localized texts, which implies proper use of the sp_addmessage and family. The real hard problem is raising error to which a program can react. This means properly documented error codes (and severity and state), and severe code discipline in using them in your API.

                  并且不要忘記正確的事務嵌套.我的博客上有一個關于如何結合 T-SQL 異常正確處理事務的示例:異常處理和嵌套事務.

                  And don't forget proper transaction nesting. I have a sample on my blog on how to properly handle transactions in combination with T-SQL exceptions: Exception handling and nested transactions.

                  不幸的是,整個客戶端/T-SQL 堆棧與異常相關的最新技術存在一些問題.最值得注意的是,如果您捕獲 T-SQL 異常,則無法重新拋出它,因此您的客戶端無法期待典型的系統錯誤號.請參閱 SQL Server:重新拋出異常與原始異常號碼.這使您幾乎沒有辦法傳達正確的錯誤信息,除了在超過 50000 范圍內使用您自己的錯誤編號之外,這非常麻煩,因為翻譯"錯誤代碼的數量增加了,并且使用錯誤消息字符串作為異常信息.

                  Unfortunately the state of the art on the whole client/T-SQL stack vis-a-vis exception has some problems. Most notable is that if you catch a T-SQL exception, you cannot rethrow it, so your client cannot expect the typical system error numbers. See SQL Server: Rethrow exception with the original exception number. This leaves you with little means to communicate proper error information, other than using your own error numbers on the over 50000 range, which is very cumbersome as the number of 'transalated' error codes increases, and using the error message string as the exception information.

                  這篇關于存儲過程 API 的最佳實踐?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Break down a table to pivot in columns (SQL,PYSPARK)(分解表以按列進行透視(SQL、PYSPARK))
                  Spark giving Null Pointer Exception while performing jdbc save(Spark在執行jdbc保存時給出空指針異常)
                  execute query on sqlserver using spark sql(使用 spark sql 在 sqlserver 上執行查詢)
                  How can I compare the one line in one CSV with all lines in another CSV file?(如何將一個 CSV 中的一行與另一個 CSV 文件中的所有行進行比較?)
                  How to map the column wise data in flowfile in NiFi?(如何在 NiFi 中映射流文件中的列數據?)
                  connect SQL to apache nifi(將 SQL 連接到 apache nifi)

                    <i id='q8Jvc'><tr id='q8Jvc'><dt id='q8Jvc'><q id='q8Jvc'><span id='q8Jvc'><b id='q8Jvc'><form id='q8Jvc'><ins id='q8Jvc'></ins><ul id='q8Jvc'></ul><sub id='q8Jvc'></sub></form><legend id='q8Jvc'></legend><bdo id='q8Jvc'><pre id='q8Jvc'><center id='q8Jvc'></center></pre></bdo></b><th id='q8Jvc'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='q8Jvc'><tfoot id='q8Jvc'></tfoot><dl id='q8Jvc'><fieldset id='q8Jvc'></fieldset></dl></div>

                      <small id='q8Jvc'></small><noframes id='q8Jvc'>

                      <tfoot id='q8Jvc'></tfoot>
                        <tbody id='q8Jvc'></tbody>

                          <bdo id='q8Jvc'></bdo><ul id='q8Jvc'></ul>

                          • <legend id='q8Jvc'><style id='q8Jvc'><dir id='q8Jvc'><q id='q8Jvc'></q></dir></style></legend>
                            主站蜘蛛池模板: 久久综合入口 | 欧美日韩视频在线播放 | 久久最新 | 91天堂网 | 不卡一区二区三区四区 | 中文字幕一区二区三区乱码在线 | 色噜噜亚洲男人的天堂 | 亚洲乱码国产乱码精品精98午夜 | 羞羞视频网页 | 免费av直接看 | 精品不卡| 亚洲视频在线看 | 精品九九 | 丁香综合| 午夜精品一区二区三区三上悠亚 | 精品国产亚洲一区二区三区大结局 | 99热成人在线 | 亚洲h在线观看 | 日韩免费一区 | 插插插干干干 | 日本一区二区三区四区 | 日韩三级在线 | 国产清纯白嫩初高生视频在线观看 | 粉嫩av久久一区二区三区 | 国产精品高潮呻吟久久 | 国产精品99久久久久久动医院 | 97免费在线视频 | 午夜免费网站 | 综合中文字幕 | 日韩欧美在线观看 | 国产一区中文字幕 | 精品国产一区久久 | 中文无码日韩欧 | 色屁屁在线观看 | 亚洲欧美日韩精品 | 中文字幕国产精品 | 亚洲精品99| 亚洲区一区二 | 成人精品一区二区三区 | 日韩一区二区三区在线 | 久久国产精品久久国产精品 |