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

Вниз

Чтение информации из dbf   Найти похожие ветки 

 
Делфенок   (2005-05-18 20:23) [0]

Добрый день. Какими средствами (ADO, специальные компоненты и т.д.) лучше всего пользоваться, чтобы прочесть информацию в список из любого поля dbf. Ориентировочно эта тема уже поднималась, но конечного ответа я так и не нашел. И еще, если все-таки пользоваться ADO, то какого поставщика выбирать OLE DB или Jet (советуют второе, но почему?). Заранее спасибо.


 
Делфенок   (2005-05-18 20:35) [1]

Причем хотелось бы, чтобы пользователь ничего не доставлял, не прописывал на машине и т.д. Спасибо


 
Anatoly Podgoretsky ©   (2005-05-18 22:33) [2]

Только встроеный в программу движок не потребует ничего доставлять, в остальных случаях дело случая.
В последнии версии АДО не входит JET, да и само АДО может не стоять на компьютере, если рассматривать все ОС.


 
Делфенок   (2005-05-19 09:15) [3]

А что вы скажете о компоненте типа TDBF? Имеются ли какие-то ограничения в его использовании?


 
ANB ©   (2005-05-19 09:21) [4]

У меня есть компонент для прямого доступа к DBF.
Минусы :
- писал сам и отлаживал только те куски, которые реально были нужны
- это не дэйтасет, иммитация работы как в DBase III+(FoxPro, Clipper)
- индексы я не юзаю
- немного подрезал ограничения - Memo ест только до 65К, остальное игнорит.
Плюс - читает всегда, в оригинальной кодировке (есть функция перкодирования DOS -> Win) и иногда лучше, чем через драйвер.
Могу выслать.


 
Anatoly Podgoretsky ©   (2005-05-19 09:33) [5]

Делфенок   (19.05.05 09:15) [3]
Именно про подобное и говорю.
Про TDbf - ничего движок, единственный недостаток, глюкавый.


 
Делфенок   (2005-05-19 09:34) [6]

To ANB
Буду благодарен friend@fromru.com

To Anatoly Podgoretsky: чем глюкавый?


 
Делфенок   (2005-05-19 09:48) [7]

To Anatoly Podgoretsky а вы могли бы посоветовать неглюкавый компонент? Мне в принципе не "глобальную" задачу решать нужно... В ComboBox и Grid выгрузить информацию из Dbf. С этим компонент этот справится?


 
Anatoly Podgoretsky ©   (2005-05-19 09:56) [8]

С указаной задачей, если dbf это dBase, справится. Проблемы касаются работы с индексами, некоторая порча таблиц базы данных, в части RecordCount (по крайней мере при большом количестве записей), отсутствия индекса. То есть использовать можно если знаешь конкретные слабые места. Не пытайся использовать для FoxPro, Clipper


 
Anatoly Podgoretsky ©   (2005-05-19 09:57) [9]

Делфенок   (19.05.05 09:48) [7]
Можешь и dbGrid использовать


 
Делфенок   (2005-05-19 10:12) [10]

To Anatoly Podgoretsky

<...некоторая порча таблиц базы данных

порча при записи, надеюсь?... при чтении из файла порча не обнаруживается?...

< Не пытайся использовать для FoxPro, Clipper

да, файлы dBase - я их собственно из Excel-файлов делаю... сохраняю просто в dbf


 
Anatoly Podgoretsky ©   (2005-05-19 10:16) [11]

Делфенок   (19.05.05 10:12) [10]
Порча при добавлении, таблица ремонту не подлежит, но работать все равно можно.
В твоем случае наверно это будет лучшее решение, полная независимость, ошибки если не будешь использовать RecordCount проявляться не будут, к тому же нет никаких индексов. По сути это будет формат dBase III


 
ANB ©   (2005-05-19 10:43) [12]

Уже послал. Кстати, у меня ест формат FoxPro.


 
Делфенок   (2005-05-19 10:51) [13]

тоесть мне лучше сохранять в формат dBase III?
а по поводу TDbf dBase Access v.6.20 ничего сказать не можете?


 
Yurij-7   (2005-05-19 10:54) [14]

А почему бы неиспользоваать halcyon ?


 
evvcom ©   (2005-05-19 11:03) [15]

Чего же все-таки все так BDE боятся? За столько версий уже, наверное, все глюки вывели. Ставится тоже довольно просто: regsvr32 BdeInst.dll. И в Delphi BDE-компоненты с самого начала под него заточены и тоже давно отлажены.


 
ANB ©   (2005-05-19 11:17) [16]


