ismithuk
ismithuk

Reputation: 51

mssql_execute failing with, "stored procedure execution failed"

I am currently connecting sucessfully to an SQL database sat on a Windows 2008 using the following query;

$result = mssql_query("EXEC dbo.stored_procedure_name @param_level = 2");

I am basing my queries on existing code written in VB / ADO which looks like;

If level = "" Then level = 1

cmdTT.ActiveConnection = connStrTest1

set objParam=cmdTT.CreateParameter("@param_level", adInteger, adParamInput, 4, level)
cmdTT.Parameters.Append objParam

set rsTT = cmdTT.Execute

So what I attempted was the following;

$f = 2;

$stmt = mssql_init('dbo.stored_procedure_name', $mssql_link);

mssql_bind($stmt, "@param_level", $f, SQLINT4, false);

mssql_execute($stmt);

But no matter what the variation it always seems to print the print the screen the warning, "Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in ...".

Whats the best way for me to debug the issue here? Can anyone see a clear fix to my problem?

I'm currently connecting remotely to the database from a LAMP stack.

Many Thanks Ian

Upvotes: 5

Views: 3700

Answers (3)

I know it's an old post but am sure it will help someone.

You have to add mssql_free_statement($stmt) after executing.

Upvotes: 1

scotru
scotru

Reputation: 2606

Is this from a linux server using FreeTDS? If so, I wonder if this is related to TDS Version. Try tds version = 8.0 in you /etc/freetds.conf

Upvotes: 4

Parris Varney
Parris Varney

Reputation: 11488

Run the contents of the stored procedure from w/in a sql editor with the parameters hard coded in. You'll get more verbose error messages that way.

Upvotes: 1

Related Questions