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

Вниз

Каким образом открыть xls-файл как таблицу TTable или TADOTable ?   Найти похожие ветки 

 
Геннадий   (2003-10-07 12:19) [0]

MS Access открывается (mdb-файл), а вот с Excel"ем не выходит. Он распрстранён среди пользователей и охота уметь предоставлять им данные в удобном (для них) виде.


 
Term   (2003-10-07 12:21) [1]

никак, используй COM-объекты, хотя на счёт адо незнаю


 
sniknik   (2003-10-07 12:57) [2]

Term © (07.10.03 12:21) [1]
> никак, используй COM-объекты, хотя на счёт адо незнаю
откуда такие сведения?

строка подключения
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\xls-файл.xls;Extended Properties=Excel 5.0;Persist Security Info=False

запрос для ADODataSet
SELECT * FROM [Sheet1$]

можно и в TADOTable, не забудь только $ в имени листа/тавлици указать.


 
Zhouck   (2003-10-07 12:58) [3]

С екселем у меня была фигня - он то открывался через ado, но не всегда, и не всегда все таблицы открывались
Вообще я делал dsn через ODBC


 
Анонимщик   (2003-10-07 17:51) [4]

Не знаю, в тему ли это, но с экселем есть нюанс.
В нем не то имена файлов, не то имена листов нужно писать не то в одинарных (""), не тов двойных кавычках ("").
Попробуй и расскажи.


 
Анонимщик   (2003-10-07 17:53) [5]

Да, чуть не забыл.
В пятом дельфи в design и run - time"е эти кавычки нужно было ставить и там, и там.
А вот в шестом глюк "исправили": в design - не нужно, а в run - нужно.
В седьмом - не знаю.


 
sniknik   (2003-10-07 18:13) [6]

Анонимщик © (07.10.03 17:53) [5]
несчет глюков не надо, ни в 5 ни в 6 ни в 7 дельфи кавычки не нужны. если только хотется можно пользоватся т.к. они признак строки а access/excel(ADO - jet) во многих ситуациях пытается привести строку к непосредственному типу и т.д.

хотя да это глюк, но не адо а программиста, не получается непосредственно пихают в строку для автоматического преобразования.


 
Анонимщик   (2003-10-07 18:30) [7]

В дискуссию вступать не буду, давно было. Но было точно.


 
sniknik   (2003-10-07 18:45) [8]

анологично
только один пример, не далее как сегодня видел вопрос про глупый ADO не понимает дробных чисел.
запрос был примерно такой
INSERT INTO Table (ID, Float) Valies (1, 2,5)
и чего спрашивается не понимает? ;)
а попробуй напиши так
INSERT INTO Table (ID, Float) Valies ("1", "2,5")
и акцесс поймет, хотя правильнее будет
INSERT INTO Table (ID, Float) Valies (1, 2.5)
(ИМХО, насчет этого можно спорить как правильнее) но вот вам и основа для слухов о глючности.


 
Анонимщик   (2003-10-07 19:03) [9]

Объясняю:
Если уж я написал имя таблицы в design-time и установил Active = true для TADOTable, и данные отобразились в гриде, то могу ли я рассчитывать на то, что и в ран-тайме будет то же самое? Видимо, да. А если нет? То это глюк в исходниках борландовских компонентов (или ADO, не вникал), а совсем не конечного программиста.
Дополнительные вопросы есть?


 
sniknik   (2003-10-07 21:28) [10]

> Если уж я написал имя таблицы в design-time и установил Active = true для TADOTable, и данные отобразились в гриде, то могу ли я рассчитывать на то, что и в ран-тайме будет то же самое?

вряд ли, расчитывать на это нельзя,
ни разу такого не встречал, хотя работаю с ADO давно, может конечно потому что не использую такого подхода (не открываю таблицы в десигне). попробую обьяснить (как сам понимаю). ADO рассчитано на подключение к серверам SQL т.е. есть особенности работы, коннект/авторизация/... все запрашивается с SQL сервера, даже если таблица локальная, access(jet) к примеру как бы эмулирует SQL сервер.
и вот ты ожидаеш что пройдя авторизацию, подключившись, в IDE дельфей будет то же самое в рантайме, в программе!? ха. а если ты в компоненте пароль не установил?
не, можно конечно валить на дельфи "что за тупая система не смогла угадать чего мне хочется, и не перенес все о чем я подумал", но по моему лутше побольше узнать про то с чем работаеш.

p.s. приведенный тобой пример 100%-й глюк программиста, незнание, и ожидание что система сама обо всем позаботится. (не хочу сказать что их в дельфях нет, сам вылавливал, но их всетаки гораздо, гораздо меньше (на несколько порядков) чем у начинающих программистов (хотя они как раз во всем обвиняют именно дельфи/.... , но только не себя))


 
Анонимщик   (2003-10-08 11:14) [11]

Ну ты разошелся.
Не проверял ведь, так не рассказывай сказки.
А хочешь увидеть, где там ошибка в дельфи, попробуй, а потом смотри в исходники.


 
sniknik   (2003-10-08 11:33) [12]

> Не проверял ведь, так не рассказывай сказки.
много раз проверял.

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

