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

廊坊市网站图片描述 wordpress

廊坊市网站,图片描述 wordpress,做网站 南京,上线了小程序制作平台这段时间接手一个数据操作记录的功能#xff0c;刚拿到手上的时候打算用EF做#xff0c;后来经过仔细考虑最后还是觉定放弃#xff0c;最后思考再三决定#xff1a;1、以模块为单位分表、列固定(其实可以所有的操作记录都放到同一个表#xff0c;但是考虑到数据量大的时候…这段时间接手一个数据操作记录的功能刚拿到手上的时候打算用EF做后来经过仔细考虑最后还是觉定放弃最后思考再三决定1、以模块为单位分表、列固定(其实可以所有的操作记录都放到同一个表但是考虑到数据量大的时候查询性能的问题还是分表吧)列主键ID、引用记录主键ID、操作时间、操作类型、详细信息(里面存储的就是序列化后的值)2、在客服端解析保存的序列化的值但是用xml还是用json呢这有是一个问题显然用xml在存储过程正很容易就能生成了:SELECT * FROM TABLE FOR XML AUTO 就ok了但是用xml的话在客服端解析就麻烦些了所以弃用了xml保存而使用了最爱的json现在的问题就是写一个通用的存储过程来生成json了经过我1天多的拼写终于出炉了(其实难度不大就是拼字符串容易出错)/*获取JSON格式数据TableName varchar(100):表名ColumnIn nvarchar(100):列名用于判断,ColumnValues nvarchar(max)值aaa,bbb,ccc,Condition NVARCHAR(max)条件(and 11)Json varchar(max) OUTPUT:生成的JSON数据Limit int NULL 取前多少条为null 取所有ConvertColumns NVARCHAR(max)null:要转换的列(目前已经排除为nvarchar(max)的列)*/create PROC uspGetJSON(TableName varchar(100),ColumnIn nvarchar(100),ColumnValues nvarchar(max),Condition NVARCHAR(max),Json varchar(max) OUTPUT,Limit int NULL,ConvertColumns NVARCHAR(max)null--SortColumn nvarchar(100)null,--SortType nvarchar(10)asc)AS--if(SortColumn is null)--set SortColumnLastModifiedDatedeclare query varchar(max),table_schema varchar(max) nullif(charindex(., TableName) 0 )beginset table_schema replace(replace( substring(TableName, 0, charindex(.,TableName)), [, ), ], )set TableName replace(replace( substring(TableName, charindex(.,TableName) 1,len(TableName)), [, ), ], )ENDIF EXISTS ( SELECT 1 FROM tempdb..sysobjects WHERE id OBJECT_ID(tempdb..#tmpJsonTable) )DROP TABLE #tmpJsonTableCREATE TABLE #tmpJsonTable(json NVARCHAR(max) NULL)--ddset query insert into #tmpJsonTable select case when Limit is not null then top cast(Limit as varchar(32)) else end { REVERSE(STUFF(REVERSE( CAST((SELECT column_name : ----处理为null的问题case WHEN is_nullable YES then case when [ column_name ] is null then null else --处理前缀case WHEN data_typeuniqueidentifieror data_type like %date% or data_type like %char% or data_type like %text% then else end /*类型转换*/case WHEN data_type like %date% then convert(varchar(23),[ column_name ], 20) else replace(replace(replace(replace(replace(cast([ column_name ] as varchar(max)),\,\\),,\),char(10),\n),char(13),\n),char(9),\t) end --处理后缀case WHEN data_typeuniqueidentifier or data_type like %char% or data_type like %text% then else end end ELSE--处理前缀case WHEN data_typeuniqueidentifier or data_type like %date% or data_type like %char% or data_type like %text% then else end /*类型转换*/case WHEN data_type like %date% then convert(varchar(23),[ column_name ], 20) else replace(replace(replace(replace(replace(cast([ column_name ] as varchar(max)),\,\\),,\),char(10),\n),char(13),\n),char(9),\t) end --处理后缀case WHEN data_typeuniqueidentifierOR data_type LIKE date% or data_type like %char% or data_type like %text% then else end end ,AS [text()]from information_schema.columnswhere table_name TableNameand (character_maximum_length IS NULL OR character_maximum_length!-1)AND(ConvertColumns IS NULL OR COLUMN_NAME IN(SELECT MyValues FROM dbo.funSplitArray(ConvertColumns,,)))and (table_schema is null or table_schema table_schema) FOR XML PATH() ) as varchar(max)) ),1,1,)) } as json from TableName with(nolock) where (ColumnIn in (Select MyValues from dbo.funSplitArray(ColumnValues,,))) Condition-- ORDER BY SortColumn SortTypeexec sp_sqlexec query--SELECT queryset Json --{ char(10) char(9) --recordCount : Cast((select count(*) from #tmpJsonTable) as varchar(32)) , char(10) char(9) --records : char(10) char(9) char(9) [ char(10) REVERSE(STUFF(REVERSE(CAST((SELECT char(9) char(9) json , char(10) AS [text()] FROM #tmpJsonTable FOR XML PATH()) AS varchar(max))),1,2,)) char(10) char(9) char(9) ]-- char(10) }drop table #tmpJsonTable--DECLARE table_name varchar(100)SalesOrder,-- ConvertColumns NVARCHAR(max)SalesOrderNo,SalesOrderID,-- Condition NVARCHAR(max),-- json varchar(max)--EXEC GetJSON table_nametable_name,ConvertColumnsConvertColumns,ConditionCondition,jsonjson OUTPUT--SELECT json调用这个存储过程使用输出参数就可以得到序列化后的json数据了。至此就差在客服端解析了。打算写个方法根据传递过来的json对象参数来动态解析这样 ui页面上也不需要用每个地方都去解析了....--用到的自定义函数CREATE function [dbo].[funSplitArray](aString varchar(max),pattern varchar(10))returns temp table([Sid] [int] IDENTITY (1, 1) NOT NULL ,Myvalues varchar(100))--实现split功能的函数--说明aString字符串如“27,28,29”pattern分隔标志如“ ,”--使用select Myvalues FROM my_split(字符串, ,)asbegindeclare i intset aStringrtrim(ltrim(aString))set icharindex(pattern,aString)while i1begininsert temp values(left(aString,i-1))set aStringsubstring(aString,i1,len(aString)-i)set icharindex(pattern,aString)endif aStringinsert temp values(aString)returnend
http://www.zqtcl.cn/news/829065/

