• 实现将sqlserver2000的多张表导出到access,并压缩,并导入压缩的access文件到sqlserver2000


       实现上述两个相反的功能需注意以下几点:

       1. access不同于sqlserver,sqlserver可以一次性执行多条语句,比如"select * from a select * from b",同时查询两个表的结果,而access则不行,一次执行执行一条语句

       2. sqlserver使用sql或odbc连接,access用oledb连接

       3. access和sqlserver的字段类型不同,access的字段类型都是中文,网上有access和sqlserver字段类型的对应表,大家可以看下。下面是我遇到字段类型转换的问题:
    a)     char,vchar等在access中用‘文本‘表示,最大只能设255

    b)     大于255的内容可用‘备注‘表示

    c)     Int,float,double,decimal可用‘数字表示‘,可通过设置字段大小区别

    d)     Datetime可用‘日期/时间‘表示,常规日期格式不能为空,可设为1900-1-1

    e)     Money可用‘货币‘表示,格式为’常规数字‘不能接受0值,需接受0值可将格式改为’固定‘

        4. 下面简单说明一下思路:

           4.1 从sqlserver2000到access

                a) 将sqlserver2000的每张表的数据放在一个DataTable中,然后将所有DataTable放在一个dataset中

                b) 然后从dataset中循环读取数据到一个access模板中,access模板需先创建,建议放在bin目录下,模板中表的数量及字段类型和sqlserver中需导出的表和字段类型需一致

                c)  之后用File.Copy()方法将access模板复制到一个新的access文件,然后使用ICSharpCode.SharpZipLib.dll压缩,这个dll网上都可以下,也可以到我的群中下载。当能也可以用dll中的zip方法将access模板直接压缩

                d)从access压缩文件解压并导入到sqlserver按照相反的思路即可.

  • 相关阅读:
    jchdl
    jchdl
    UVa 11134 (区间上的贪心) Fabled Rooks
    UVa (二分) 11627 Slalom
    POJ 1037 (计数 + DP) 一个美妙的栅栏
    HDU 3448 Bag Problem
    HDu 3449 (有依赖的01背包) Consumer
    POJ 1456 (贪心+并查集) Supermarket
    POJ 2236 (简单并查集) Wireless Network
    POJ 1703 Find them, Catch them
  • 原文地址:https://www.cnblogs.com/gossip/p/1356880.html
Copyright © 2020-2023  润新知