【Caché】使用VSCode连接Intersystem Cache数据库,远程开发调试

 

一、使用VSCode进行M开发的优势

  1. 跨平台(Windows\Mac)开发调试远程服务端代码,本地无需安装Caché数据库
  2. 轻量级编辑器,可安装SQL扩展辅助查询数据
  3. 方便的代码调试,支持Terminal与快捷DeBug方式
  4. 代码智能联想补全,鼠标悬浮方法名上方自动展示方法API
  5. 快速跳转到方法定义(ctrl+鼠标左键)
  6. 支持代码格式化(Alt+Shift+F),可配置的代码格式化样式
  7. 保存即编译,同时可设置定时自动保存
  8. 主题图标多样化。VS Code有着友好的插件库,可定制属于你自己的编辑器样式

不足之处:无法导出导入xml文件;与Caché自带的IDE studio相比缺少不常用的原生功能

 

二、安装步骤

1.官网安装Visual Studio Code编辑器

 

2.打开软件,侧边栏点击扩展按钮->搜索  "InterSystems" -> 安装扩展

 

InterSystems ObjectScript Extension Pack (集成好的InterSystems插件包)、

SQLTools InterSystems IRIS(连接数据库插件,使用效果类似于SQLdbx)

3.安装完成后开始配置

VS Code支持图形化扩展配置,但为了方便配置使用改写配置文件的方式进行配置:

打开settings.json(VS Code的全局配置文件)

4.在settings.json中添加如下代码。并填写后保存(填写个人连接设置)

    "objectscript.conn": {
        "host": "",            // 连接数据库IP
        "port": 57772,        // 连接数据库端口
        "username": "",        // 用户名
        "password": "",        // 密码
        "ns": "",             // 命名空间
        "active": true,       // 是否开启
        "https": true,
        "server": "MyDataBase"    // intersystems.servers中设置的数据库服务器名
    },
    "intersystems.servers": {
        "MyDataBase": {                    // 数据库服务器
            "webServer": {
                "scheme": "http",
                "host": "",                // 连接服务IP
                "port": 57772                // 连接服务端口
            },
            "username": "",                    // 用户名
            "description": ""                  // 描述
        },
        "/default": "MyDataBase"    // 默认连接的数据库服务器
    }

5.保存本地密码(方便登录服务端,不需要每次打开服务连接都输密码)[可选步骤]

ctrl + shift + p -> 打开命令菜单 -> 输入 "InterSystems Server Manager",选择Store Password in Keychain -> 选择要保存密码的连接 -> 输入密码

6.侧边栏选择资源管理器,建立一个本地工作区(提前新建一个文件夹)

这一步相当于建立一个工作文件夹,后续开发调试的代码需要导出到此目录下进行同步

7.建立完成后,侧边栏会出现图标  ,点击图标后选择导入刚才建立的工作空间,并选择配置的数据库服务名并选择命名空间

8.此时资源管理器中会出现连接的服务。代码处于只读状态不可更改。点击右键将Classes的所有文件Export导出到工作空间的文件夹下

这一步相当于从服务端拷贝一个本地副本用于编辑,之后的所有开发调试都在本地代码上操作并自动同步给服务端。类似于SVN

(本地库则不需要导出,连接服务后即可开发)

导出完成后即可开始正常开发调试。

9.额外:配置SQLTools InterSystems IRIS 插件,在开发时进行SQL操作查询或更改数据

三、使用方式

1.在工作区下开发代码,ctrl+s保存编译,可直接推送改动给远程服务端。

若存在代码不同步,编辑器会给出提示。可选择:

  • 比较代码,改动并更新后继续编译
  • 直接提交本地改动覆盖远程
  • 直接拉取远程代码覆盖本地

快捷开发:

  • 输入指令前缀智能联想
  • 鼠标悬停方法上方显示API
  • ctrl + 鼠标左键,跳转方法声明
  • Alt+Shift+F代码格式化
  • ctrl + p 搜索文件,ctrl + f 搜索内容

2.调试支持编辑器Debug与原生Termianl调试

Terminal可通过打开终端,利用 telnet host 命令 进入服务端的cacheTerminal端口,随后输入用户名密码即可使用

当一台主机安装了Caché数据库后,该主机的Telnet服务端就会被替换成远程的Terminal。此时使用任一主机的Telnet客户端去访问Caché数据库,即可打开一个远程的Terminal。

可能存在问题:编码问题或格式不对导致数据显示问题,此时可在工作空间下新建批处理文件xxx.bat,在终端上执行后可调出本机shell窗口,进行Terminal调试(仅适用于windows系统)

批处理代码如下:
(WScript.Sleep [time]  等待时间(毫秒),因为远程连接有延迟故添加,根据本机情况删除或修改)

@echo off
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 1000 >>telnet_tmp.vbs
echo sh.SendKeys "open host{ENTER}" >>telnet_tmp.vbs    // host:连接ip
echo WScript.Sleep 25000 >>telnet_tmp.vbs
echo sh.SendKeys "username{ENTER}" >>telnet_tmp.vbs    // username:用户名
echo WScript.Sleep 1000 >>telnet_tmp.vbs
echo sh.SendKeys "password{ENTER}" >>telnet_tmp.vbs        // password:密码
start telnet
cscript //nologo telnet_tmp.vbs
del telnet_tmp.vbs

若是本地库,则在终端输入命令:[Caché根目录]\bin\cache -s [Caché根目录]\mgr\,可以进行调试(也可建立批处理命令执行文件)

 

四、添加其他插件辅助开发

1.添加Bookmarks扩展,可实现类似于studio的Toggle Bookmark标记功能实现快速跳转

 


 

注意:

  • 本文主要描述远程开发调试的安装与使用步骤,本地连接更为简单,可参考文章:Caché数据库的简单开发与调试
  • 注意编码问题,不同项目编码不同,提前设置
  • 编辑代码会出现本地和服务器代码不一致。编译提示代码不一致时,请注意比较合并
  • 格式化代码时默认会将语言内置$开头的方法变成全拼,可在"InterSystems Language Server"扩展中改动配置保持方法不变

参考资料:https://intersystems-community.github.io/vscode-objectscript/

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值