> evvcom ©   (19.05.05 11:03) [15]
- маленький скромный вопросик, что приезжает в дэйтасет, если в DBF в поле дата - пусто (пробелы) ?


 
Anatoly Podgoretsky ©   (2005-05-19 11:25) [17]

Делфенок   (19.05.05 10:51) [13]
Лучше dBase IV

evvcom ©   (19.05.05 11:03) [15]
По его задаче, ему достаточно такого простого движка.


 
Anatoly Podgoretsky ©   (2005-05-19 11:26) [18]

У него по сути только импорт из базы, сама работа с базами не требуется.


 
Делфенок   (2005-05-19 11:43) [19]

To ANB:
Спасибо большое!

To evvcom:
да не боятся, просто зачем использовать дополнительные настройки, когда непродвинутые юзеры разных городов будут это использовать... сколько мне долбаться с ними нужно будет. это раз и два - см. :
Anatoly Podgoretsky ©   (19.05.05 11:25) [17]
evvcom ©   (19.05.05 11:03) [15]
По его задаче, ему достаточно такого простого движка.
-----------------------------------------------------------------
Anatoly Podgoretsky ©   (19.05.05 11:26) [18]
У него по сути только импорт из базы, сама работа с базами не требуется.

To Yurij-7:
можете назать его преимущества над аналогами?

To Anatoly Podgoretsky:
фильтра в компоненте TDBF нет, тогда, чтобы какую-то выборку сделать, ме нужно все записи пересматривать, тогда RecordCount, как я понимаю, мне нужно будет использовать?...


 
ANB ©   (2005-05-19 11:54) [20]


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


 
Yurij-7   (2005-05-19 12:16) [21]

Делфенок

Все преимущества и неподскажу так как сам с ним работал только 1 раз, но это полноценный компонент обеспечивающий прямой доступ к dBase  файлам, поддержка индексов, фильтр....

Сам работаю через BDE, меня устраивает, но Халькион лучше использовать если непланируете на машине устанавливать БДЕ.


 
Anatoly Podgoretsky ©   (2005-05-19 12:18) [22]

Остановить и начать с начала, с толкования этого "чтобы прочесть информацию в список из любого поля dbf", и другие важные моменты.
А то получается сначала это, потом вдруг вощникают фильтры, а в конце появится и DbGrid, сортировка и процее.

Мини ТЗ в студию.


 
evvcom ©   (2005-05-19 12:29) [23]


> - маленький скромный вопросик, что приезжает в дэйтасет,
> если в DBF в поле дата - пусто (пробелы) ?

По моему null и приезжает. Проверка TField.IsNull спасет.


 
Делфенок   (2005-05-19 12:39) [24]

Мини Тз в студии :-)

Есть две таблицы dbf, в которых содержится справочная информация, необходимая в дальнейшем пользователю.
На форме планируется размещение Comboboxов, в которые эта информация будет выгружаться, но суть в том (это касаемо фильтров), что воксы взаимосвязаны - как только выбирается запись в первом боксе, автоматом во втором появляется только часть инфы из dbf, тоесть отфильтровали типа.
После этих действий потльзователь будет набивать необходимую ему информацию с помощью какой-нить формы, в которой будет снова бокс, ссылающийся на другую dbf-таблицу. Все это дело  - набитая инфа - будет отображаться в гриде, но не сохраняться пока нигде! После всей этой мороки пользователю нужно сгенерить текстовый файл определенной структуры, в котором будет вся инфа, отображенная на данный момент в гриде. И на этом все. Никаких сохранений в dbf и т.д.
Уф-ф-ф :-)
Надеюсь хоть что-то понятно из моего бестолкового рассказа...


 
alex_***   (2005-05-19 12:42) [25]

у меня была задача чтения отчетности из DBF. Пробовал АДО, 1- медленно, 2- для файлов VFoxPro пришлось отдельно обновлять DLL для ODBC. На торри нашел компонент TVKDBFNTX. Читает влет (писать не пробовал). Один мелкий недочет нашел, а так работает как часы. Миллион записей читает за 5-7 сек., насколько помню


 
Делфенок   (2005-05-19 12:54) [26]

To alex_***   :
Какой недочет? для моей задачи подойдет?
а TDbf dBase Access v.6.20, любая версия, кто-нить пробовал?


 
alex_***   (2005-05-19 13:49) [27]

