这个是基于UG的一个信息管理系统的设计,ug是一个类似于Auto CAD的三维作图软件,他自身带了一个叫做UIStyler的用户自定义界面的程序,可以做出这样的一个界面:
之后它会自动生成一个标准的代码框架,就像extern void ufsta (char *param, int *retcode, int rlen)这样的(书上说这些就是入口啊什么的我实话不太懂。)
然后在那个里面不是有什么添加啊,保存啊,还有一些输入对话框吗,他们都是实现的和数据库的连接后的数据提取,显示,更改的功能。现在的问题重要就是和数据库连接不成功(带式代码却可以运行)。
因为到底能不能用还要在电脑上安装UG,比较麻烦,所以就请大家帮我看看这个代码,我是在网上找的比较成型的那种连接接口的函数块,高亮部分,但是不能成功连接麻烦大家啦~~谢谢啦代码从一楼发数据库callbackug
之后它会自动生成一个标准的代码框架,就像extern void ufsta (char *param, int *retcode, int rlen)这样的(书上说这些就是入口啊什么的我实话不太懂。)
然后在那个里面不是有什么添加啊,保存啊,还有一些输入对话框吗,他们都是实现的和数据库的连接后的数据提取,显示,更改的功能。现在的问题重要就是和数据库连接不成功(带式代码却可以运行)。
因为到底能不能用还要在电脑上安装UG,比较麻烦,所以就请大家帮我看看这个代码,我是在网上找的比较成型的那种连接接口的函数块,高亮部分,但是不能成功连接麻烦大家啦~~谢谢啦代码从一楼发数据库callbackug
//#include "stdafx.h"
#include "MaterialInfo.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/* The following definition defines the number of callback entries */
/* in the callback structure: */
/* UF_STYLER_callback_info_t MAT_cbs */
#define MAO_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */CString strtemp;
CString str_tmp1,str_tmp2,str_tmp3,str_tmp4,str_tmp5,str_tmp6;//add_:添加标志;
int add_=0;
char DbType;//定义数据库指针
CDatabase *m_pdatabase;
CRecordset *m_pset;
_ConnectionPtr m_DBCnt;
_RecordsetPtr m_pRecordset;/*--------------------------------------------------------------------------*/
static UF_STYLER_callback_info_t MAO_cbs[MAO_CB_COUNT] =
{
{UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, MAO_constructor_cb},
{UF_STYLER_DIALOG_INDEX, UF_STYLER_DESTRUCTOR_CB , 0, MAO_destructor_cb},
{UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, MAO_apply_cb},
{MAO_MATERIAL , UF_STYLER_ACTIVATE_CB , 0, MAO_mao_type_sel},
{MAO_PART , UF_STYLER_ACTIVATE_CB , 0, MAO_partname_type_sel},
{MAO_BTN , UF_STYLER_ACTIVATE_CB , 0, MAO_btn_cb},
{UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }
};/*------------------------------------------------------------*/
static UF_MB_styler_actions_t actions[] = {
{ "MaterialInfo.dlg", NULL, MAO_cbs, UF_MB_STYLER_IS_NOT_TOP },
{ NULL, NULL, NULL, 0 } /* This is a NULL terminated list */
};
/*------------------------------------------------------------*/
extern void ufsta (char *param, int *retcode, int rlen)
{
int error_code;
if ( (UF_initialize()) != 0)
return;
if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 )
{
char fail_message[133];
UF_get_fail_message(error_code, fail_message);
printf ( "%s\n", fail_message );
}
UF_terminate();
return;
}
/*------------------------------------------------------------*/
extern void ufusr(char *param, int *retcode, int rlen)
{
int response = 0;
int error_code = 0;
if ( ( UF_initialize() ) != 0 )
return; if ( ( error_code = UF_STYLER_create_dialog ( "MaterialInfo.dlg",
MAO_cbs, /* Callbacks from dialog */
MAO_CB_COUNT, /* number of callbacks*/
NULL, /* This is your client data */
&response ) ) != 0 )
{
char fail_message[133]; /* Get the user function fail message based on the fail code.*/
UF_get_fail_message(error_code, fail_message);
UF_UI_set_status (fail_message);
printf ( "%s\n", fail_message );
}
UF_terminate();
return;
}/*------------------------------------------------------------*/
extern int ufusr_ask_unload (void)
{
/* unload immediately after application exits*/
return ( UF_UNLOAD_IMMEDIATELY ); /*via the unload selection dialog... */
/*return ( UF_UNLOAD_SEL_DIALOG ); */
/*when UG terminates... */
/*return ( UF_UNLOAD_UG_TERMINATE ); */
}
/*------------------------------------------------------------*/
extern void ufusr_cleanup (void)
{
return;
}
/*-------------------------------------------------------------------------*/
/*---------------------- UIStyler Callback Functions ----------------------*/
/*-------------------------------------------------------------------------*/
//在构造函数中初始化,将数据库中的产品列表信息调入显示窗口中int MAO_constructor_cb ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
UF_STYLER_item_value_type_t item_data; /* Make sure User Function is available. */
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG ); /* ---- Enter your callback code here ----- */
/*-------------数据库初始化-------------*/
//----在构造函数中初始化数据库,并将材料信息显示在界面中----//CString strtemp;
strtemp = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
strtemp = strtemp + JigPath;
strtemp = strtemp + "\\application\\Mao_Manage.mdb"; try
{
CoInitialize(NULL);
m_DBCnt.CreateInstance(__uuidof(Connection));
{
m_DBCnt->Open(strtemp.GetBuffer(strtemp.GetLength()),"","",adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库设置是否正确!");
return TRUE;
}