当前位置: 首页 > news >正文

版面设计图/seo点击软件手机

版面设计图,seo点击软件手机,苏州地区网站备案信息真实性核验登记表,提出网站推广途径使用英文版SQL数据库查询到的汉字字段是乱码的解决方案2007-12-04 14:55:45标签:函数 SQL 数据库 乱码 排序规则原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fengyp.blog.…
使用英文版SQL数据库查询到的汉字字段是乱码的解决方案
2007-12-04 14:55:45
标签:函数 SQL 数据库 乱码 排序规则
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fengyp.blog.51cto.com/276754/53456
我在使用数据库查询语句时,出现了乱码,为了解决这个问题,我花费了不少时间,现将解决办法贴出来,供大家参考。
一、在查询分析器中出现的乱码
这类问题比较好解决,主要是由于查询分析器的工具菜单中的选项栏中连接项中的“执行字符串转换”被打了勾,将勾去掉即可。 
二、在ASP.NET(C#)中出现乱码
一开始我在编写网页程序的时候也出现了查询英文数据库的时候,汉字是乱码的问题,经查,原来是使用了下列语句造成的:
SqlConnection smycn = new SqlConnection(con(cn));
后来我仿造在VB中的解决此问题的方法,改成用下列语句连接数据库,问题得到了解决:
OleDbConnection omycn = new OleDbConnection(con(cn));
三、在SQL函数中出现乱码
SQL函数中乱码是将汉字写入临时表的时候产生的,使用上面的方法解决不了。
我的方法是改变SQL函数中汉字字段的排序方法。下面贴出的是有问题的函数:
CREATE FUNCTION [dbo].[OA提料] (@item varchar(3),@ms varchar(3)) 
RETURNS  @OA  table
(订单号 varchar(25),行号 varchar(3),物料号 varchar(25),物料描述 varchar(35)
,计划数 float,开工日期 smalldatetime,完工日期 smalldatetime,已领料数 float)
as
BEGIN
if (@ms='')
if (len(@item)=2)
begin
insert @OA 
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)   物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)     物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
if (len(@item)=2)
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)     物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC),Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,rtrim(Mfg_ITMMAST.IMDESC)    物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),rtrim(Mfg_ITMMAST.IMDESC) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
return
end
下面贴出的没有问题的函数:
CREATE FUNCTION [dbo].[OA提料] (@item varchar(3),@ms varchar(3)) 
RETURNS  @OA  table
(订单号 varchar(25),行号 varchar(3),物料号 varchar(25),物料描述 varchar(35) collate SQL_Latin1_General_CP1_CI_AI
,计划数 float,开工日期 smalldatetime,完工日期 smalldatetime,已领料数 float)
as
BEGIN
if (@ms='')
if (len(@item)=2)
begin
insert @OA 
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))    物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))     物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
if (len(@item)=2)
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))      物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),4),2)=@item
       and len(rtrim(Mfg_ITMMAST.IMPN))=11
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
else
begin
insert @OA
select  rtrim(Mfg_ORDMAST.OMON)       订单号
       ,Mfg_SF.LINENUM                行号
       ,rtrim(Mfg_ITMMAST.IMPN)       物料号
       ,cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35))      物料描述
       ,Mfg_SF.QTYREQ                 计划数
       ,Mfg_SF.INSTRTDT               开工日期
       ,Mfg_SF.REQDUEDT               完工日期
       ,sum(Mfg_DFCNTRL.DCQTYISS)     已领料数
from   Mfg_ORDMAST
       left outer join Mfg_DFSFNSF as Mfg_SF on ((Mfg_SF._ORDS_OwnRow = Mfg_ORDMAST._Row) and (Mfg_SF.RECTYPE = 'S'))
       left outer join Mfg_ITMMAST on ((Mfg_ITMMAST._Row = Mfg_SF._ITMS_OwnRow) and (Mfg_SF._ITMS_OwnRec = 19))
       left outer join Mfg_MS on (Mfg_MS._BILL_OwnRow = Mfg_ITMMAST._Row)
       left outer join Mfg_ORDCNTRL on (Mfg_ORDCNTRL.ORDNUM = rtrim(Mfg_ORDMAST.OMON)) and Mfg_ORDCNTRL.LINENUM=Mfg_SF.LINENUM
       left outer join Mfg_DFCNTRL on (Mfg_ORDCNTRL._Row = Mfg_DFCNTRL._CNTRDF_OwnRow)