相关文章:

  • 做零售网站智慧建筑信息平台
  • 山西住房建设厅官方网站建设部建造师网站
  • 加大门户网站安全制度建设wordpress切换数据库
  • 百度代理服务器株洲seo优化
  • 即刻搜索网站提交入口网站中的打赏怎么做的
  • 电子商务网站建设课后作业开发公司管理制度
  • mysql同一数据库放多少个网站表优化大师windows
  • 微信小程序插件开发seo的网站建设
  • 婚纱摄影网站建设方案WordPress 同步网易博客
  • 上海长宁网站建设公司python语言基础
  • 官方网站怎样做餐饮业手机php网站
  • 网站建设企业有哪些内容十九届六中全会
  • 如何管理手机网站首页怎么建设一个社交网站
  • 网站规则山东网站备案网站
  • 成都网站制作龙兵科技做网站原型图用什么软件
  • 鄂州网站网站建设做网站 用哪种
  • 医药公司网站建设厦门网站建设合同
  • 网站开发全程设计注册公司哪个网站
  • 广州大型网站设计公司网站总体设计怎么写
  • 福州网站制作工具搜索引擎营销的特点是什么
  • 安徽省建设干部网站新品网络推广
  • 做网站要实名吗怎样给一个公司做网站
  • 品牌官方网站建设大航母网站建设
  • 自己做音乐网站挣钱吗网站定制公司kinglink
  • 网站建设案例新闻随州程力网站建设
  • 国外网站平台龙岩天宫山缆车收费
  • 站长工具seo综合查询是什么湖北做网站
  • 青海网站建设价格建一个免费网站的流程
  • 网站备案中 解析地址asp.net企业网站框架
  • flash里鼠标可以跟随到网站上就不能跟随了蚌埠网站建设