zoukankan      html  css  js  c++  java
  • 2007年11月小记

    1、使用SQL2005的XML类型分拆字符串。
    DECLARE @TagNames XML;
    SET @TagNames = '<?xml version="1.0" encoding="utf-8"?><ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><string>asp.net</string><string>sql</string><string>ajax</string></ArrayOfString>';

    DECLARE @TagNameTable TABLE([IndexId] INT IDENTITY(1,1NOT NULL PRIMARY KEY[TagName] NVARCHAR(200NOT NULL)
        
    INSERT INTO @TagNameTable
            
    SELECT tab.col.value('text()[1]','nvarchar(200)'AS [TagName]
            
    FROM @TagNames.nodes('/ArrayOfString/string'AS tab(col);

    select * from @TagNameTable order by [IndexId]
    2、使网页中所有链接都另页打开
    <head>
        
    <base target="_blank" />
    </head>
    3、Lambda表达式一例
            static void Main(string[] args)
            
    {
                var strs 
    = new List<string> "A1""A2""A3" };
                List
    <string> list = new List<string>();

                
    //使用匿名委托
                strs.ForEach(delegate(string str) { Console.WriteLine(str); });

                
    //使用Lambda表达式
                strs.ForEach(x => list.Add(x.TrimStart('A')));
                list.ForEach(x 
    => Console.WriteLine(x));

                Console.ReadLine();
            }
    4、WCF:ABC 从何地以何种方式绑定何种契约
    5、如何成功调用wsHttpBinding邦定的WCF服务?
    服务器定义了dns,如:
      <system.serviceModel>
        
    <services>
          
    <service behaviorConfiguration="passportServiceBehavior" name="CJB.Passport.Service.PassportService">
            
    <endpoint address="" binding="wsHttpBinding" contract="CJB.Passport.Contract.IPassportService">
              
    <identity>
                
    <dns value="localhost" />
              
    </identity>
            
    </endpoint>
            
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
          
    </service>
        
    </services>
        
    <behaviors>
          
    <serviceBehaviors>
            
    <behavior name="passportServiceBehavior">
              
    <serviceMetadata httpGetEnabled="true" />
              
    <serviceDebug includeExceptionDetailInFaults="true" />
            
    </behavior>
          
    </serviceBehaviors>
        
    </behaviors>
      
    </system.serviceModel>
    客户端也要配置dns,此dns可以为服务器计算机名称,如:
        <system.serviceModel>
            
    <client>
                
    <endpoint address="http://passport2.ruiya.com/WcfService/PassportService.svc"
                    binding
    ="wsHttpBinding" bindingConfiguration="" contract="CJB.Passport.Contract.IPassportService"
                    name
    ="iisHostEndpoint">
                    
    <identity>
                        
    <dns value="cjb"/>
                    
    </identity>
                
    </endpoint>
            
    </client>
        
    </system.serviceModel>
    或者<dns value="localhost"/>
    6、注意between ... and ...在使用变量和使用拼接字符串中不过的执行计划导致的性能问题:
        declare @handleTime datetime;
        
    declare @beginTime datetime;
        
    declare @endTime datetime;
        
    set @handleTime = DateAdd(day-1getdate());
        
    set @beginTime = CONVERT(datetimeCONVERT(char(10), @handleTime120));
        
    set @endTime = DateAdd(day1@beginTime);

        
    declare @sql nvarchar(1000);
        
    set @sql = 'SELECT * FROM [UserPosts] WITH(NOLOCK) WHERE ([AddTime] between ''' +
            
    cast(@beginTime as nvarchar(100)) + ''' AND ''' + cast(@endTime as nvarchar(100)) + ''')';
        
    --print @sql
        
        
    declare @st datetime
        
    declare @et datetime

        
    set @st = getdate();
        
    exec(@sql);
        
    set @et = getdate();
        
    select datediff(millisecond, @st@et);

        
    set @st = getdate();
        
    select * from [UserPosts] WITH(NOLOCK) WHERE ([AddTime] between @beginTime and @endTime);
        
    set @et = getdate();
        
    select datediff(millisecond, @st@et);
    拼接字符串: 0ms
    使用变量:23106ms
    7、SQL拆分字符串
    CREATE PROCEDURE [dbo].[ec_System_SplitString]
        
    @strs nvarchar(4000),
        
    @separator nchar(1)=','
    AS
    BEGIN
        
    SET NOCOUNT ON;

        
    DECLARE @tbNames    table([Name] nvarchar(256NOT NULL PRIMARY KEY)
        
    DECLARE @Num        int;
        
    DECLARE @Pos        int;
        
    DECLARE @NextPos    int;
        
    DECLARE @Name        nvarchar(256);
        
    SET @Num = 0;
        
    SET @Pos = 1;

        
    WHILE(@Pos <= LEN(@strs))
        
    BEGIN
            
    SELECT @NextPos = CHARINDEX(@separator@strs,  @Pos)
            
    IF (@NextPos = 0 OR @NextPos IS NULL)
                
    SELECT @NextPos = LEN(@strs+ 1
            
    SELECT @Name = RTRIM(LTRIM(SUBSTRING(@strs@Pos@NextPos - @Pos)))
            
    SELECT @Pos = @NextPos+1

            
            
    INSERT INTO @tbNames VALUES (@Name)
            
    SET @Num = @Num + 1
        
    END

        
    SELECT [Name] FROM @tbNames

    END
  • 相关阅读:
    Python面向对象——内置对象的功能扩展
    学术日记#学术道德与人文素养
    Python面向对象——基本继承
    SqlServer——字符串处理函数
    SqlServer——索引
    生活小问题(1)
    win7-VS2010-IIS网站的发布问题
    PhoneGap+Cordova+SenchaTouch-01-环境搭建
    sql server数字转字符串出现科学计数法
    SQLServer 重启服务后,自增1的标识列一次增长了1000(转自博问)
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/1760226.html
Copyright © 2011-2022 走看看