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

2013-12-13 10:29:57 电力信息化  点击量: 评论 (0)
摘要:应用系统的二次开发,一般通过ODBC等数据库驱动读取数据库数据,或者由开发厂商提供接口API函数。由于数据库驱动经过了很多中间环节,而且需要考虑到通用性、兼容性等各个方面,使性能、效率大打折扣;一般
= *Electricity;
    memcpy(buf , &data , sizeof(Datastru) );
 
    SOCKET     m_s;
    HOSTENT    *phe;
    WSADATA  wsaData;
   
    WORD  wVersionRequested = MAKEWORD( 2, 2 );
    int  err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 )  return;
    if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 )
{
       WSACleanup( );
       return;
    }
 
    char cszIPAddr[256];
    gethostname(cszIPAddr ,256);  //取本机的主机名
    u_short usPort =5555;   //端口号
    SOCKADDR_IN m_Local_sin;
 
    phe = gethostbyname( cszIPAddr ); //取本机的IP地址。
//如果是其他计算机的IP地址,可以直接在此转换。
    if(phe == NULL)
    {
       closesocket( m_s );
       return ;
    }
    m_s = socket(AF_INET, SOCK_STREAM, 0); 
    if( m_s == INVALID_SOCKET )
    {
       return ;
    }
 
memcpy(&(m_Local_sin.sin_addr),(in_addr*)phe->h_addr_list[0],sizeof(in_addr));
    m_Local_sin.sin_port = htons( usPort);
    m_Local_sin.sin_family = AF_INET;
    connect(m_s,(PSOCKADDR)&m_Local_sin,sizeof(m_Local_sin) );
    send(m_s,buf, sizeof(Datastru), 0);  //把数据发送到数据处理中心
    closesocket( m_s );
}
 
    用户自定义函数完成后,需要采用Visuall C++编译器,在DB2的环境下编译、链接成可执行文件或动态链接库,拷贝到数据库自定义函数的文件目录下,并在DB2数据库中创建此自定义函数后,才能正常使用。有关过程可参考DB2的开发参考文献。
 
结语:
   本文利用数据库和操作系统的特性,提供了二次开发的另一种方法,数据的响应速度几乎与原系统同步。当然,前提是对数据库的结构比较熟悉。如果系统应用者参与了数据库的结构设计,或者开发厂家提供必要的协助,此方法能读取数据库的任何数据,给系统的二次开发开辟了一条新的捷径。
 
作者简介:
杨君中,工程师,从事电力系统信息化的应用工作,主要研究网络和信息安全应用技术。电子信箱:37212000@163.com ,37212000@sohu.com
通讯地址:江苏省泰州市凤凰西路2#
邮    编:225300
联系电话:0523-6682926
 

大云网官方微信售电那点事儿

责任编辑:和硕涵

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