分类 Dynamics 365 下的文章

private str getTkValue(Newtonsoft.Json.Linq.JObject entity, str name)
{
    Newtonsoft.Json.Linq.JToken jtk;
    jtk  = entity.getValue(name);
    return jtk==null ? "" :jtk.ToString();
}

switch(anyType)
        {
            case Types::String:
                return any2Str(value);
                break;
            
            case Types::VarString:
                return any2Str(value);
                break;
                        
            case Types::Integer:
                return any2Int(value);
                break;

            case Types::Int64:
                return any2Int64(value);
                break;
                        
            case Types::Enum:
                return any2Enum(anyData)
                break;
                        
            case Types::Real:
                return any2Real(value);
                break;
            
            case Types::Date:
                table.setFieldValue(conPeek(nameCon,j), any2Date(anyData));
                break;

            case Types::Time:
                table.setFieldValue(conPeek(nameCon,j), str2Time(any2Str(anyData)));
                break;

            case Types::UtcDateTime:
                System.DateTime a =  anyValue;
                TimeOfDay time = 0; 
                
                utcdatetime utcData = DateTimeUtil::newDateTime(a.Date,time);
                utcData=DateTimeUtil::addHours(utcData,a.Hour);
                utcData=DateTimeUtil::addMinutes(utcData,a.Minute);
                utcData=DateTimeUtil::addSeconds(utcData,a.Second);
                table.setFieldValue(conPeek(nameCon,j), utcData);
                break;
            
            case Types::Guid:
                table.setFieldValue(conPeek(nameCon,j), any2Guid(anyData));
                break;
            
            case Types::Container:
                table.setFieldValue(conPeek(nameCon,j), str2con(anyData, ","));  // not validate
                break;
            
            default:
                Info(strFmt("%1(%2)类型未定义", conPeek(nameCon,j), dictField.baseType()));
                break;
        }

    MenuFunction menuFunction;
    menuFunction = new MenuFunction(menuItemDisplayStr(xxx), MenuItemType::Display);

    Args args = new Args();
    args.record(_task);
    args.caller(_caller);
    menuFunction.run(args);

cd "C:\Temp\sqlpackage-win7-x64-en-US-15.0.5084.2"
SqlPackage.exe /a:import /sf:C:\Temp\test.bacpac /tsn:. /tdn:AxDB_202308188 /TargetTrustServerCertificate:True /p:CommandTimeout=7200

//kill all conections.

-- Create the sql to kill the active database connections 

declare @execSql varchar(1000), @databaseName varchar(100)
-- Set the database name for which to kill the connections
set @databaseName = 'AxDB'
set @execSql = ''

select @execSql = @execSql + 'kill ' + convert(char(10), spid) + ' '
from master.dbo.sysprocesses where db_name(dbid) = @databaseName
and DBID <> 0
and spid <> @@spid exec(@execSql)
GO

-- modified DB name.

ALTER DATABASE AxDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE --单用户模式
ALTER DATABASE AxDB MODIFY NAME = AxDB_Dev240228
ALTER DATABASE AxDB_DEL SET MULTI_USER --多用户模式

导入Bak文件
RESTORE DATABASE [DbTest]
FROM

disk = N'C:\File\bak.bak'

WITH

FILE =1,
REPLACE,
RECOVERY,
STATS=5;

Num2Str

    num2str
    (
    moneyReal,
    -1, // Minimum number of characters to output into the string. -1 means infinite number of characters

    -1, // Required number of digits to the right of the decimal. -1 means infinite number of digitis

    DecimalSeparator::Dot,    // 1
    ThousandSeparator::Comma  // 2
    );