Exemplo n.º 1
0
        // parameters:
        //      change_complte  数据名修改成功后的收尾工作
        int ChangeDbName(
            RmsChannel channel,
            string strOldDbName,
            string strNewDbName,
            Action change_complete,
            out string strError)
        {
            strError = "";

            // TODO: 要对 strNewDbName 进行查重,看看是不是已经有同名的数据库存在了
            // 另外 DoSetDBInfo() API 是否负责查重?

            List<string[]> log_names = new List<string[]>();
            string[] one = new string[2];
            one[0] = strNewDbName;
            one[1] = "zh";
            log_names.Add(one);

            // 修改数据库信息
            // parameters:
            //		logicNames	逻辑库名。ArrayList。每个元素为一个string[2]类型。其中第一个字符串为名字,第二个为语言代码
            // return:
            //		-1	出错
            //		0	成功(基于WebService接口CreateDb的返回值)
            long lRet = channel.DoSetDBInfo(
                    strOldDbName,
                    log_names,
                    null,   // string strType,
                    null,   // string strSqlDbName,
                    null,   // string strKeysDef,
                    null,   // string strBrowseDef,
                    out strError);
            if (lRet == -1)
                return -1;

            // 数据名修改成功后的收尾工作
            change_complete();

            // 修改一个数据库在OPAC可检索库中的定义的名字
            // return:
            //      -1  error
            //      0   not change
            //      1   changed
            int nRet = RenameOpacDatabaseDef(
                channel.Container,
                strOldDbName,
                strNewDbName,
                out strError);
            if (nRet == -1)
                return -1;

            return 0;
        }