единственный и всеми признаный глюк с которым я встречался, это ошибка начала/конца файла на пустом датасете в 5 дельфи, да и то если поразбиратся то еще неизвестно кто виноват, борланд или мелкософт который на переходе версий ADO поменял форматы возвращаемых данных.
но это так к слову, а вот то что ты говориш и есть сказки.


 
Анонимщик   (2003-10-08 11:46) [13]

Я тебе уже описал. Бросаешь на форму TADOTable, подключаешься к ексельному файлу, предварительно собрав строку подключения, выбираешь таблицу (лист), ставишь Active в true.
Данные отображаются в грид, тут же запускаешь программу и получаешь ошибку.
Только учти, что в седьмом все работает нормально.
А в пятом и шестом проблема была, если не ошибаюсь, в функции GetTableNames (или что-то такое, не помню точно, давно было).

Не пойму только, зачем тебе это все нужно. Человек-то спрашивал о другом, жаловался, что подключиться не может. А ты его мордой -дурак, мол, вот и не умеешь.


 
Val   (2003-10-08 12:13) [14]

>Анонимщик © (08.10.03 11:46) [13]
А ты его мордой -дурак, мол, вот и не умеешь.
Вы не правы, sniknik © (07.10.03 12:57) [2] на все ответил.
Всегда с интересом читаю его посты про ADO-чудеса, поверьте, человек разбирается в том, что говорит.


 
sniknik   (2003-10-08 13:06) [15]

Анонимщик © (08.10.03 11:46) [13]
вобщето спорил я с тобой, и исключительно насчет твоего убеждения в глючности ADO/Delhi
> А в пятом и шестом проблема была, если не ошибаюсь, в функции GetTableNames (или что-то такое, не помню точно, давно было).

опять могу оспорить, даже если правда, и вы своими глазами это видели, получение имен таблиц идет через схемы ADO а он в свою очередь получает их от драйвера через который подключен. и что? если ему передали неверные данные то это дельфи виноват? только потому что он крайний?
у меня прям сейчас есть 6 драйверов для полключения ADO к IB и только 2 из них правильно возвращают схемы (если бы стояла старая версия ADO то возможно правильно возвращали бы другие). и о чем это говорит? о гдючности ADO/Delphi? поверьте нет. это ни о чем не говорит, а делать на этом выводы глупо.

Val © (08.10.03 12:13) [14]
спасибо. приятно что хоть комуто полезен. (пусть даже не автору вопроса, для кого пишеш)
мне было бы стыдно его не знать, на нем сижу, и на базы в дельфи перешол именно на него, BDE(этот бичь всех начинающих ;о))) узнал намного позднее(и "проездом"), и естественно знаю намного хуже.
а ошибаться могу что в одном что в другом (хотя проработал долго), и потому меня (как бы это помягче) бесят безапеляционные и бездаказательные заявления о глючности дельфей и безгрешности себя любимого. (от кого бы то ни было)


 
Анонимщик   (2003-10-08 13:11) [16]

Ну так что, проверка была? Или продолжаем языками ляпать?


 
sniknik   (2003-10-08 13:39) [17]

Анонимщик © (08.10.03 13:11) [16]
> Ну так что, проверка была? Или продолжаем языками ляпать?
я вообщето пытаюсь аргументированно говорить.

а проверить и сказать точные условия следовало бы тебе. по тому что написано 6-и 7-й дельфи работает правильно (хотя и не обязан думать за программиста), провайдер Jet 4.0.
5 достать затруднительно, потому и заморачиватся ради этого не буду.
проверял будучи уверен в результате, только изза твоей настойчивости. ну и дальше что? по твоим словам в 6 работать не должно.

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


 
Анонимщик   (2003-10-08 13:44) [18]

Вот проверь в пятом, потом продолжим.
А в шестом, как я уже сказал, работает наполовину.
Что касается провайдеров-драйверов, то было это давно, чем я пользовался, не помню совершенно, кроме того, имей в виду, что человек, который вопрос задавал, вполне мог иметь и то, что сразу не заработало бы.


 
sniknik   (2003-10-08 13:51) [19]

Анонимщик © (08.10.03 13:44) [18]
пойди туда не знаю куда? и ты мне тут про сказки говорил?

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


 
Анонимщик   (2003-10-08 13:57) [20]

Вот тебе раз.
Посоветовал человеку вариант, который проверяется за две минуты - не подошло, так до свидания. Ну и получил результат.
Ладно, извини за беспокойство.

Кстати, на твой любимый ADO я и не пробовал наезжать.



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

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

Наверх





Память: 0.51 MB
Время: 0.024 c
14-89454
Москвичка
2003-10-01 19:59
2003.10.27
---|Ветка была без названия|---


1-89304
AntiFriz
2003-10-11 17:19
2003.10.27
Paint:


1-89331
Vad_VAD
2003-10-16 15:50
2003.10.27
TMEMO


1-89314
Иванько
2003-10-15 18:32
2003.10.27
Проблема у RichEdit под WinXP


3-89159
Term
2003-10-08 15:03
2003.10.27
Вопрос такой что использовать IB или клоны





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский