[发明专利]VB快速访问SQL数据库的方法在审
申请号: | 201310594905.1 | 申请日: | 2013-11-25 |
公开(公告)号: | CN103646047A | 公开(公告)日: | 2014-03-19 |
发明(设计)人: | 刘雨 | 申请(专利权)人: | 大连海联自动控制有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 116000 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | vb 快速 访问 sql 数据库 方法 | ||
一种VB快速访问SQL数据库的方法
本发明针对使用VB访问SQL数据库这一具体问题,在VB应用程序中调用ODBCAPI函数,进行数据成组绑定,减少应用程序访闷SQL数据库时数据转换的系统开销和网络传输开销,使应用程序高速访问SQL数据库。
为解决上述技术问题,本发明的技术方案是:
由于ODBC API函数的入口参数表中有些参数需要传递指针,而VB不支持指针,因此在VB中调用ODBC API函数受到一定限制。VB的字符串内存存储格式与C语言不同,而ODBC API函数是用C语言开发的,这也限制了VB和ODBC API函数之间的数据交换。作者对ODBC API函数进行了分析,综合VB的特点,编写一个动态链接库,在动态链接库的支持下可直接在VB中调用ODBC API函数,并能进行数据交换。
1、VC++6.0开发动态链接库
VC++6.0可开发三种类型的动态链接库:Win32 DLL、常规MFC DLL、扩展MFC DLL。扩展MFC DLL支持C++接口。换言之,DLL能够导出整个类,客户能够建立这些类或由其派生的类的对象。Win32DLL、常规MFC DLL可被任意Win32编程环境(包括Visual Basic 6.0版)加载使用。常规MFC DLL在发行时必须附带MFC42.DLL库,而Win32DLL可单独发行。如果只提供给VB编程环境使用,可建立Win32 DLL即可。
2、建立Win32 DLL
利用VC++6.0编程环境的AppWizard创建一个简单Win32 DLL工程,工程名为VBSQL,在此基础上加入自己的代码。代码如下:
#include“stdafx.h”
#include<string.h>
#define DLLEXPORT extern“C”_declspec(dllexport)//定义导出宏
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,
LPVOID lpReserved)
{ switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TURE;
}
DLLEXPORT long_stdcall GetAddress(void*Address)//按地址传送
{ return(long)Address};//将地址强制转换为长整形
DLLEXPORT long_stdcall strCopyToByte(char*BytesAddress, char*strAddress)
{
return(long)strcpy(BytesAddress, strAddress)
};//将字符串传送到指定地址
经编译链接生成VBSQLDLL动态链接库,将其拷贝到C:/WINDOWS/SYSTEM目录下,这样就可在VB中调用。利用Microsoft Visual Studio 6.0 工具软件Depends查看VBSQLDLL中导出的函数名。
3、VB中声明外部函数
在模块文件中作如下声明:
VBSQL.DLL函数声明:
Public Declare GetAddress Lib“VBSQL.DLL” Alias “_GetAddress@4” (ByRefAddress as Any) as Long
Public Declare strCopyToByte Lib“VBSQL.DLL” Alias “_strCopyToByte@8” (ByRefByte ArrayAdd ress as Any) as Long
参考sql.h,sqltypes.h头文件中常量和函数声明,将其内容转为VB声明格式。由于ODBCAPI函数和常数较多,在此不能一一列举。
类型标识常量:
Public Const SQL_IS_POINTER=(-4)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连海联自动控制有限公司,未经大连海联自动控制有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310594905.1/2.html,转载请声明来源钻瓜专利网。