![]() |
#11 |
Moderator
|
Зачем так рано сдаваться-то?
![]() Обнаружил два способа борьбы: 1. добавить во фрагмент ConnectionString "Extended Properties='Excel 8.0;HDR=Yes'" подстроку "IMEX=1", чтобы получилось "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'" (при этом как минимум одно из первых 8 значений должно быть текстом) 2. добавить ведущий апостроф (известный способ в Excel) в те ячейки первых 8 строк, которые выглядят как числовые ( 150300 => '150300 ) Далее, у меня получились следующие результаты исследования: 1. MAXSCANROWS при использовании из Аксапты у меня не почему-то не заработал ![]() 2. тип данных в конкретном поле ADO определяет по значениям в первых 8 строках (даже при MAXSCANROWS=1 и при MAXSCANROWS=16; и даже при MAXSCANROWS=0, когда по идее должны сканироваться все записи таблицы) 2.1. если в первых 8 строках 5 текстовых значений и 3 числовых, то тип поля принимается как ТЕКСТ 2.2. если в первых 8 строках 3 текстовых значений и 5 числовых, то тип поля принимается как ЧИСЛО 2.1. если в первых 8 строках 4 текстовых значений и 4 числовых, то тип поля принимается как ЧИСЛО 3. Если добавить параметр IMEX=1, то (опять-таки всё определяется по первым 8 строкам): 3.1. Если в первых 8 строках есть хотя бы одно текстовое значение, то тип поля принимается как ТЕКСТ (!) 3.2. Если в первых 8 строках есть ТОЛЬКО ЧИСЛОВЫЕ значения, то тип поля принимается как ЧИСЛО (даже если все последующие значения, начиная с 9-го являются текстом) Подробности про IMEX=1, например, здесь: Цитата:
NOTE: Setting IMEX=1 tells the driver to use Import mode. In this state, the registry setting ImportMixedTypes=Text will be noticed. This forces mixed data to be converted to text. For this to work reliably, you may also have to modify the registry setting, TypeGuessRows=8. The ISAM driver by default looks at the first eight rows and from that sampling determines the datatype. If this eight row sampling is all numeric, then setting IMEX=1 will not convert the default datatype to Text; it will remain numeric.
|
|
|
За это сообщение автора поблагодарили: kashperuk (6). |