关于extreme sports的作文_grantable

关于extreme sports的作文_grantable尊敬的前辈,    大家好!    我在网上看到了关于extremedb的文章,在实际操作时碰到了一些问题,想和大家探讨一下。1、我先安装了extremedb_3.1_win32_sql_log_eval_1B.EXE,2、然后用安装目录(C:/McObject/eXtremeDB_SQL_LOG/win32/host/bin)下的mcocomp.exe对test.mco文件进行了

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

尊敬的前辈,
    大家好!
    我在网上看到了关于extremedb的文章,在实际操作时碰到了一些问题,想和大家探讨一下。
1、我先安装了extremedb_3.1_win32_sql_log_eval_1B.EXE,
2、然后用安装目录(C:/McObject/eXtremeDB_SQL_LOG/win32/host/bin)下的mcocomp.exe对test.mco文件进行了编译,test.mco文件代码如下:
#define int1 signed<1>

#define int2 signed<2>

#define int4 signed<4>

#define int8 signed<8>

#define uint8 unsigned<8>

#define uint4 unsigned<4>

#define uint2 unsigned<2>

#define uint1 unsigned<1>

declare database testdb;  //申明一个数据库定义名称

compact class Myclass     //表名字

{

  unsigned<4> id;

  char<20> strnname;

  string straddress;

  unique tree<id> pkey;    //索引

};
3、编译成功后生成了如下两个文件:testdb.c,testdb.h
testdb.c的代码如下:
/* Generated by eXtremeDB Schema Compiler, build 468

 * at Fri Jul 31 09:44:42 2009

 */
#include “testdb.h”

#include “mcowrap.h”

/*———————————————————————*/

/* dictionary                                                          */
mco_dictionary_h testdb_get_dictionary(void)

{

  static mco_dictionary_t  dict;

  static int dictionary_ready = 0;
  if( ! dictionary_ready )

  {

    static mco_dict_field_t v_field_info[3] = {

    /* Myclass */

    {“id”, {4, 4, 0, 4, 4, 0}, 3, 8, 0, -1, 4, -1, 0, 0, -1,  0 /* 1 */},

    {“straddress”, {2, 2, 4, 4, 4, 4}, 8, 0, 0, -1, 0, -1, 0, 2, -1,  0 /* 3 */},

    {“strnname”, {20, 1, 6, 20, 1, 8}, 7, 0, 0, -1, 20, -1, 0, 1, -1,  0 /* 2 */}

    };
    static mco_dict_struct_t v_struct_info[1] = {

    { “Myclass”, 1, 3, (v_field_info + 0), 26, 4, 28, 4 }

    };
    dictionary_ready = 1;
    {

      static const char * v_class_names[] =

      {

        0,

        “Myclass”     , /* [1] */

        0

      };
      dict.str_class_names = v_class_names;

    }

    {

      static const char * v_index_names[] =

      {

        “Myclass.pkey”     , /* [0] */

        0

      };
      dict.str_index_names = v_index_names;

    }
    {

      static  mco_dict_class_info_t class_inf[2] = {

        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },

        { 0, 0, -1, -1, 0, 0, -1, 0, 0, -1, -2, 8, (v_struct_info + 0), 26, 0, -1, -1, -1 }  /* Myclass */

      };

      dict.v_class_info = class_inf;

    }

    dict.v_desc_events = (mco_dict_event_t *)0;

   
    dict.v_all_struct = v_struct_info;

    {

      static mco_dict_index_field_t v_all_index_fields[ 1] = {

          { 0, -1, 4, 3, 0, 1 } /* [0] id */

      };
      static mco_dict_index_t v_all_indexes_info[ 1] = {

          { 1, 1, -1, 2051, & v_all_index_fields[0], 0 } /* Myclass.pkey [0] */

      };
      dict.v_desc_indexes = v_all_indexes_info;

    }
    dict.version_major             = 3;

    dict.version_minor             = 1;

    dict.version_build             = 468;

    dict.magic_number              = 7;

    dict.oid_is_supported          = 0;

    dict.auto_oid_supported        = 0;

    dict.flags                     = 0;

    dict.n_class_codes             = 1;

    dict.n_list_indexes            = 0;

    dict.n_autoid_indexes          = 0;

    dict.n_history_indexes         = 0;

    dict.n_desc_indexes            = 1;

    dict.n_desc_events             = 0;

    dict.n_structs                 = 1;

    dict.num_oid_estimation        = 0;

    dict.num_HA_estimation         = 0;

    dict.max_numof_indexes_per_obj = 1;

    dict.exact_OID_sizeof          = 0;

    dict.layout_OID_size           = 0;

  }
  return &dict;

}
MCO_RET  Myclass_new                           ( mco_trans_h t, /*OUT*/ Myclass *handle )

