elegant 发表于 2006-04-11 15:17

如何在C中调用export命令

我想在c程序中调用export命令,把一个表的数据备份起来
应该怎么做呢,请各位指教

famous 发表于 2006-04-11 17:11

system行吗?

elegant 发表于 2006-04-14 16:55

我在ibm网站上找到了这个解决的方法,我把解决方法贴上来

int DataExport(char *dataFileName)
{
int rc = 0;
struct sqlca sqlca = {0};
struct sqldcol dataDescriptor = {0};
char actionString;
struct sqllob *pAction = {0};
char msgFileName;
struct db2ExportOut outputInfo = {0};
struct db2ExportStruct exportParmStruct = {0};

printf("\n-----------------------------------------------------------");
printf("\nUSE THE DB2 API:\n");
printf("db2Export -- Export\n");
printf("TO EXPORT DATA TO A FILE.\n");

printf("\n    Be sure to complete all table operations and release\n");
printf("all locks before starting an export operation. This\n");
printf("can be done by issuing a COMMIT after closing all\n");
printf("cursors opened WITH HOLD, or by issuing a ROLLBACK.\n");
printf("Please refer to the 'Administrative API Reference'\n");
printf("for the details.\n");

/* export data */
dataDescriptor.dcolmeth = SQL_METH_D;
strcpy(actionString, "SELECT deptnumb, deptname FROM org");
pAction = (struct sqllob *)malloc(sizeof(sqluint32) +
                                     sizeof(actionString) + 1);
pAction->length = strlen(actionString);
strcpy(pAction->data, actionString);
strcpy(msgFileName, "tbexport.MSG");

exportParmStruct.piDataFileName    = dataFileName;
exportParmStruct.piLobPathList   = NULL;
exportParmStruct.piLobFileList   = NULL;
exportParmStruct.piDataDescriptor= &dataDescriptor;
exportParmStruct.piActionString    = pAction;
exportParmStruct.piFileType      = SQL_DEL;
exportParmStruct.piFileTypeMod   = NULL;
exportParmStruct.piMsgFileName   = msgFileName;
exportParmStruct.iCallerAction   = SQLU_INITIAL;
exportParmStruct.poExportInfoOut   = &outputInfo;

printf("\n    Export data.\n");
printf("    client destination file name: %s\n", dataFileName);
printf("    action                      : %s\n", actionString);
printf("    client message file name    : %s\n", msgFileName);

/* export data */
db2Export(db2Version820,
            &exportParmStruct,
            &sqlca);

DB2_API_CHECK("data -- export");

/* free memory allocated */
free(pAction);

/* display exported data */
rc = ExportedDataDisplay(dataFileName);

return 0;
} /* DataExport */

[ 本帖最后由 elegant 于 2006-4-14 17:05 编辑 ]

ghostagan 发表于 2009-08-14 16:03

这个方法是不是需要引用一些类啊?

Law 发表于 2009-09-01 22:01

把db2的api头文件包含进去就可以了,编译的时候把db2api的lib加进去就okay
页: [1]
查看完整版本: 如何在C中调用export命令