仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 975|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之小写转年夜写金额存储历程[SQL SERVER]

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
也就是说在php本地调用pdoprepare中的mysql_real_escape_string来操作query,使用的是本地单字节字符集,即编码为xbfx5cx27,并带入到mysql中查询,由于使用setnames设置了连接字符集.server|存储历程|年夜写|金额|小写原作在SQL2000中有一些成绩。修改毛病并在SQL2000中运转经由过程。/********************************************************
(wleii165@yahoo.com)
版本:1.0
创立工夫:20020227
修正工夫:
功效:小写金额转换成年夜写
参数:n_LowerMoney小写金额
v_TransType品种--1:directlytranslate,0:readitinwords
输入:年夜写金额
********************************************************/
CREATEPROCEDUREdbo.L2U
(
@n_LowerMoneynumeric(15,2),
@v_TransTypeint,
@RETVARCHAR(200)output
)
AS

Declare@v_LowerStrVARCHAR(200)--小写金额
Declare@v_UpperPartVARCHAR(200)
Declare@v_UpperStrVARCHAR(200)--年夜写金额
Declare@i_Iint
setnocounton
select@v_LowerStr=LTRIM(RTRIM(STR(@n_LowerMoney,20,2)))--四舍五进为指定的精度并删除数据摆布空格
select@i_I=1
select@v_UpperStr=
while(@i_I<=len(@v_LowerStr))
begin
select@v_UpperPart=casesubstring(@v_LowerStr,len(@v_LowerStr)-@i_I+1,1)
WHEN.THEN元
WHEN0THEN零
WHEN1THEN壹
WHEN2THEN贰
WHEN3THEN叁
WHEN4THEN肆
WHEN5THEN伍
WHEN6THEN陆
WHEN7THEN柒
WHEN8THEN捌
WHEN9THEN玖
END
+
case@i_I
WHEN1THEN分
WHEN2THEN角
WHEN3THEN
WHEN4THEN
WHEN5THEN拾
WHEN6THEN佰
WHEN7THEN仟
WHEN8THEN万
WHEN9THEN拾
WHEN10THEN佰
WHEN11THEN仟
WHEN12THEN亿
WHEN13THEN拾
WHEN14THEN佰
WHEN15THEN仟
WHEN16THEN万
ELSE
END
select@v_UpperStr=@v_UpperPart+@v_UpperStr
select@i_I=@i_I+1
end
--------print//v_UpperStr=+@v_UpperStr+//
if(@v_TransType=0)
begin
select@v_UpperStr=REPLACE(@v_UpperStr,零拾,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零佰,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零仟,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零零零,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零零,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零角零分,整)
select@v_UpperStr=REPLACE(@v_UpperStr,零分,整)
select@v_UpperStr=REPLACE(@v_UpperStr,零角,零)
select@v_UpperStr=REPLACE(@v_UpperStr,零亿零万零元,亿元)
select@v_UpperStr=REPLACE(@v_UpperStr,亿零万零元,亿元)
select@v_UpperStr=REPLACE(@v_UpperStr,零亿零万,亿)
select@v_UpperStr=REPLACE(@v_UpperStr,零万零元,万元)
select@v_UpperStr=REPLACE(@v_UpperStr,万零元,万元)
select@v_UpperStr=REPLACE(@v_UpperStr,零亿,亿)
select@v_UpperStr=REPLACE(@v_UpperStr,零万,万)
select@v_UpperStr=REPLACE(@v_UpperStr,零元,元)
select@v_UpperStr=REPLACE(@v_UpperStr,零零,零)
end
--对壹元以下的金额的处置
if(substring(@v_UpperStr,1,1)=元)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=零)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=角)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=分)
begin
select@v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr)-1))
end
if(substring(@v_UpperStr,1,1)=整)
begin
select@v_UpperStr=零元整
end
select@ret=@v_UpperStr
GO
挪用历程:
declare@retvarchar(200)
execL2U567983.897,1,@retoutput
select@ret
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。
不帅 该用户已被删除
沙发
发表于 2015-1-19 09:44:17 来自手机 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
若天明 该用户已被删除
板凳
发表于 2015-1-27 07:19:48 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
小妖女 该用户已被删除
地板
发表于 2015-2-5 04:31:34 | 只看该作者
我个人认为就是孜孜不懈的学习
活着的死人 该用户已被删除
5#
发表于 2015-2-11 04:52:41 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
变相怪杰 该用户已被删除
6#
发表于 2015-3-1 22:00:04 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
因胸联盟 该用户已被删除
7#
发表于 2015-3-11 00:51:22 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
再现理想 该用户已被删除
8#
发表于 2015-3-17 17:11:56 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-24 16:37:47 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表