{ return mco_w_new_obj_noid( t, 26, 1, (mco_objhandle_h)handle);

}
MCO_RET  Myclass_delete                        ( Myclass *handle )

{ return mco_w_obj_delete( (mco_objhandle_h)handle);

}
MCO_RET  Myclass_delete_all                    ( mco_trans_h t )

{ return mco_w_obj_delete_all( t, 1 );

}
MCO_RET  Myclass_checkpoint                    ( Myclass *handle )

{ return mco_w_obj_checkpoint( (mco_objhandle_h)handle );

}
MCO_RET  Myclass_pack                          ( Myclass *handle, /*OUT*/ uint4 * pages_released )

{ return mco_w_compact( (mco_objhandle_h)handle, 1, 0, pages_released);

}
MCO_RET  Myclass_id_get                        ( Myclass *handle, /*OUT*/ uint4 * result)

{ return mco_w_b4_get( (mco_objhandle_h) handle, 0, result);

}
MCO_RET  Myclass_id_put                        ( Myclass *handle, uint4 value )

{ return mco_w_b4_put( (mco_objhandle_h) handle, 0, 1, *(uint4*)& value);

}
MCO_RET  Myclass_strnname_get                  ( Myclass *handle, /*OUT*/ char * dest, uint2 dest_size)

{ return mco_w_chars_get2( (mco_objhandle_h) handle, 8, 6, dest, dest_size, 20);

}
MCO_RET  Myclass_strnname_put                  ( Myclass *handle, const char * src, uint2 len)

{ return mco_w_chars_put2( (mco_objhandle_h)handle, 8, 6, src, len, 20, 0);

}
MCO_RET  Myclass_straddress_get                ( Myclass *handle, /*OUT*/ char * dest, uint2 dest_size, /*OUT*/ uint2 * len)

{ return mco_w_string_get2( (mco_objhandle_h) handle, 4, 4, dest, dest_size, len);

}
MCO_RET  Myclass_straddress_size               ( Myclass *handle, /*OUT*/ uint2 *result)

{ return mco_w_string_len2( (mco_objhandle_h) handle, 4, 4, result);

}
MCO_RET  Myclass_straddress_put                ( Myclass *handle, const char * src, uint2 len)

{ return mco_w_string_put2( (mco_objhandle_h) handle, 4, 4, src, len, 0);

}
MCO_RET  Myclass_from_cursor                   ( mco_trans_h t, mco_cursor_h c, /*OUT*/ Myclass *handle )

{ return mco_w_obj_from_cursor( t, c, 1, (mco_objhandle_h)handle );

}
MCO_RET  Myclass_pkey_index_cursor             ( mco_trans_h t, /*OUT*/ mco_cursor_h c )

{ return mco_w_index_cursor( t, 0, c );

}
MCO_RET  Myclass_pkey_search                   ( mco_trans_h t, /*INOUT*/ mco_cursor_h c, MCO_OPCODE op_, uint4 id )

{ mco_external_field_t a_ [1];

  mco_external_field_h pa_ = a_;

  pa_->field_type = 3; pa_->v.u4 = id;
  return mco_w_tree_find(t,c,op_,a_);

}
MCO_RET  Myclass_pkey_compare                  ( mco_trans_h t, mco_cursor_h c, uint4 id, /*OUT*/ int *result_ )

{ mco_external_field_t a_[1];

  mco_external_field_h pa_ = a_;

  pa_->field_type = 3; pa_->v.u4 = id;

  return mco_w_cursor_compare( t, c, a_, result_);

}
MCO_RET  Myclass_pkey_pattern_size            ( uint4 id, /*OUT*/ uint4 *size_)

{ mco_external_field_t a_ [2];

  mco_external_field_h pa_ = a_;

  pa_->field_type = 3; pa_->v.u4 = id;

  (pa_+1)->field_type=0;

  *size_=mco_w_pattern_size(0, a_);

  return MCO_S_OK;

}
MCO_RET  Myclass_pkey_pattern_search           ( mco_trans_h t, /*INOUT*/ void *allocated_pattern, uint4 memsize, /*OUT*/ Myclass *obj, uint4 id )

{ mco_external_field_t a_ [2];

  mco_external_field_h pa_ = a_;

  pa_->field_type = 3; pa_->v.u4 = id;

  (pa_+1)->field_type=0;

  return mco_w_pattern_search(t, 0, allocated_pattern, memsize, (mco_objhandle_h )obj, a_);

}
MCO_RET  Myclass_pkey_pattern_next             ( mco_trans_h t, /*INOUT*/ void *allocated_pattern, /*OUT*/ Myclass *obj)

{ return mco_w_pattern_next(t, 0 , allocated_pattern, (mco_objhandle_h) obj, 0);

}
MCO_RET  Myclass_pkey_locate                   ( mco_trans_h t, /*OUT*/ mco_cursor_h c, Myclass * handle)

