当前位置:首页 » 参考文献 » vc数据库编程

vc数据库编程

发布时间: 2021-03-23 17:56:45

⑴ VC 数据库编程三部教学电子书txt全集下载

VC 数据库编程三部教学 txt全集小说附件已上传到网络网盘,点击免费下载:

⑵ vc数据库编程里的时间如何获取

数据类型转换
3.1 异构数据源数据类型概述
对不同数据库系统,每个DBMS都定义了一套自己的数据类型,但不论数据类型在各个系统中如何变化,其功能都满足用户的数据处理基本要求,如数值型,包括整型、实型、浮点型、双精度型等;字符型,包括定长、变长等;日期型,包括年、月、日和小时、分、秒等;长字符型,包括文本类型,还有钱币型等。随着数据库系统的不断发展和版本的不断升级,数据类型的种类也不断增多,如超文本和二进制处理多媒体和大文本的数据类型。这些带有共性的东西,给系统间的数据转换带来了可能和方便,但不同的数据库的数据类型也是有差异的。其自身定义和扩充之间的区别,也给系统间的数据转换带来了许多困难。例如,DBMS返回的日期和时间数据格式在各个DBMS中有很大的不同。有些系统以8字节整数格式返回日期和时间,另外一些以浮点数格式返回。并且有的DBMS含有LONG类型,其它DBMS无此类型。所以异种数据库数据类型转换的关键是找出其中的对应关系。
3.2 数据类型转换方法一(设计类型映射表)
为了实现相互数据转换,必须设计多个相应的双向数据转换程序并且解决不同的数据类型匹配问题。当增加一个数据库系统时,相应要解决该数据库系统与已存在的多个异构库的数据类型匹配问题,并增加多个对应转换程序。为了实现程序的扩展性,可以通过设计类型映射表来解决类型转换问题。
将不同数据库系统数据类型的对应关系和相应的数据转换处理程序分离开,使数据转换程序相对独立,而把类型转换关系在专门的表结构中存储。通过对不同数据库系统之间的数据类型进行详细而深入的分析,找出了不同数据库系统不同版本的各个不同类型之间缺省的类型对应关系及可能存在的对应关系,将这些数据预先存入类型映射表中。
3.3 数据类型转换方法二(利用ODBC SQL类型)
存储在数据源中的数据都有一个数据类型,称为数据源数据类型或SQL数据类型。SQL数据类型是按照SQL-92标准由每一个DBMS定义,可以是某个数据源特有的。驱动程序在ODBC SQL语法及驱动程序数据类型中也定义了一套数据类型称为ODBC SQL数据类型(以SQL前缀开头的数据类型)。每个驱动程序负责映射特定数据来源的SQL数据类型到ODBC SQL数据类型标识符。因此,不同的数据源在进行数据转换的过程中可以通过ODBC SQL数据类型标识符作为基准来得到数据类型的缺省映射关系。驱动程序通过函数SQLGetTypelnfo返回数据源的SQL数据类型和ODBC SQL数据类型的映射关系,在函数SQLCo1Attributes,SQLDescribeCol和 SQLDescribeParm中,驱动程序还用ODBC SQL数据类型来描述列和参数的数据类型。
此外,ODBC还提供一套以SQL_C前缀开头的ODBC C数据类型。ODBC C数据类型指出了在应用程序中用于存储数据的C缓冲区的数据类型。所有驱动程序必须支持所有的C数据类型,而且支持所有C类型到相应的SQL类型的转换,并且所有的驱动程序至少支持字符SQL类型,使得DBMS的数据类型都能映射到一种C语言的数据类型,这样在传递过程中不会改变数据。每一个SQL数据类型与一个ODBC C数据类型相适应。在从数据源返回数据之前,驱动程序将它转换到指定的C数据类型。在发送数据到数据来源之前,驱动程序将它从指定C数据类型转换到SQL数据类型。
4 数据转换过程中大对象的处理
4.1 大对象类型概述
大对象类型BLOB全称为Binary Large Objects,即二进制大对象。可以把BLOB区别为三种形式:声像数据、二进制数据和大文本数据。因此,最常见的应用就是存储图形、声音等对象,此外大二进制对象、OLE对象也可以通过BLOB类型存入数据库,如果文本对象过大,超出了文本类型的规定长度,则必须用BLOB字段进行存储。我们在经常使用的编程环境中并不能直接支持BLOB字段,因此需要调用相应的函数完成BLOB的使用。
不同的数据库系统对大对象类型的支持不同,常用数据库系统支持的大对象数据类型如表4所示:表4数据库系统支持的大对象数据类型
数据库系统 大对象类型
SQL SERVER "sql_variant","ntext","image","varbinary","binary","text"
ORACLE "BLOB","LONG RAW","BFILE","RAW","CLOB","LONG"
SYBASE "LONG VARCHAR"
VFP "MEMO"
ACCESS "OLE OBJECT","MEMO"
KINGBASE "blob","text","bytea","varbinary","binary","text"4.2 大对象的存取方法
1)利用MFC提供的CLongBinary类
VC存取大对象数据有众多方法,如OLE、ActiveX等,而VC的MFC提供的CLongBinary类可以方便地实现存取BLOB字段。使用CLongBinary类可以存取超过MAXINT数目的数据,最大为可以得到的内存容量。但数据完全保存在内存中,对超大量数据消耗太大。
2)利用ODBC的SQLGetData和SQLPutData函数
对于不能存储在单一缓冲区中的数据,在行中的其他数据已被获取之后,可以直接用SQLGetData分批从驱动程序检索这些数据。为了从一列检索长数据,应用程序首先调用SQLFetchScroll或SQLFetch移动一行,并且调用SQLGetData获取绑定列的数据。

