2009-11-17 126 views
0

我需要将文件中的数据与SQL Server数据库中的列进行比较。我被要求使用Microsoft Access来做同样的事情。如何将数据文件与SQL Server数据库中的列进行比较?

附加信息: 文件由多行文本组成。文本中包含与SQL Server数据库的列名相匹配的词。

应该怎么做比较?如果我使用MS Access,那么我会编写查询以从SQL Server中提取信息,但我不知道如何使用(我不确定是否有可能)使用MS Access将文件中的信息与数据库中的信息进行比较。

UPDATE

文件结构:

ABCDE  12324   ABCDE ABCDE 
    ABCDE  WORDSWORDSWORDS WORDS 
    VERSION  NUMBER1.1 IDENTIFIER:129090 
    WORDS WORDS WORDS 
    WORDS WORDS 
    ABCDE  22324   ABCDE ABCDE 
    ABCDE  WORDSWORDSWORDS WORDS 
    VERSION NUMBER2.1 IDENTIFIER:129090 
    WORDS WORDS WORDS 
    WORDS WORDS 
    ABCDE  32324   ABCDE ABCDE 
    ABCDE  WORDSWORDSWORDS WORDS 
    VERSION XUMBER1.1 IDENTIFIER:129090 
    WORDS WORDS WORDS 
    WORDS WORDS 

数据库结构:

Column1 Column2 Column3 Accession_Ver Column4 

234  value2 value3 NUMBER1.1   value4 
456  value5 value6 NUMBER2.1   value7 

我得值后的数据字 '版本'(即NUMBER1.1)比较数据库中列名为'Accession_Ver'(即NUMBER1.1)的文件。比较后,如果值不同,则存储它们,否则继续比较。

我可以使用Perl来解析数据文件,但我不知道如何使用MS Access连接文件和数据库来比较信息。

+0

请提供带有示例内容的文件结构以及SQL Server表结构?你想比较什么?然后什么? – shahkalpesh 2009-11-17 14:20:57

+0

已添加结构。 – shubster 2009-11-17 14:47:53

回答

0

可以将SQL服务器表附加到Access或使用ADO获取记录集(http://www.connectionstrings.com/sql-server-2008)。如果结构一致,也可以在VBA中逐行读取文本文件或将其附加到Access。

在我看来,您可能希望使用例如FileSystemObject在VBA中逐行读取文件,然后使用ADO根据您检查的行来运行合适的查询。

+0

FileSystemObject是否支持RegEx,这对我来说似乎是显而易见的方法? – 2009-11-17 23:55:39

0

您很可能想要将文件导入到数据库中的临时表中。数据一旦存在,您就可以轻松地针对数据编写查询。

0

几种方法,但这里是我的两美分。

  1. 将所需信息以列格式提取到新文件中,请考虑csv。
  2. 将新文件导入到表中。
  3. 在数据库中进行比较。

OR

如果您有SQL服务器2005/2008标准的/ dev /企业,比你有SSIS。在SSIS中,您可以连接到数据库,平面文件,XMl等等,并处理记录。

相关问题