Форум: "Базы";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизExcel таблица в Delphi. Редактирование, удаление, поиск ??? Найти похожие ветки
← →
Hmm © (2004-10-30 13:22) [0]Т.е. возможна ли работа с таблицей Excel, как с обыкновенной таблицей (Paradox) или бд (Access)? Могу ли я какими-то спец. средствами, скажем, выводить её в DBGrid ?
Я не имею ввиду технологию OLE.
← →
sniknik © (2004-10-30 15:02) [1]ADO + Jet все перечисленное кроме удаления.
← →
Hmm © (2004-10-30 15:58) [2]2 sniknik
кидаю на форму TAdoConnection, использую мастер создания соединения указываю в качестве провайдера Microsoft JET 4.0 Ole DB Provider, перехожу на закладку - подключения - указываю Excel_таблицу - C:\1.xls, жму - проверить подключение, в ответ сообщение об ошибке: "... нераспозноваемый формат данных".
выозможно я что-то не так делаю? или не правильно понял суть этого загадочного ADO + Jet?
← →
Hmm © (2004-10-30 16:17) [3]Извиняйте, поторопился! Помудрив немного установил таки соединение.
Теперь новая проблемма: как обозначить таблицу (которая находится на закладке Лист1 в excel файле) в св-ве Tablename(ADOTable) или в SQL (ADOQuery) ?
← →
jack128 © (2004-10-30 17:02) [4]Лист1 ???
← →
sniknik © (2004-10-30 19:06) [5]> Лист1 ???
не
[Лист1$] если в запросе, иногда можно без скобок, имя в таблице аналогично но лучше таблицами не пользоваться.
← →
Hmm © (2004-10-30 20:01) [6]большое спасибо, всё работает.
но, вот ведь проблемма - без редактирования не обойтись (нужно исключить повторяющиеся записив огромной таблице... подскажите выход, если он существует ?!
ЗЫ: именно при работе с Excel.
← →
sniknik © (2004-10-30 20:34) [7]редактировать можно, удалять нельзя, записи.
копируй в другую таблицу запросом после удалиш всю старую таблицу, либо перемешай на место удаляемых записи с конца, в конце же устанавливай значения в null, после любое изменение в екселе (или через OLE) скинет счетцик записей с пустых записей.
← →
Hmm © (2004-10-30 21:03) [8]хм... редактировать не получается, выдается ошибка: "...драйвер ODBC Excel... должен использоваться обновляемый запрос", о каком запросе может идти речь, если я работаю с ADOTable (собственно таже ошибка и с ADOQuery)?!
← →
AZDesign (2004-10-30 21:12) [9]Есть компонент фирмы Axolot (по моему швеция) который работает напрямую с файлом Excel. У меня версия 1.23 стоила 30$
Недавно прислали рекламу на версию 2.0 - 199$
Очень удобно - нет ни OLE, ни ODBC
← →
Hmm © (2004-10-30 21:25) [10]2 AZDesign
всё было бы круто, если бы я имел эти 30-199$ на подобные вещи =)
фриварных, вы, конечно же, не знаете?
← →
sniknik © (2004-10-30 22:27) [11]> "...драйвер ODBC Excel... должен использоваться обновляемый запрос"
говорю же используй jet, ODBC все одно ему запросы передает (если он есть) только коверкает их по своему, поэтому нежелательно его использовать.
> если я работаю с ADOTable
а вот это совсем зря. перешол на ADO, забудь про тейблы. query тоже не стоит, ADODataSet все заменяет, все что рекордсеты возврашает.
не задумался почему, при использовании ADOTable ошибка "должен использоваться обновляемый запрос"?
← →
Hmm © (2004-10-31 00:08) [12]задумывался, сделал вывод, что Table и запрос вещи несовместимые. ошибка всёравно одна, что при юзании Table, что Query, DataSet не пробовал, но думаю суть сдесь не в этом.
Jet я уже пробовал, собственно: Hmm © (30.10.04 15:58) [2]
не могли бы вы запостить здесь строку connectionstring, чтобы мне было от чего отталкиваться.
(моя строка вот: Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DSN=xls;DBQ=C:\1.xls;DefaultDir=C:;DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;PageTimeout=5;")
← →
sniknik © (2004-10-31 00:54) [13]> задумывался, сделал вывод, что Table и запрос вещи несовместимые.
не, вывод должен быть такой, ADOTable работает через те же запросы (поэтому и ошибку дает от запроса), только контролировать ты их не можеш (нафига он тогда нужен?).
> ошибка всёравно одна, что при юзании Table, что Query, DataSet не пробовал, но думаю суть сдесь не в этом.
верно, скорее всего не от компанента зависит. может от многих вещей от "неправильных" данных и "сложных" запросов до отсутствия индексов и безопасности на NTFS. (смысл в том, что чтото мешает создать связь между данными на диске и рекордсетом в памяти по которой осуществляются обновления этих данных)
кстати если будеш пробовать ADODataSet одним из вариантов можеш поставить
CommandType - cmdTableDirect
CommandText - Лист1$
CursorLocation - clUseServer
и открыть
> не могли бы вы запостить здесь строку connectionstring, чтобы мне было от чего отталкиваться.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Книга1.xls;Extended Properties=Excel 8.0;Persist Security Info=False
← →
Hmm © (2004-10-31 08:00) [14]Теперь всё ok! sniknik, спасибо!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c