![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| dser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.2.2003 Где: Украина Харьковск ая обл. Репутация: нет Всего: нет |
В одной из тем я вычитал, как из книги Excel "вытащить" данные через компоненты ADO и ODBC. Добраться до таблицы Excel я смог не только с помощью ADO, но и с помощью ODBC и компонентов BDE.
Сделал как сказано, но в DBGrid показывает только четыре записи, а их в таблице Excel аж 600. ПОЧЕМУ?. Это не все. Я создал таблицу типа Paradox с такими же по типу полями, как и таблица Excel (три текстовых поля) и пытался скопировать все записи из таблицы Excel в Paradox - скопировано все те же четыре записи. А как мне скопировать все 600 записей. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Попробуй создать таблицу в Excel через кверю: "Create Table...", тогда должно читаться всё нормально. Собственно прикол в том что Excel допускает вещи несопоставимые с реальными таблицами:
1) Разнородные данные в одном поле 2) Интерпретация данных как разнородных в одном поле (например "1" может интерпретироваться как цифра или буква) 3) Нет чёткой типизации столбцов 4) Возможность вставки объектов в столбцы 5) Возможность объединений или разделений столбца Поэтому драйверы баз данных зачастую не в состоянии правильно распознать форматы, например у тебя столбец значений: 1 2 3 4 A B C По первой строке драйвер решает что поле числовое, а в дальнейшем наткнувшись на букву его "выбивает"... Если ты создашь листы таблицы при помощи квери через драйвер БД, то структура будет чётко типизирована и такие листы буду читаться гораздо лучше. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| dser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.2.2003 Где: Украина Харьковск ая обл. Репутация: нет Всего: нет |
Но я так и сделал, затем в пустой, созданный с помощью команды CREATE TABLE... скопировал данные (средствами Excel). Дело все в том, что "послать" в Excel данные - проще, а вот извлечь (нормально извлечь, как у меня и получилось) можно только с помощью компонента F1Book на странице ActiveX, но при установке программы на другой компьютер требуется регистрация этого компонента или установка Delphi, а с регистрацией компонента F1Book у меня проблемы - все такие умные - сделай так, да сделай сяк, а полного описания никто пока не дал, а отвечать на вопросы лишь бы себя показать и я умею. Пользователю моей программы сложно (и долго) копировать данные из Excel в F1Book. В Delphi работа с компонентом F1Book - проще по переносу данных в таблицу Paradox.
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
А в чём собственно проблемы с регистрацией компонента (сорри я с этим компонентом не работал, так что знания общие) - обычным способом не регистрируется? Какие ошибки выдаёт при регистрации? PS. Я могу попробовать решить проблему - не могли бы скинуть мне по email Ваш Excel файл - я попробую разобраться как его конвертировать. Модератор: По поводу полного описания - его никто не даст, по работе с Excel через OLEAutomation и DAO API написано несколько книг, страниц по 800 каждая - они приближаются к наиболее полному описанию. Очень сомнительно что бы кто-то решился опубликовать столь же полные трактаты здесь в форуме, мы пытаемся ответить на поставленные вопросы соответственно нашему опыту и возможностям, но никто не гарантирует решение вашей проблемы, стараются помочь, но вовсе не обязательно смогут. Если же Вы решительно настоены найти человека который решит Ваши проблемы гарантировано, то тогда давайте объявление о найме программиста или коллектива программистов, которые гарантировано решат Вашу проблему. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| dser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.2.2003 Где: Украина Харьковск ая обл. Репутация: нет Всего: нет |
Если использовать эту процедуру, то какие файлы или типы файлов (*.ocx; *.dll) нужно регистрировать?
Хотелось бы получать, если конечно возможно, хотябы малейшее описание действий процедуры. Взять хотябы эту. procedure RegisterTypeLibrary(FileName:string); var Name: WideString; HelpPath: WideString; TypeLib: ITypeLib;//что за TypeLib begin if LoadTypeLib(PWideChar(WideString(FileName)), TypeLib)=S_OK then//что проверяется в этой строке begin Name := FileName; HelpPath := ExtractFilePath(ModuleName);//что такое ModuleName, что так и писать или вместо этого //нужно что-то подставлять. RegisterTypeLib(TypeLib, PWideChar(Name), PWideChar(HelpPath)); end; end; Прошу прощения за назойливость. [QUOTE] Я могу попробовать решить проблему - не могли бы скинуть мне по email Ваш Excel файл - я попробую разобраться как его конвертировать. Да можно ничего и не присылать, создайте файл (Например MyExcel.xls) и с помощью технологии ADO и ODBC подключитель к нему (ADOConnection), затем в ADOQuery (подключенному к ADOConnection) создайте запрос типа: CREATE TABLE mytable( pole1 varchar (20), pole2 varchar (20), pole3 varchar (20)) в этой книге появится еще один лист. Эти поля можете заполнить. Попробуйте заполнить более четырех строк. Подключите компонент ADOTable к ADOConnection, установите TableName:='mytable'. Подключите DBGrid и Вы все увидите. Правда перед тем как открыть для просмотра эту книгу, нужно разорвать соединение с набором данных. Ну, а если будет желание для принятия моего файла, то нужно на такие случаи оставлять E-Mail. С уважением dser. Это сообщение отредактировал(а) dser - 11.2.2003, 07:38 |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Именно так я всегда создаю файл и читается он нормально, а email мой: [email protected] (я его не скрывал)
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Ну а если же посмотреть на синие кнопочки, под сообщением какого-либо зарегистрированного пользователя, то четко можно различить и кнопочку "E-mail" И еще, насколько я понял вопрос, нужно использовать в своей прграмме компонент, на вкладке палитры компонентов ActiveX - TF1Book. Если я не ошибаюсь, то используя этот компонент, не требуется что-либо регистрировать, все необходимое компилируется в exe-шник. -------------------- |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Скорее всего ошибаешься. Название вкладки говорит само за себя, а ActiveX не прикомпилируются к exe - их надо поставлять отдельно с exe и на клиентском компьютере регистрировать -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Самое интересное, что ни ты не я не можем однозначно ответить на этот вопрос.
-------------------- |
|||
|
||||
| dser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.2.2003 Где: Украина Харьковск ая обл. Репутация: нет Всего: нет |
Даже не надо эксперементировать. Vit прав. Это же элементарно. Я бы не стал задавать кучу вопросов по поводу регистрации ActiveX или копирования данных из Excel без компонента F1Book, но ни как не TF1Book. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Да, я проверил..... (как говориться пока своими глазами не увижу)... Вит прав.
-------------------- |
|||
|
||||
| Medved |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Вообщем поковырялся я тут и нашел решение решение Вашей проблемы.
В Кулибе сказано:
У меня WinXP, с установленными Delphi 5,6,7. Поискав такой файл, я ничего не нашел. Видимо это актуально для старых версий Delphi. Хотя уверенно сказать не могу. Затем решил отследить, какие DLL использует приложение с этим компонентом. Это всего одна форма, с компонентом TF1Book и кнопкой выхода. Оказалось что при его работе вызываются функции из следующих "специфичных" DLL: vcf132.ocx и Oc30.dll. Перегрузившись в Win98 (это совершенно девственная у меня система, на ней не установленно ни одной программы), где мое приложение раньше отказывалось работать, я зарегистрировал vcf132.ocx (regsvr32 vcf132.ocx) и у меня все заработало. vcf132.ocx лежит в Win95/98/Me Windows/System, а в NT/2000/XP в Windows/System32. Если требуется программно зарегистрировать OCX:
Для обратной процедуры, "отрегистрации" OCX, Вам необходимо всего лишь заменить 'DllRegisterServer' на 'DllUnregisterServer'. Некоторые пояснения: OCX - специфический форма dll, поэтому Вы можете загрузить ее в память, используя API функцию LoadLibrary(). OCX экспортирует две функции, осуществляющие ее регистрацию и "отрегистрацию". Для получения адреса этих функций используется соответствующая функция GetProcAddress. После этого остается только вызвать необходимую функцию. -------------------- |
||||
|
|||||
| Гость_Serg |
|
|||
|
Unregistered |
Господа на тему F1Book не подскажете как в нем построить график. Я строю а он берет обе колонки как значения по Y а по оси X отсебятину несет
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |