可以想象不是每个人都能参与全局备份的
情景:
A某在12号还原曾经在10号备份的数据,
B某12好来看的时候发现10号以后12号之前的不见了
所以这里要涉及到部分备份,目前想到的方式抽出归属与A用户下的名片数据加以保存
保存方式为insert语句,方便还原(类似批处理)
在sql语法中insert语句几个要素 表名,字段名,数据
现在需要考虑的是 给一个mdb文件路径获取 该文件下的表名以及表下的字段名
下载这个实例数据库
注:网上下载一个已有的源程序,里面的数据库一般都有很多数据,可以很好的利用一下
以后就不用,111,222,33的生成数据了
接下来你得生成这样的句子
insert into [表名]
([字段],[字段],[字段],[字段]....)
values
(值,'值',值,值....)
插入失败的情况
1.出现保留关键字,而又未加[]
2.字段和值数目不对应
3.试图对自动编号进行插值
4.其他情况
这里主要考虑的是 如果该字段为 主动编号 我们就不进行插值
获取字段的类型
>>>>>>>>>>>>>
ie7下看图
没时间去找真正的出处
http://tech.ddvip.com/2006-12/116748753617007.html
这篇文中的一段话
解释数据类型映射
这里自动编号对应的COLUMN_FLAGS和DATA_TYPE为90和3就锁定了 某一数据类型
也就是说通过判断两个字段可以分辨出某一字段的数据的类型
关于这张表的获得 大家可以自己加一张表
其他参考资料:
获取数据架构信息(获取数据类型)
http://support.microsoft.com/kb/309681/zh-cn
http://support.microsoft.com/kb/309488
http://support.microsoft.com/kb/318452
- -!由于研究时间过长 只有等'下'次把这个代码片段完成
情景:
A某在12号还原曾经在10号备份的数据,
B某12好来看的时候发现10号以后12号之前的不见了
所以这里要涉及到部分备份,目前想到的方式抽出归属与A用户下的名片数据加以保存
保存方式为insert语句,方便还原(类似批处理)
在sql语法中insert语句几个要素 表名,字段名,数据
现在需要考虑的是 给一个mdb文件路径获取 该文件下的表名以及表下的字段名
下载这个实例数据库
注:网上下载一个已有的源程序,里面的数据库一般都有很多数据,可以很好的利用一下
以后就不用,111,222,33的生成数据了
接下来你得生成这样的句子
insert into [表名]
([字段],[字段],[字段],[字段]....)
values
(值,'值',值,值....)
插入失败的情况
1.出现保留关键字,而又未加[]
2.字段和值数目不对应
3.试图对自动编号进行插值
4.其他情况
这里主要考虑的是 如果该字段为 主动编号 我们就不进行插值
获取字段的类型
>>>>>>>>>>>>>
string _ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Card\Card.Data\data.mdb;Persist Security Info=False";
OleDbConnection conn = new OleDbConnection(_ConnectionString);
if (conn.State != ConnectionState.Open) conn.Open();
//第二参数实际上是一种过滤m是表名,我特别建立的一个全类型表(除查阅向导字段)
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, "m" });
结果如下表
ie7下看图
TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | COLUMN_PROPID | ORDINAL_POSITION | COLUMN_HASDEFAULT | COLUMN_DEFAULT | COLUMN_FLAGS | IS_NULLABLE | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | CHARACTER_OCTET_LENGTH | NUMERIC_PRECISION | NUMERIC_SCALE | DATETIME_PRECISION | CHARACTER_SET_CATALOG | CHARACTER_SET_SCHEMA | CHARACTER_SET_NAME | COLLATION_CATALOG | COLLATION_SCHEMA | COLLATION_NAME | DOMAIN_CATALOG | DOMAIN_SCHEMA | DOMAIN_NAME | DESCRIPTION |
m | m_OLE 对象 | 14 | False | 234 | True | 128 | 0 | 0 | |||||||||||||||||
m | m_备注 | 2 | False | 234 | True | 130 | 0 | 0 | |||||||||||||||||
m | m_超链接 | 15 | False | 234 | True | 130 | 0 | 0 | |||||||||||||||||
m | m_货币 | 11 | True | 0 | 122 | True | 6 | 19 | |||||||||||||||||
m | m_日期/时间 | 10 | False | 122 | True | 7 | 0 | ||||||||||||||||||
m | m_是/否 | 13 | False | 90 | False | 11 | 2 | ||||||||||||||||||
m | m_数字_长整型 | 3 | True | 0 | 122 | True | 3 | 10 | |||||||||||||||||
m | m_数字_单精度型 | 6 | True | 0 | 122 | True | 4 | 7 | |||||||||||||||||
m | m_数字_双精度型 | 7 | True | 0 | 122 | True | 5 | 15 | |||||||||||||||||
m | m_数字_同步复制ID | 8 | False | 122 | True | 72 | |||||||||||||||||||
m | m_数字_小数 | 9 | True | 0 | 122 | True | 131 | 18 | 0 | ||||||||||||||||
m | m_数字_整型 | 5 | True | 0 | 122 | True | 2 | 5 | |||||||||||||||||
m | m_数字_字节 | 4 | True | 0 | 122 | True | 17 | 3 | |||||||||||||||||
m | m_文本 | 1 | True | "这是文本类型" | 106 | True | 130 | 50 | 100 | ||||||||||||||||
m | m_自动编号 | 12 | False | 90 | False | 3 | 10 |
没时间去找真正的出处
http://tech.ddvip.com/2006-12/116748753617007.html
这篇文中的一段话
解释数据类型映射
>是否映射对SQL Server 类型由OLE DB数据类型和描述该列或数量值的DBCOLUMNFLAGS值共同确定。在使用COLUMNS架构行集时,由DATA_TYPE和 COLUMN_FLAGS列来代表这些值。在使用IColumnsInfo::GetColumnInfo 接口时,由DBCOLUMNINFO结构的wType和 dwFlags 成员代表这些信息。
虽然是sqlserver的但是对于access也有一定帮助意义
这里自动编号对应的COLUMN_FLAGS和DATA_TYPE为90和3就锁定了 某一数据类型
也就是说通过判断两个字段可以分辨出某一字段的数据的类型
关于这张表的获得 大家可以自己加一张表
其他参考资料:
获取数据架构信息(获取数据类型)
http://support.microsoft.com/kb/309681/zh-cn
http://support.microsoft.com/kb/309488
http://support.microsoft.com/kb/318452
- -!由于研究时间过长 只有等'下'次把这个代码片段完成