where  Mfg_ORDMAST._SYSORD_MbrKey like 'M%' and Mfg_SF.ORDSTA=4 and right(left(rtrim(Mfg_ITMMAST.IMPN),5),3)=@item
       and case when len(@ms)=2 then right(left(Mfg_MS.MSCOMPNO,4),2) else right(left(Mfg_MS.MSCOMPNO,5),3) end=@ms
group by rtrim(Mfg_ORDMAST.OMON),Mfg_SF.LINENUM,rtrim(Mfg_ITMMAST.IMPN),cast(rtrim(Mfg_ITMMAST.IMDESC)  as varchar(35)) ,Mfg_SF.QTYREQ
       ,Mfg_SF.INSTRTDT,Mfg_SF.REQDUEDT
end
return
end
红字的内容是没有乱码的函数和有乱码的函数的区别之所在。由于公司有各种各样的数据库,有些数据库会产生乱码,有些数据库不会产生乱码,那么只要看一下产生乱码的数据库的排序规则和不产生乱码的数据库的排序规则,然后将在会产生乱码的数据库中临时表的有汉字内容的字段的排序规则转换成不产生乱码的数据库的排序规则即可。如果没有办法比较,则需要对各种排序规则进行一一测试,总能找到一条规则符合要求。

本文出自 “风雨同舟” 博客,请务必保留此出处http://fengyp.blog.51cto.com/276754/53456

转载于:https://www.cnblogs.com/z5337/p/3685071.html

http://www.lbrq.cn/news/1537021.html

相关文章:

  • wordpress 极验/网站seo视频教程
  • 本地做网站顺序/网络seo是什么意思
  • 做网站只解析www的会怎么样/廊坊网站建设优化
  • 东莞网站建设方案推广/广州网站建设
  • 小众电商平台/白杨seo教程
  • 风景区网站建设项目建设可行性/教程seo推广排名网站
  • 驻马店360网站建设/什么是搜索引擎竞价推广
  • 政府网站发展趋势及建设思路/提升神马seo关键词自然排名
  • 网站建设是管理费用的哪项费用/广安seo外包
  • 做图的兼职网站/黄页网
  • 做企业网站建设/360竞价推广怎么做
  • 做网站嘉兴/天门seo
  • 小程序怎么做电影网站/西安百度爱采购推广
  • 舟山网站开发/上海关键词优化的技巧
  • 上海知名的网站建设公/网站优化检测
  • 西安网站制作中心/seo在线推广
  • 网站备案基础知识/上海关键词排名搜索
  • 智慧团建注册登记入口/快速排名优化seo
  • 做网站教程和维护网站/武汉大学人民医院官网
  • 昆明网站免费制作/如何自己创建一个网站
  • 德州做网站多少钱/网站怎么做推广和宣传
  • 红木家具网站模板/手机如何制作自己的网站
  • 在日本做色情网站/外汇seo公司
  • 做网站的需求清单/如何进行百度推广
  • 设计公司网站推广营销/今日新闻50字
  • 外接硬盘做创建立网站/口碑营销5t
  • 做网站责任/阿里云自助建站
  • 腾讯wordpress主机/网站搜索引擎优化的方法
  • 微信网站收钱吗/北京seo顾问外包
  • 做百度网站需要什么条件/广州疫情升级
  • DBLens 业界首创AI表结构变更审查,智能评估影响,助力开发效率跃升。
  • AUTOSAR自适应平台(AP)中元类(Metaclass)、建模(Modeling) 和 ARXML 这三者的核心关系与区别
  • 【嵌入式电机控制#33】FOC:意法电控驱动层源码解析——整体框架篇(了解,常查阅)
  • 凸问题-非凸问题-非凸模型
  • 基于FPGA的实时图像处理系统(2)——VGA显示彩条和图片
  • Angular入门教程