文档章节

FreeBSD下执行SQL Server2005存储过程解决方案

雷xiao雨
 雷xiao雨
发布于 2014/03/01 23:03
字数 465
阅读 61
收藏 0

FreeBSD下执行SQL Server2005存储过程解决方案(Warning: mssql_execute(): ...)

FreeBSD下使用SQL Server2005(2008)需要使用FreeTDS。

安装FreeTSD后,使用PHP语言进行测试。在使用mssql_execute调用存储过程时出现如下错误:

Warning: mssql_execute():stored procedure execution failed in...

语法如下:

...

$sp1=mssql_init('uspUserGetPoints_byID',$t_dbconn);

$userid=11360;

$account='cp';

$points=0;//output

mssql_bind($sp1,'@UserID ',$userid,SQLINT2);

mssql_bind($sp1,'@Account ',$account,SQLCHAR,false,false,2);

mssql_bind($sp1,'@Points',$points,SQLINT2,TRUE);

$result=mssql_execute($sp1,true);

...

注:uspUserGetPoints_byID是存储过程名,包括2个输入参数1个输出参数,有返回值

查找资料据说需要修改freetds.conf,增加如下内容:

[open119]

    host = xxx.xxx.xxx.xxx

    port = 1433

    tds version = 8.0

修改后问题依旧...

最后只好尝试另一种调用存储过程的方法,语法如下:

...

$query = "declare @Result INT\n";

$query .= "declare @Points INT\n";

$query .= "exec @Result=uspUserGetPoints_byID $userid,'$account',@Points OUTPUT\n";

$query .= "select @Result as Result,@Points as Points\n";

//执行存储过程

$result=mssql_query($query) or die("Error");

$row=mssql_fetch_array($result);

echo $row['Result'];

echo '<br>';

echo $row['Points'];

...

运行成功。

 

附连接数据库代码:

$DatabaseHost='172.54.88.52:1433';

$DatabaseName='testDB';

$DatabaseUser='test1';

$DatabasePwd='123456';

$t_dbconn=mssql_connect($DatabaseHost,$DatabaseUser,$DatabasePwd);

if(!$t_dbconn)

{

   $tr[0][0]=1;

            echo $tr[0][0];

exit();//连接数据库失败

}

//echo "connect ok!";

$dbobject=mssql_select_db('ompay2',$t_dbconn);

if(!$dbobject)

{

 echo 'db is not ok';

 exit();

}

附SQL使用的参数定义代码如下:

//if(!defined('dbMSSQL_Types')) 

//{

//   define('dbMSSqlTypes',1);

//   $MSSQL_types[127] = SQLINT4;    /* bigint*/ 

//   $MSSQL_types[104] = SQLBIT;    /* bit*/ 

//   $MSSQL_types[175] = SQLCHAR;    /* char*/ 

//   $MSSQL_types[56]  = SQLINT2;    /* int*/ 

//   $MSSQL_types[52]  = SQLINT2;    /* smallint*/ 

//   $MSSQL_types[35]  = SQLTEXT;    /* text*/ 

//   $MSSQL_types[48]  = SQLINT1;    /* tinyint*/ 

//   $MSSQL_types[167] = SQLVARCHAR; /* varchar*/ 

//   $MSSQL_types[62]  = SQLFLT8;    /* float*/ 

//   $MSSQL_types[173] = SQLVARCHAR; /* binary*/        // Adaptation

//   $MSSQL_types[61]  = SQLINT4;    /* datetime*/      // Adaptation

//   $MSSQL_types[106] = SQLFLT8;    /* decimal*/        // Adaptation

//   $MSSQL_types[34]  = SQLVARCHAR; /* image*/          // Adaptation

//   $MSSQL_types[60]  = SQLFLT8;    /* money*/          // Adaptation

//   $MSSQL_types[239] = SQLCHAR;    /* nchar*/          // Adaptation

//   $MSSQL_types[99]  = SQLTEXT;    /* ntext*/          // Adaptation

//   $MSSQL_types[108] = SQLFLT8;    /* numeric*/        // Adaptation

//   $MSSQL_types[231] = SQLVARCHAR; /* nvarchar*/      // Adaptation

//   $MSSQL_types[59]  = SQLFLT8;    /* real*/          // Adaptation

