Feedback
Did this article resolve your question/issue?

   

Article

System Procedure Sp_sproc_Columns_100 gets invoked everytime when a stored procedure is called

Information

 
TitleSystem Procedure Sp_sproc_Columns_100 gets invoked everytime when a stored procedure is called
URL NameSytem-Procedure-Sp-sproc-Columns-100-gets-invoked-everytime-when-a-stored-procedure-is-called
Article Number000177140
EnvironmentProduct: Connect/Connect64 for ODBC SQL Server Wire Protocol Driver
Version: All supported versions
OS: All supported platforms
Database: SQL Server
Application: All supported applications
Question/Problem Description

System Procedure Sp_sproc_Columns_100 gets invoked everytime when a stored procedure is called

Steps to Reproduce
Clarifying Information
DDL Used:
1. CREATE TABLE Area( Area INT, State CHAR(2) )
2. INSERT INTO Area VALUES ('580','XX')
3. CREATE PROCEDURE SP_GET_AREA @AREA NVARCHAR(3)='%'
AS
SELECT * FROM Area WHERE area LIKE LTRIM(RTRIM(@AREA))

Steps to reproduce:
1. Prepare: exec SP_GET_AREA (?,?)
2. SQLNumParams
3. SQLDescribeParam
4. SQLExecute
Error Message
Defect Number
Enhancement Number
Cause
SQL Server Wire Protocol driver uses the sp_sproc_columns_100 system stored procedure to get the stored procedure parameter metadata requested via the SQLDescribeParam call.
The application is preparing the stored procedure call and then calling SQLDescribeParam every time the stored procedure is used.
Resolution
Modify the application to prepare, describe and bind the stored procedure parameters once, then execute multiple times, copying in different parameter values each time.
Workaround
Notes
Last Modified Date3/8/2021 8:49 PM
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.