今天看精华贴的时候看到一篇关于动态获取DSN的文章,里面用比较复杂的C脚本实现了动态获取DSN,代码如下:
#pragma code ("dmclient.dll")
#include "dmclient.h"
#pragma code()
char *DSNNAME = NULL;
CMN_ERROR Error;
char project[_MAX_PATH + 1];
if(!DMGetRuntimeProject(project, sizeof(project), &Error))
{
MessageBox(NULL,"提示","DMGetRuntimeProject执行失败",MB_OK);
}
else
{
DM_PROJECT_INFO ProjectInfomation;
if (!DMGetProjectInformation(project, &ProjectInfomation, &Error))
{
MessageBox(NULL,"提示","DMGetProjectInformation执行失败",MB_OK);
}
else
{
DSNNAME = SysMalloc(strlen(ProjectInfomation.szDSNName) + 1);
if(DSNNAME )
{
strcpy(DSNNAME, ProjectInfomation.szDSNName);
strcat(DSNNAME, "R");
}
else
{
MessageBox(NULL,"提示","SysMalloc执行失败",MB_OK);
}
}
}
return DSNNAME;
而我平时都直接从变量@DatasourceNameRT里直接读的,请问我这样跟用上面的脚本读出来的有什么不同么?