TDBf файлы VFoхPro не читает, по-моему


 
Делфенок   (2005-05-19 13:53) [28]

Где вы други мои?...


 
ANB ©   (2005-05-19 14:19) [29]


> evvcom ©   (19.05.05 12:29) [23]
- аж 2 раза. Приезжает 31.12.1899. null в DBF нету.


 
Anatoly Podgoretsky ©   (2005-05-19 14:22) [30]

ANB ©   (19.05.05 14:19) [29]
Да что ты говоришь


 
ANB ©   (2005-05-19 14:58) [31]


> Делфенок   (19.05.05 12:39) [24]
- связка мастер-детал, дэйтасетик бы здесь и индексы. Все бы мухой само делалось. Может какой другой формат выберешь ?


 
ANB ©   (2005-05-19 15:00) [32]


> Anatoly Podgoretsky ©   (19.05.05 14:22) [30]
- в dBase III+ точно не было, и в FoxPro. Я уже на это раз нарвался, когда надо было переложить данные в MS SQL. Я через ADO законнектился, переложил - и все люди стали мертвыми. :)))


 
Anatoly Podgoretsky ©   (2005-05-19 15:07) [33]

ANB ©   (19.05.05 15:00) [32]
Да что ты говоришь


 
Anatoly Podgoretsky ©   (2005-05-19 15:08) [34]

ANB ©   (19.05.05 15:00) [32]
Не сваливай свои ошибки на системы программирования.


 
ANB ©   (2005-05-19 15:10) [35]

Да сам попробуй - возьми DBF от FoxPro с пустыми датами, подключись через ADO и посмотри в гриде. Да и не было понятия null ни в фоксе ни в клиппере.


 
Делфенок   (2005-05-19 15:12) [36]

To Anatoly Podgoretsky:
вы просили мини тз, а выслал, а результат?... ваш ответ?...


 
sniknik ©   (2005-05-19 16:37) [37]

> Да сам попробуй - возьми DBF от FoxPro с пустыми датами, подключись через ADO и посмотри в гриде. Да и не было понятия null ни в фоксе ни в клиппере.
ну и что, что не было? они дату в строке держат и пустая дата = пустая строка. дальше зависит от движки кто как интерпретирует Jet(в паре с BDE) к примеру пререводит это состояние в null, даже запросы с WHERE DAT IS NULL работают правильно.
а ты скорее всего через драйвер VFP работал, который из пустой строки 0 "делает", а дальше он уже пошол как дата т.к. дата и ожидается.

недоработка фоксового драйвера (имхо), не исправляют похоже специально, у них много таких(с индексами. созданием еще к примеру)... а в самой среде фокса все нормально...


 
Anatoly Podgoretsky ©   (2005-05-19 16:40) [38]

Делфенок   (19.05.05 15:12) [36]
А ничего, смутно написано. Советы ты получил.

sniknik ©   (19.05.05 16:37) [37]
Больше, даже фильтр должен работать Fld = NULL


 
ANB ©   (2005-05-19 16:53) [39]


> а ты скорее всего через драйвер VFP работал, который из
> пустой строки 0 "делает", а дальше он уже пошол как дата
> т.к. дата и ожидается
- точно. Я через ADO коннектился, и юзал драйвер VFP. БДЕ низзя было использовать, так как потом бы никто не смог развернуть. Хотя через АДО еще хуже вышло, проще было инсталляшку написать :))) И в таком, как у меня, виде работал только Empty(Fld).


 
ANB ©   (2005-05-19 16:55) [40]


> они дату в строке держат и пустая дата = пустая строка
- ну да, я строки и достаю напрямую из dbf. Кстати, просто читатель не так уж и тяжело пишется. Для ДБФ + МЕМО я писал 3 дня в расслабухе, ну индексы еще можно за 1-6 дней подрубить. Там другое хуже - индексы могут быть разных форматов.



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

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

Наверх





Память: 0.56 MB
Время: 0.054 c
4-1115814772
Неуловимый Джо
2005-05-11 16:32
2005.07.11
API к perfmon


6-1112766078
M@Z
2005-04-06 09:41
2005.07.11
NetShareAdd


14-1118379504
boriskb
2005-06-10 08:58
2005.07.11
Есть желающие прокоментировать?


3-1117630184
Aljona
2005-06-01 16:49
2005.07.11
Сообщение об уникальности и автомат номеров


14-1118643891
syte_ser78
2005-06-13 10:24
2005.07.11
Ответный код





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