Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Вниз

проблемы работы с excel через ado   Найти похожие ветки 

 
Andy Nortsov   (2005-07-30 21:07) [0]

Доброе время суток
При чтении данных из excel  через ado типа
ADOQuery1.fieldbyname("EXTERNAL_NUMBER").Value если строковые данные то , ок, если числовые то возвращает null, если читать  как asString  то в оле где стоит число возвратит "", Как эту ситуацию разрулить


 
DrPass ©   (2005-07-30 21:57) [1]

Поставить в Excel принудительно строковый формат для всех ячеек, где хранятся числа. В базах данных, в отличие от электронных таблиц, в одном столбце не допускаются данные разных типов, поэтому драйвер выкручивается из ситуации простым игнорированием таких данных


 
Andy Nortsov   (2005-07-30 22:05) [2]

ставил, не помогает, в колонке смешанные данные в одной ячейке текст в другой только числа, да и потом что ж открывать экскль чтоб колонку исправить?


 
sniknik ©   (2005-07-30 22:19) [3]

мало информации, непонятно что к чему там у тебя.
но есть пара моментов работы екселевскими файлами через ADO может помочь
первое, работать можно только с данными, формулы/форматирование недоступны (если там где говориш числа, у тебя на самом деле формула... то null в это случае это нормально)

второе тип поля определяется по первым нескольким строкам (количество задается количество в реесте)  при определении типа как числовое, строки в нем будут уже игнорироваться.

ну и третье (перебор уже да ;)) воспринимается таблица как текстовая, т.е. удаления строк из нее методами работы с таблицами невозможны... (еше какието связанные с этим ограничения есть)

ну а чтобы увидеть всю возможную информацию из таблици надо в строку конекта добавить HDR=No;IMEX=1 (первый параметр - нет заголовков второй - все воспринимать текстом (второе без первого не работает)) тогда определения типов не будет, все передастся текстом (а текст все стерпит ;).

> В базах данных, в отличие от электронных таблиц, в одном столбце не допускаются данные разных типов
в mssql-е есть тип данных вариант... правда я с ним не работаю, стараюсь. (недоверие у меня к нему какоето ;о))) но он тем не менее есть. ;)


 
Andy Nortsov   (2005-07-30 23:45) [4]

Спасибо, теперь понятнее, меня интересует второй пункт, мне просто надо читать данные, к-е я и выгружал, т.е. импортировать, то что я экспортирую без всяких формул, очень понравился параметр IMEX=1, но у меня есть заголовки полей. Неужели из этой ситуации никак не выкрутится? так все было удобно... Мне ПРОСТО надо чтоб был везде текст, а не менялся тип данных при считывании.


 
sniknik ©   (2005-07-31 00:09) [5]

выкрутится можно.
реальные названия полей будут F1, F2, ... Fn, а твои станут данными в первой строке. учитавй это да и все.


 
Andy Nortsov   (2005-07-31 03:10) [6]

ок, спасибо, попробую



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
8-1115128652
ArtKil
2005-05-03 17:57
2005.09.11
Мультимедиа


8-1115220389
Gear
2005-05-04 19:26
2005.09.11
Как осуществить запись звука с микрофона средствами DirectSound?


14-1124221696
Dot
2005-08-16 23:48
2005.09.11
скрыть процесс в 98


8-1114415663
NorthMan
2005-04-25 11:54
2005.09.11
получение bmp-заголовка из jpeg


4-1122004287
Jet
2005-07-22 07:51
2005.09.11
Печать на принтер Olivetti PR2 из Дельфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский