zoukankan      html  css  js  c++  java
  • 自己动手编写一个VS插件(八)

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

            利用业余时间继续开发一个VS插件。我要开发的插件是一个代码库插件,主要是用于积累我平时要使用的代码。在之前我已经实现了选关键代码进行网上搜索,如下图:

           今天继续开发两个新功能:本地代码入库和本地代码搜索。既然是代码库,就需要有数据库。我选择存放代码的数据库是sqlite。选择的理由是sqllite是开源的,基于文件的轻便型的,效率上也满足我的需求。数据库表的设计如下:

     

    CodeRecord ( 代码记录表 )

     

    字段名

    数据类型

    是否主键

    是否非空

    备注

    ID

    int

     

    CodeText

    BLOB_TEXT

    代码文本

    DevLanguage

    smallint

     

    开发语言

    DevEnv

    smallint

     

    开发环境

    CodeClass

    smallint

     

    代码类别

    EnterTime

     

     

     

    入库时间

     

    Tag ( Tag表)

    字段名

    数据类型

    是否主键

    是否非空

    备注

    ID

    int

     

    TagWord

    char(64)

    标签

     

     

    CodeRecord_Tag表(代码记录表和tag表的关联表)

    字段名

    数据类型

    是否主键

    是否非空

    备注

    CodeRecord_ID

    int

     

    Tag_ID

     

    int

     

     

    File表(文件表)

    字段名

    数据类型

    是否主键

    是否非空

    备注

    ID

     

    int

     

    FilePath

    char(256)

    文件路径

    ProjectPath

    char(256)

     

    工程路径

    Screenshot

    char(256)

     

    软件截图

    EnterTime

     

     

     

    入库时间

     

    File_Tag表

    字段名

    数据类型

    是否主键

    是否非空

    备注

    File_ID

    int

     

    Tag_ID

     

    int

     

     

           这个表是以前设计的。今天发现主键用int型并不合适,因为以后难免会出现多个代码库,到时一定需要将多个代码库进行合并,用int作主键就很难合并了,因此决定用com的guid作为主键,到时只要主键不同就可以认为是两条不同的纪录。

     

          另外sqlite只支持多字节字符集,从网上找了个一个SQLite的C++类,同时支持ANSI 和UNICODE编码:

    SQLite C++操作类

         代码可以用,只是有个地方需要改动下,将

    typedef int (WINAPI *QueryCallback) (void *para, int n_column, char **column_value, char **column_name);

    改为

    typedef int (__cdecl *QueryCallback) (void *para, int n_column, char **column_value, char **column_name);










  • 相关阅读:
    sql server数据库中char,varchar,nvarchar字段的区别
    SQLServer 实现rownum 的功能
    web.config加密和解密
    页面命名和用户控件命名一样带来的后果
    oracle初识
    加载类成员技巧
    string.Empty与"",null的区别
    收集了一些有关网页设计的问题集
    网页最顶部转瞬即逝的巨幅广告特效
    鼠标放在图片连接上面,预览图片
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470317.html
Copyright © 2011-2022 走看看