{ return mco_w_cursor_locate( t, 0, (mco_objhandle_h)handle, c);

}
MCO_RET  Myclass_pkey_find                     ( mco_trans_h t, uint4 id, /*OUT*/ Myclass *handle_)

{ mco_external_field_t a_[1];

  mco_external_field_h pa_ = a_;

  pa_->field_type = 3; pa_->v.u4 = id;

  return mco_w_tree_find_scalar(t, 0, a_, (mco_objhandle_h)handle_);

}
testdb.h的代码如下:
/* Generated by eXtremeDB Schema Compiler, build 468

 * at Fri Jul 31 09:44:42 2009

 */
#ifndef __MCO__testdb__H__

#define __MCO__testdb__H__
#ifndef MCO_CFG_WCHAR_SUPPORT

#define MCO_CFG_WCHAR_SUPPORT

#include <wchar.h>

#endif
#ifdef __cplusplus

extern “C” {

#endif
#include “mco.h”
#define MCO_COMP_VER_MAJOR 3

#define MCO_COMP_VER_MINOR 1

#define MCO_COMP_BUILD_NUM 468
 
/*———————————————————————*/

/* Handles and Class Codes                                             */
typedef struct Myclass_    { MCO_Hf h; }  Myclass;

#define                                   Myclass_code     1
 
/*———————————————————————*/

/* Dictionary                                                          */
mco_dictionary_h testdb_get_dictionary(void);

/*———————————————————————*/

/* class Myclass methods                                               */
MCO_RET  Myclass_new                           ( mco_trans_h t, /*OUT*/ Myclass *handle );

MCO_RET  Myclass_delete                        ( Myclass *handle );

MCO_RET  Myclass_delete_all                    ( mco_trans_h t );

MCO_RET  Myclass_checkpoint                    ( Myclass *handle );

MCO_RET  Myclass_pack                          ( Myclass *handle, /*OUT*/ uint4 * pages_released );
MCO_RET  Myclass_id_get                        ( Myclass *handle, /*OUT*/ uint4 * result);

MCO_RET  Myclass_id_put                        ( Myclass *handle, uint4 value );
MCO_RET  Myclass_strnname_get                  ( Myclass *handle, /*OUT*/ char * dest, uint2 dest_size);

MCO_RET  Myclass_strnname_put                  ( Myclass *handle, const char * src, uint2 len) ;
MCO_RET  Myclass_straddress_get                ( Myclass *handle, /*OUT*/ char * dest, uint2 dest_size, /*OUT*/ uint2 * len);

MCO_RET  Myclass_straddress_size               ( Myclass *handle, /*OUT*/ uint2 *result);

MCO_RET  Myclass_straddress_put                ( Myclass *handle, const char * src, uint2 len);
MCO_RET  Myclass_from_cursor                   ( mco_trans_h t, mco_cursor_h c, /*OUT*/ Myclass *handle );
MCO_RET  Myclass_pkey_index_cursor             ( mco_trans_h t, /*OUT*/ mco_cursor_h c );

MCO_RET  Myclass_pkey_search                   ( mco_trans_h t, /*INOUT*/ mco_cursor_h c, MCO_OPCODE op_, uint4 id );

MCO_RET  Myclass_pkey_compare                  ( mco_trans_h t, mco_cursor_h c, uint4 id, /*OUT*/ int *result_ );

MCO_RET  Myclass_pkey_pattern_size            ( uint4 id, /*OUT*/ uint4 *size_);

MCO_RET  Myclass_pkey_pattern_search           ( mco_trans_h t, /*INOUT*/ void *allocated_pattern, uint4 memsize, /*OUT*/ Myclass *obj, uint4 id );

MCO_RET  Myclass_pkey_pattern_next             ( mco_trans_h t, /*INOUT*/ void *allocated_pattern, /*OUT*/ Myclass *obj);

MCO_RET  Myclass_pkey_locate                   ( mco_trans_h t, /*OUT*/ mco_cursor_h c, Myclass * handle);

MCO_RET  Myclass_pkey_find                     ( mco_trans_h t, uint4 id, /*OUT*/ Myclass *handle_);
#ifdef __cplusplus

} // extern “C”

#endif
#endif

4、然后用VC++6.0新建了一个工程Myproject,并把testdb.c,testdb.h拷到了该工程目录下,然后将testdb.c,testdb.h加入到该工程
5、接着设置了Myproject,
(1)在project/setting中选择link,将category选为general,在其后加入mcolib_shm.lib,并将mcolib_shm.lib拷到Myproject目录中
(2)在project/setting中选择C/C++,将category选为code generation,
将use run-time library选为debug multithreaded dll
6、新建一个源文件Mytest.c,代码如下:
#include<ctype.h>

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