//   $MSSQL_types[58]  = SQLINT4;    /* smalldatetime*/  // Adaptation

//   $MSSQL_types[122] = SQLFLT8;    /* smallmoney*/    // Adaptation

//   $MSSQL_types[98]  = SQLVARCHAR; /* sql_variant*/    // Adaptation

//   $MSSQL_types[189] = SQLINT4;    /* timestamp*/      // Adaptation

//   $MSSQL_types[165] = SQLVARCHAR; /* varbinary*/      // Adaptation

//}


本文转载自:http://hi.baidu.com/bigwood88/item/28230819657cd01fe2f98623

上一篇: PHP编码规范
下一篇: cookie跨域问题
雷xiao雨
粉丝 1
博文 13
码字总数 4039
作品 0
朝阳
程序员
私信 提问
FreeBSD的网友评论

FreeBSD 是一种先进的操作系统,它支持 x86 兼容(包括 Pentium® 和 Athlon™)、amd64 兼容(包括 Opteron™、Athlon™64 和 EM64T)、 ARM、IA-64、PC-98以及 UltraSPARC® 架构的计算机。Fre...

红薯
2009/12/11
702
1
FreeBSD 10.2-RC2 发布

FreeBSD 10.2-RC2 发布,ISO 镜像包括 amd64, armv6, i386, ia64, powerpc, powerpc64 和 sparc64 架构,现已提供在 FreeBSD 镜像站。 FreeBSD是一种自由类Unix操作系统,是由经过BSD、386BS...

叶秀兰
2015/08/02
851
6
Freebsd配置Xorg和Gnome桌面

Freebsd配置Xorg和Gnome 一、安装Xorg Xorg或XFree86都可以在FreeBSD上安装。从FreeBSD 5.3-Release开始,Xorg成为FreeBSD上的默认X11实现。Xorg是由X.Org基金会发行的开放源代码X Window系统...

zhangdiandong
2013/09/11
0
0
FreeBSD 7.0 全程图解安装手册

FreeBSD 是一种优秀的 Unix 类操作系统,它以卓越的稳定性、安全性和性能著称,是目前主流服务器操作系统之一。就在不久前,FreeBSD 发布了一个新的重大版本 FreeBSD 7.0,新版本增加了许多优...

红薯
2008/12/02
770
0
FreeBSD 8.1 正式版已可下载

FreeBSD 是一种先进的操作系统,FreeBSD 源于 BSD ──美国加州大学伯克利分校开发 UNIX® 版本它由来自世界各地的 志愿者开发和维护。 FreeBSD 8.1是FreeBSD 8.0分支的第一个主要升级(8.0在...

红薯
2010/07/22
1.3K
2

没有更多内容

加载失败,请刷新页面

加载更多

IDEA 拉取、上传、更新 项目到 Gitee+GitHub_超详细超简单版

注:本人使用的idea是最新版(2019.1.2),要是其他的版本的不要惊慌〜,基本上都一样,没有什么太大的差别的 首先我要说一下,拉取项目分两个,一个,你就没有项目,拉取仓库的整个项目,而...

杨木发
今天
54
0
pyqt5环境搭建(Ubuntu19.10+pycharm+python3)

1.安装pyqt5 sudo apt-get install python3-pyqt5 sudo apt-get install qttools5-dev-tools sudo apt-get install qt5-default 2.安装pycharm 下载pycharm社区版安装包并解压 在桌面新建pyc......

小芯片
今天
54
0
Vue造轮子-tab组件(中)

1. 如果给一个标签一个class,标签本身又有class,vue是默认会合并的。只有两个属性是这样一个是class,一个是style。这样就比较好改样式。 <g-tabs-head class="red"></g-tabs> 2. 组件的...

ories
昨天
59
0
Windows 版本 Anaconda 配置加速源安装软件

C:\Users\lenovo\.condarc 首先安装Anaconda最新版本。 其次添加安装目录到环境变量。文本为 C:\ProgramData\Anaconda3\Library\bin 运行 conda 命令在 Windows 用户下生成文件 .conda...

白豆腐徐长卿
昨天
232
0
如何从Bash函数返回字符串值

我想从Bash函数返回一个字符串。 我将用Java编写示例以显示我想做的事情: public String getSomeString() { return "tadaa";}String variable = getSomeString(); 下面的示例在bash中...

javail
昨天
71
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部