0

我创建了一个到文本文件的 ODBC 连接,该文件在 VS 2012 中充满了日志条目,这要归功于此线程Microsoft Access Text ODBC Driver on Windows 7的一些见解。目前我只在 VS 的查询设计器中对文件运行查询。
我的 schema.ini 文件如下所示:

[logFile.txt]
ColNameHeader=True
Format=FixedLength
MaxScanRows=0
Col1=Thread Integer Width 6
Col2=Date Integer Width 6
Col3=Time Integer Width 11
Col4=File Char Width 5
Col5=Data Char

日志中的示例行是:

1124 0905 144022706 文件 SomeFile::SomeFunction(),一些日志消息 // Stuff001.CPP

查询成功运行,但我有一些日志行,其中数据部分有数千个字符长,但Char类型最多支持 256 个字符。
我找到了诸如 Memo 和 LongChar (http://msdn.microsoft.com/en-us/library/ms709353%28VS.85%29.aspx)之类的替代品,但是每当我替换两者中的任何一个时,都会出现错误:

错误 [HY000] [Microsoft][ODBC 文本驱动程序] 在文本文件规范“logFile.txt”中,数据选项无效。

伟大的!我是被截断的日志行困住了还是有其他选择?我在Win7 64位顺便说一句。

4

1 回答 1

0

找到了解决方案。虽然Char可以在不指定宽度的情况下使用,但对于 LongChar 则不能这样说。
我的新架构如下所示:

[logFile.txt]
ColNameHeader=True
Format=FixedLength
MaxScanRows=0
Col1=lThread Integer Width 6
Col2=lDate Integer Width 6
Col3=lTime Integer Width 11
Col4=lFile Char Width 5
Col5=lData LongChar Width 24032

将 lData 宽度设置为 24k 会对性能造成影响,但将其设置为 4,000 时没有明显差异。在http://msdn.microsoft.com/en-us/library/ms715429(v=vs.85).aspx上有更多关于 ODBC 文本文件的信息。

于 2013-09-19T17:22:07.093 回答