zoukankan      html  css  js  c++  java
  • 项目相关技术总结

    最近做一个电子签核程序,里面涉及到方方面面,特做一个小结.
    此文会不段更新中......

    一.数据库方面(sql server)
    这次数据设计用了Sysbase公司的PowerDesigner12,感觉很爽,基本上来说,数据库设计好了,程序也就好做了,不过在这之前如果能画好流程图,对数据库设计帮助也很大.考虑到时间各方面因素,这次没做那么详细.
    有几个小东西,放在这里,防止以后忘记:

    1.tools-->modeloptions-->naming convention-->display,选择NAME
    2.双击表,出现column列表,双击要设置的列的左边的灰色框,应该会弹出新的窗口,然后在新窗口上选择standard   checks  ,里面有default的.
    3.打开PDM后,点菜单Database->Generate Database
    在随后出现的界面里面有个Generation选项,选择ODBC Generation,就可以直接创建数据库. 

    SQL 字符串分割函数
    create function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10))
    returns @temp table(a varchar(100))
    as 
    begin
        
    declare @i int
        
    set @SourceSql=rtrim(ltrim(@SourceSql))
        
    set @i=charindex(@StrSeprate,@SourceSql)
        
    while @i>=1
        
    begin
            
    insert @temp values(left(@SourceSql,@i-1))
            
    set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            
    set @i=charindex(@StrSeprate,@SourceSql)
        
    end
        
    if @SourceSql<>'\'
           
    insert @temp values(@SourceSql)
        
    return 
    end

    SQL根据数组标识添加多条记录的例子
    DECLARE @UserID varchar(20)
    DECLARE @RoleID varchar(2000)
    SET @UserID='1'
    SET @RoleID='445,33,43554,55,556,'
    DELETE FROM userole WHERE userid=@UserID
    SET @RoleID=stuff(@RoleID,len(@RoleID),1,'')

    set @RoleID=@RoleID+','
    DECLARE @strSQL nvarchar(2000)
    while charindex(',',@RoleID)>0
    begin

    select @strSQL=left(@RoleID,charindex(',',@RoleID)-1)

    print('INSERT INTO userole(userid,roleid)VALUES('''+@UserID+''','''+@strSQL+''')')
    set @RoleID=stuff(@RoleID,1,charindex(',',@RoleID),'')

    end


    返回主键ID:return @@identity,时间转换函数:CONVERT(varchar(10),GETDATE(),112)+CAST(datepart(ms,getdate()) as varchar(20))
    语法:
    Syntax for CAST:
    CAST ( expression AS data_type [ (length ) ])
    Syntax for CONVERT:
    CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

    不带世纪数位 (yy) (1) 带世纪数位 (yyyy) 标准 输入/输出 (3)

    -

    0 或 100 (1, 2)

    默认设置

    mon dd yyyy hh:miAM(或 PM)

    1

    101

    美国

    mm/dd/yyyy

    2

    102

    ANSI

    yy.mm.dd

    3

    103

    英国/法国

    dd/mm/yy

    4

    104

    德国

    dd.mm.yy

    5

    105

    意大利

    dd-mm-yy

    6

    106 (1)

    -

    dd mon yy

    7

    107 (1)

    -

    mon dd, yy

    8

    108

    -

    hh:mm:ss

    -

    9 或 109 (1, 2)

    默认设置 + 毫秒

    mon dd yyyy hh:mi:ss:mmmAM(或 PM)

    10

    110

    美国

    mm-dd-yy

    11

    111

    日本

    yy/mm/dd

    12

    112

    ISO

    yymmdd

    -

    13 或 113 (1, 2)

    欧洲默认设置 + 毫秒

    dd mon yyyy hh:mm:ss:mmm(24h)

    14

    114

    -

    hh:mi:ss:mmm(24h)

    -

    20 或 120 (2)

    ODBC 规范

    yyyy-mm-dd hh:mi:ss(24h)

    -

    21 或 121 (2)

    ODBC 规范(带毫秒)

    yyyy-mm-dd hh:mi:ss.mmm(24h)

    -

    126 (4)

    ISO8601

    yyyy-mm-ddThh:mm:ss.mmm(无空格)

    127(6)

    带时区 Z 的 ISO8601。

    yyyy-mm-ddThh:mm:ss.mmmZ

    (无空格)

    -

    130 (1, 2)

    回历 (5)

    dd mon yyyy hh:mi:ss:mmmAM

    -

    131 (2)

    回历 (5)

    dd/mm/yy hh:mi:ss:mmmAM


    Procedure:

    set nocount on
    create table #tmp(id int identity(1,1),ad_time datetime default getdate())
    set nocount off

    SQL Server 2005 的版本对应的版本号
    SELECT SERVERPROPERTY('ProductVersion') 
     
    9.00.1399
     SQL Server 2005(初始版本)

    9.00.2047
     SQL Server 2005 SP1

    9.00.3042
     SQL Server 2005 SP2
    ----------------------------------------------------------------------------------------
    更改标识值:
    修改为从0开始
    DBCC   CHECKIDENT   (table,   RESEED,   0)  

    查看
    DBCC CHECKIDENT (users, NORESEED)
    ----------------------------------------------------------------------------------------
    CASE用法:
    CASE input_expression  WHEN when_expression THEN result_expression   [...n ][ELSE else_result_expression ] END

    一个TRANSACTION

    /*
    Author:Jin
    Time:2007/03/01
    Note:个人基本信息修改
    */

    ALTER PROCEDURE [dbo].[SP_ModifyUserMsg]
        (
        
    @strNewPassWord nvarchar(100),
        
    @strNewPassWord2 nvarchar(100),
        
    @msgerror nvarchar(100) OUTPUT)
    AS
    declare @errid int
    SET NOCOUNT ON
    BEGIN TRANSACTION

    if(@strblchge=1)
        
    if (@strNewPassWord<>@strNewPassWord2)
        
    begin
            
    SELECT @msgerror='两次新密码输入不一致',@errid=99
            
    GOTO Error_Handle
        
    end

    SET NOCOUNT OFF
    COMMIT TRANSACTION
    RETURN(0
         
    Error_Handle:
        
    SET NOCOUNT OFF
        
    ROLLBACK TRANSACTION    
        
    RETURN(@errid)



    二.程序方面(c#)
    根据PDM文件,直接开始程序制作.如果做好类图就更好了,同上,各方面因素没做那么详细.

  • 相关阅读:
    LeetCode
    已知二叉树的先序遍历和中序遍历序列求后序遍历序列
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    TCP协议的基本规则和在Java中的使用
    Java中UDP协议的基本原理和简单用法
    LeetCode
  • 原文地址:https://www.cnblogs.com/cnaspnet/p/667804.html
Copyright © 2011-2022 走看看