Форум: "Базы";
Текущий архив: 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