#include “testdb.h”

const char *dbname=”demo ShmDb”;

const int SEGSZ=1024*1024*10;

const uint2 PAGESIZE=90;

const int MAP_ADDRESS=0x200000000;

void SH(void)

{

 char test[]={“嵌入式实时数据库演示/n”};

 char text1[]={“Copyright(c)2001-2005 Mcobject LLC.All Right Reserved./n”};

 printf(“%s/n eXtremeDB runtime version %d.%d,build %d/n %s/n/n Press Enter to Start”,text,MCO_COMP_VER_MAJOR,MCO_COMP_VER_MINOR,MCO_COMP_BUILD_NUM,text1);

 getchar();

}

static int askNumber(const char *prompt)

{

 char buf[100];

 printf(“/n%s”,prompt);

 fgets(buf,sizeof(buf),stdin);

 if(isdigit(buf[0]))

  return atoi(buf);

 return -1;

}

static char *askString(const char *prompt)

{

 char buf[300];

 static char buf1[300];

 printf(“/n%s”,prompt);

}
7、然后编译,提示错误:
——————–Configuration: Myproject – Win32 Debug——————–

Compiling…

Mytest.c

C:/123/Myproject/Mytest.c(9) : warning C4305: ‘initializing’ : truncation from ‘const __int64 ‘ to ‘const int ‘

C:/123/Myproject/Mytest.c(28) : warning C4101: ‘buf’ : unreferenced local variable

Linking…

LINK : warning LNK4098: defaultlib “MSVCRT” conflicts with use of other libs; use /NODEFAULTLIB:library

MSVCRTD.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main

Debug/Myproject.exe : fatal error LNK1120: 1 unresolved externals

执行 link.exe 时出错.
Myproject.exe – 1 error(s), 0 warning(s)

 
小结:我估计是Mytest.c写得不完整,这个代码是在一个帖子里看到的,里面没有main函数。
    请问大家能能写出一个完整的Mytest.c吗?然后给我发过来吗?我现在水平有限,目前只能照搬别人的代码,只是想先按照提示做出点东西。
    期待着大家的回复!谢谢了!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181980.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 爬虫 通过搜索引擎搜索好看的图片进行多线程高效率爬取(解决href关联问题)

    python 爬虫 通过搜索引擎搜索好看的图片进行多线程高效率爬取(解决href关联问题)效果:单线程模式:#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2020/12/3018:56#@Author:huni#@File:图集谷单函数.py#@Software:PyCharmimportrequestsfromlxmlimportetreefromurllibimportparseimportosif__name__==’__main__’:h

    2022年7月17日
    21
  • 谈谈数据库编程语言和其他编程语言的区别_数据库编程

    谈谈数据库编程语言和其他编程语言的区别_数据库编程要说清这个目标,先要理解数据库是做什么的。数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说的OLAP和OLTP,数据库的存储都是为这两件事服务的,单纯的存储并不是数据库的目标。我们知道,SQL是目前数据库的主流语言。那么,用SQL做这两件事是不是很方便呢?事务类功能主要解决数据在写入和读出时要保持的一致性,实现这件事的难度并不小,但对于应用程序的接口却非常简单,用于操纵数据库读写的代码也很简单。如果假定目前关系数据库的逻辑存储

    2022年8月31日
    3
  • 为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?

    为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。一、事件起因关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看…

    2022年10月20日
    2
  • HttpCanary下载_HTML自我介绍

    HttpCanary下载_HTML自我介绍前言首先,我们无论学习哪个框架,都要带着问题,带着思考去学习思考1:HttpRunner是什么?思考2:HttpRunner的设计模式是什么?思考3:为什么我们要学习HttpRunner?他的

    2022年7月31日
    6
  • javascript 高级教程 视频_精通JavaScript

    javascript 高级教程 视频_精通JavaScriptJavaScript简介JavaScript历史本节为您讲解JavaScript和客户端脚本的起源。JavaScript实现完整的JavaScript实现是由以下3个不同部分组成的:ECMAScript、文档对象模型、浏览器对象模型。ECMAScript基础ECMAScript语法Java和ECMAScript有一些关键的语法特性相同,也有一…

    2022年8月22日
    8
  • ASP NET MVC Web开发教程

    ASP NET MVC Web开发教程ASPNETMVCWeb开发教程使用ASPNETMVC和C#快速学习Web开发。从绝对基础到忍者!像专业人士一样学习C#和MVC课程英文名:CompleteASPNETMVCWebDevelopment-NewbietoNinja!此视频教程共4.0小时,中英双语字幕,画质清晰无水印,源码附件全百度网盘地址:https://pan.baidu.com/s/1tarxUTa-F0KOPeXXmocLLg?pwd=7evf课程介绍:https://www.aihor

    2022年7月22日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号