⑶ 请推荐个VC++编写数据库方面的书

人人软件站里有(原 学生大软件站): <<VC 数据库编程三部教学>>
http://www.softii.com/downinfo/19336.html, 链接无效的话,你打开 www.softii.com 在里头找 "VC 数据库编程三部教学", 这是 WORD 文档
讲的很详细,编程讲的比较细,数据库的配置就讲的不多了,不过 SQL Server 2005 的配置本身就很容易上手

用 MFC 编比较方便, 如果你用 WIN32 API 编写, 单单用户界面那一块就够你折腾了

⑷ 谁有VC++数据库编程视频教程

请看孙鑫的教程 网络搜 VC孙鑫

⑸ VC++数据库编程

*****
*****首先,告诉你正确写法是:vSQL=
"insert into CARDINF (FD_ID, FD_NAME, FD_SEX, FD_DUTY, FD_BEGINDATE, FD_ENDDATE, FD_PLACE, FD_CID) values (1234, 'FD_NAME', 'FD_SEX', 'FD_DUTY', 'FD_BEGINDATE', 'FD_ENDDATE', 'FD_PLACE', 20080409)";
*****
*****你要是想使用变量作为字段值,那你必须用参数化的版sql语句。否则必须用常量,权针对数字字段直接用整数或小数常量,针对字符串或时间字段必须用''括起来的字符串常量。
*****
*****另外,你用“+”号的初衷,想必是打算在编程环境里面把一个很长的sql语句分多行显示,你可以在行末用一个“/”号来实现。

⑹ VC与数据库连好后,怎样用C++编程将txt导入到SQL表中!源程序!!

