应用系统二次开发中数据库数据读取的捷径

2013-12-13 10:29:57 电力信息化  点击量: 评论 (0)
摘要:应用系统的二次开发,一般通过ODBC等数据库驱动读取数据库数据,或者由开发厂商提供接口API函数。由于数据库驱动经过了很多中间环节,而且需要考虑到通用性、兼容性等各个方面,使性能、效率大打折扣;一般
在数据处理中心创建共享内存:
HANDLE         m_hMapObject;            //共享内存句柄
extern  LPVOID   lpvMem=NULL;        //共享内存地址
#define  SHMEMSIZE sizeof(Datastru) //共享内存空间
m_hMapObject = CreateFileMapping((HANDLE)0xFFFFFFFF,
                                   NULL,
                                   PAGE_READWRITE,
                                   0,
                                   SHMEMSIZE,
                                   “Share_Mem”);
    if (m_hMapObject==NULL) return FALSE;//创建共享内存失败
BOOL fInit = (GetLastError()!=ERROR_ALREADY_EXISTS);
    lpvMem = MapViewOfFile(m_hMapObject, FILE_MAP_ALL_ACCESS, 0, 0, SHMEMSIZE));
    if (lpvMem==NULL)  return FALSE;
    if (fInit) memset(lpvMem, 0, SHMEMSIZE);  //初始化共享内存
    return TRUE;
 
2、编写数据库用户自定义函数,往共享内存写数据:
void SQL_API_FN get _data (
SQLUDF_CHAR          Station_name [36] ,
SQLUDF_CHAR          Line_name [36] ,
SQLUDF_INTEGER       *Line_Size ,
SQLUDF_INTEGER       *Voltage_Grade,
SQLUDF_CHAR          Manager [36],
SQLUDF_ DOUBLE       *Voltage _value,
SQLUDF_ DOUBLE        *Electricity,)
{
Datastru  *data ;
HANDLE         m_hMapObject;            //共享内存句柄
LPVOID         lpvMem=NULL;          //共享内存地址
#define  SHMEMSIZE sizeof(Datastru) //共享内存空间
m_hMapObject = CreateFileMapping((HANDLE)0xFFFFFFFF,
大云网官方微信售电那点事儿

责任编辑:和硕涵

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