呵呵,前几天也遇到这个问题了。
一开始我是这样做的:
(1)定义两个变量
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
(2)在mfc的按钮中的代码
m_pRecordset.CreateInstance(__uuidof(Recordset));
CString sql;
sql.Format("bulk insert Data from 'D:\\a.txt' with(fieldterminator = ',', rowterminator = '\n')");
m_pRecordset->Open(_variant_t(sql),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

以上两步就可以将D:\\a.txt这个文本文件导入数据库的Data表中,但是这样做出现了一个问题:
导入的数据你查询时没有显示错误,但是当你把数据导出的时候就发现问题了。(你可以将你查询的结果导出为csv文件试试看)
今天终于解决了这个问题,就是将rowterminator = '\n'的换行符写成'\r\n',也就是rowterminator = '\r\n',这样就解决问题了。
因为windows下的文本就是以\r\n结束的。
(以上省去了数据库的连接)

⑺ 请问用VC++连接SQL数据库的过程中,在VC++的编程里都需要做哪些工作

新手吧你?

数据库无外乎3个基本的
1.数据库类(相当于对应哪个数据库文件)
2.数据记录集(相当于数据库里面的单个表)
3.错误异常.

你必须用数据库类打开一个数据库连接, 这些链接可以使ADO ODBC 文件 OLE
然后再打开单个表, 然后用记录集的函数访问每个表的行数据. 然后去每行对应的列数据.

⑻ VC++编程,怎么让数据库表格显示在界面上

用一个复data control控件连接数据库,然制后绑定一个datagrid控件显示数据。加控件的话用右键,选择添加activex控件,data control的可以用ado data control,它有3种方式连接数据库,你选定了控件再了解吧。这里用ODBC源,可以在运行里输入odbcad32进入管理界面,建一个个人文件。用控件的话,其实跟连接数据库的方式关系不大了。不用控件的话,你可以用odbc的代码手工连接数据库,然后把数据取出来之后,随意用datalist就可以显示了,比较麻烦,也不会效果更好。

⑼ vc++ ADO数据库编程如何实现查询功能

ADO--------详请情自行网络VC ADO ACCESS。。

变量:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;

初始化:
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection = m_pConnection;

链接数据库:
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\data.mdb","","",adConnectUnspecified );

如果要查询:

构造SQL语句:
m_pCommand->CommandText = "SELECT * FROM 一个表 WHERE 要查询字段=网络;";
执行上述SQL语句:
m_pRecordset = m_pCommand->Execute(NULL, NULL,adCmdText);

结果将存于m_pRecordset中,然后用m_pRecordset->MoveFirst()和m_pRecordset->MoveNext()来定位查询结果,m_pRecordset->GetCollect()来获取相应的列。

==================================================

其实我也不是很明白。。。但是这样总归是可以的:

SELECT * FROM 表1 WHERE 字段1=要查询的内容 OR 字段2=要查询的内容 OR 字段3=要查询的内容;

如果是需要查找包含某词的内容的话,应该是: WHERE 字段1=*某词*

星号表示通配符。

⑽ 几种VC++数据库开发技术的比较

从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口。本文主要介绍以下五种: 1.ODBC API; 2.MFC ODBC类; 3.MFC DAO类;(数据访问对象) 4.MFC的OLE/DB; 5.ActiveX数据对象(ADO)。 1.开放数据库连接(ODBC API):提供了一个通用的编程接口,允许程序与多种不同的数据库连接。它为Oracle,SQL Server,MS Excel等都提供了驱动程序,使得用户可以使用SQL语句对数据库进行直接的底层功能操作。在使用ODBC API时,用户须引入的头文件为"sql.h","sqlext.h","sqltypes.h"。用ODBC API创建数据库应用程序遵循一定的基本步骤: 第一步是分配ODBC环境,使一些内部结构初始化。完成这一步,须分配一个SQLHENV类型的变量在ODBC环境中做句柄使用。 第二步是为将要使用的每一个数据源分配一个连接句柄,由函数SQLALLocHandle()完成。 第三步是使用SQLConnect()把连接句柄与数据库连接,可以先通过SQLSetConnectAttr()设置连接属性。 然后就可以进行SQL语句的操作,限于篇幅,相关的函数就不具体介绍了,读者可以参考相关书籍。 操作完成后,用户取回相应的结果,就可以取消与数据库的连接。 最后需要释放ODBC环境。 ODBC API的特点是功能强大丰富,提供了异步操作,事务处理等高级功能,但相应的编程复杂,工作量大。 2.MFC ODBC类:MFC1.5后的版本里引入封装了ODBC功能的类。通过这些类提供与ODBC的接口,使得用户可以不须处理ODBC API中的繁杂处理就可以进行数据库操作。主要的MFC ODBC类如下。 CDatabase类:一个CDatabase对象表示一个到数据源的连接,通过它可以操作数据源。应用程序可使用多个CDatabase对象:构造一个对象并调用OpenEx()成员函数打开一个连接。接着构造CRecordSet对象以操作连接的数据源,并向CDatabase对象传递记录集构造程序指针。完成使用后用Close()成员函数销毁CDatabase对象。一般情况下并不需要直接使用CDatabase对象,因为CRecordSet对象可以实现大多数的功能。但是在进行事务处理时,CDatabase就起到关键作用。事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个也不提交,为的是确保多用户对数据源同时操作时的数据正确性。 CRecordSet类:一个CRecordSet对象代表一个从数据源选择的一组记录的集合-记录集。记录集有两种形式:snapshot和dynaset。前者表示数据的静态视图,后者表示记录集与其他用户对数据库的更新保持同步。通过CRecordSet对象,用户可以对数据库中的记录进行各种操作。 CRecordView类:CRecordView对象是在空间中显示数据库记录的视图。这种视图是一种直接连到一个CRecordSet对象的格式视图,它从一个对话框模板资源创建,并将CRecordSet对象的字段显示在对话框模板的控件里。对象利用DDX和RFX机制,使格式上的控件和记录集的字段之间数据移动自动化,也就是说,用户甚至不要编写一行代码就可以实现简单的数据库记录查看程序。 CDBException类:由Cexception类派生,以三个继承的成员变量反映对数据库操作时的异常: m_nRetCode:以ODBC返回代码(SQL_RETURN)的形式表明造成异常的原因。 m_strError:字符串,描述造成抛出异常的错误原因。 m_strStateNativeOrigin:字符串,用以描述以ODBC错误代码表示的异常错误。 MFC数据库类成员函数都能抛出CDBException类型的异常,所以在代码对数据库进行操作后监测异常是正确做法。 MFC ODBC类在实际开发中应用最广,因为它功能丰富,操作相对简便。

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731