Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > BDE проблема |
Автор: Drabuna 14.9.2009, 15:57 |
Продолжение этой темы: http://forum.vingrad.ru/forum/act-ST/f-199/t-272361/unread-1.html Может кто поможет. Поставил bde, так как некоторые dbf файлы не открывались. После установки файлы стали открываться, но после открытия 1024го файла возникает ошибка: Недостаточно системных ресурсов. Если бде удалить, то все ок, но некоторые файлы опять не открываются. Может что то не так в настройках BDE? Облазил весь гугл и мсдн ничего подобного не нашел(( Паника( |
Автор: Romikgy 14.9.2009, 16:15 |
одновременно ? |
Автор: Drabuna 14.9.2009, 16:17 |
Нет, файлы открываются в цикле - открылся, прочитался, закрылся, следующий. |
Автор: Romikgy 14.9.2009, 16:20 |
поочередно должно работать без проблем , если разработчики ошибку не допустили и при закрытии этого файла он не освобождается .... |
Автор: Drabuna 14.9.2009, 16:42 | ||
Трейс ODBC:
|
Автор: Romikgy 14.9.2009, 19:46 |
еще бы прицепил и нормальный лог без ошибок а в этом видно постояный и я не видел ни одного освобождения этих хенделов..... PS имхо пора уходить от OBDC .... |
Автор: Данкинг 14.9.2009, 23:27 |
А почему бы файлы не открывать через ADO или TDBF? Там же С# ? ![]() |
Автор: Drabuna 15.9.2009, 08:55 |
Да, там С#, но я подумал что в разделе по Делфи про БДЕ знают больше, так как в .NET все молчат) |
Автор: Akella 15.9.2009, 08:58 |
Но ты работаешь с ODBC, зачем тебе BDE? |
Автор: Drabuna 15.9.2009, 09:06 |
Я же говорю. Если бде не установлено некоторые дбф файлы не читаются воообще. Вообще изначально я работаю с оледб. Но bde не умеет трейсить oledb, поэтому заюзал odbc чтобы оттрейсить. |
Автор: Данкинг 15.9.2009, 09:50 |
Что за бред? ![]() |
Автор: Drabuna 15.9.2009, 09:58 |
Цитата с MSDN: By default, the Microsoft Jet 4.0 database engine supports importing, exporting to, and linking to Paradox 3.x, 4.x, and 5.x and dBASE III, III+, IV, and 5 tables (if you link to these tables, the data in them will be read-only). Microsoft Jet 4.0 does not support Paradox 7 and 8 or dBASE 7 tables. For read/write access from Microsoft Jet to all versions of Paradox or dBASE tables, you must also have the Borland Database Engine (BDE) 4.x or later installed on your computer. If you don't have BDE 4.x or later installed, you can obtain it by installing dBASE 7, Paradox 7 and 8, or Delphi. If you own an older version of the BDE that doesn't support the Paradox 8 or dBASE 7 file formats, you can upgrade your engine from the Inprise (formerly named Borland) Web site at www.inprise.com/. http://support.microsoft.com/kb/230125 |
Автор: Данкинг 15.9.2009, 13:34 |
Drabuna, твои .dbf вообще каким образом создаются? |
Автор: Drabuna 15.9.2009, 13:46 |
Да в том то и проблема. Есть задача - перегнать куевую тучу двб файлов в оракл. Эти дбф файлы складируются с 1999го. Создавались они разными людьми, в разных местах, и тем что было под рукой. Кто делал в екселе, кто в аксесе, кто в визуал фокс про, кто вообще писал проги которые будут делать эти дбф файлы. Файлов щас этих тысяч 50. Одна тысяча читается только если бде установлен. Остальные нормально. |
Автор: Данкинг 15.9.2009, 14:35 |
Я перегонял в своё время, открывая через ADO. Правда, формат таблиц был dBase IV или V с ДОСовской кодировкой. |
Автор: Drabuna 15.9.2009, 14:52 |
Ну вот а у меня на 1000 файлов пишет: Внешняя таблица не имеет предполагаемый формат. Бде ставлю нормально открываются. Но ровно 1024 файла. Не знаю что делать ![]() |
Автор: Romikgy 15.9.2009, 15:10 |
сделай так имхо создавай сразу 2 соединения адо и бде что не получается открыть через адо открывай через бде и сунь куда нужно .... |
Автор: Drabuna 15.9.2009, 15:46 |
![]() То есть я делаю все как обычно, беру OleDB/ODBC, создаю конекшн, задаю команду и выполняю её. |
Автор: Romikgy 15.9.2009, 15:47 |
просто поставил , а коннект через адо ? |
Автор: Drabuna 15.9.2009, 15:52 | ||
Так конекчусь всегда:
Разница только установлен БДЕ или нет. |
Автор: Akella 15.9.2009, 16:02 |
Открой BDE Admin и увеличь количество открытых файлов. |
Автор: Drabuna 15.9.2009, 16:26 |
В BDE уже менял все что меняется - не помогло. |
Автор: Romikgy 15.9.2009, 16:43 |
посмотри все ли файлы являются такими.... |
Автор: Drabuna 15.9.2009, 16:59 |
Скорее всего нет. Но с этой строкой открываются все. |
Автор: Romikgy 15.9.2009, 17:22 |
чет вы не последовательны.... имхо |
Автор: Drabuna 15.9.2009, 17:27 |
Просто я уже 5 дней сижу над этой проблемой, и я пробовал все возможные строки подключения) |
Автор: Akella 15.9.2009, 19:20 |
Само собой, что для каждой версии DBF должен быть свой драйвер. Я имею ввиду, что вот для Foxpro нужен отдельный драйвер ODBC. DBF это ж расширение всего лишь, а структура может быть разная. Не знаю, есть ли универсальный драйвер. Может нужно компоненты доступа поискать, которые будут читать все виды dbf |
Автор: Данкинг 15.9.2009, 20:06 |
Поставь FoxPro и попробуй, что будет открываться непосредственно через него. ИМХО, работать с DBF при отсутствии фокса на компе глупо. |
Автор: Drabuna 16.9.2009, 10:36 |
![]() ![]() VFP открывает те файлы для которых не нужен BDE. Для которых нужен - пишет "not a table". |
Автор: Drabuna 16.9.2009, 12:34 |
![]() Вроде придумал как: HKLM\Software\Microsoft\Jet\4.0\Engines\Xbase надо создать поле BDE(DWORD). Затем: * 0 - Use the BDE if it is installed. If not, use the ISAM. * 1 - Always use the BDE. If it's not installed then fail. * 2 - Always use the ISAM. То есть, ставлю его на 2, затем если файл не открывается меняю на 1, и после открытия файла опять на 2. ....Похоже что нет ![]() |
Автор: Данкинг 16.9.2009, 12:59 |
Вероятно, в них суммарная ширина полей слишком большая. Добавлено через 39 секунд Но всё равно повторю: ![]() |
Автор: Drabuna 16.9.2009, 13:14 |
Зачем мне ВФП если он ничем не поможет) |
Автор: Drabuna 16.9.2009, 13:41 |
Где в BDE Admin-е поменять количество файлов? ![]() |
Автор: Данкинг 16.9.2009, 16:18 |
Чтобы просматривать таблицы. ![]() ![]() |
Автор: Drabuna 17.9.2009, 09:04 |
Там и менял. Теперь начал писать "недостаточно ресурсов" на 1009 файле ![]() Реально написать длл на делфи которая бы открывала файлы эти, и передавала в сишарп?) |
Автор: Akella 17.9.2009, 13:19 |
Тяжело связать. Попробуй работать с dbf из MS SQL Studio. Поищи программы для работы с DBF. Может можно все dbf перекинуть в одинаковый формат. Если не секретно, то пришли мне на мыло несколько dbf, но только РАЗНЫХ форматов. Добавлено через 45 секунд У FAR и Total commander есть плагины для работы с dbf. Добавлено через 6 минут и 13 секунд Вот я создал тему: http://forum.vingrad.ru/forum/act-ST/f-21/t-273158/unread-1.html Может кто программу подскажет. Следи за темой. |
Автор: Данкинг 17.9.2009, 14:40 |
Так вроде только для просмотра. |
Автор: Drabuna 17.9.2009, 17:57 |
Нашел вот тут: http://www.dbase.com/knowledgebase/int/db7_file_fmt.htm Начал писать ридер.... ![]() |
Автор: Drabuna 18.9.2009, 10:38 |
Продолжение http://forum.vingrad.ru/forum/topic-273250.html ![]() |
Автор: Akella 18.9.2009, 23:16 |
http://forum.vingrad.ru/index.php?showtopic=273158&view=findpost&p=1970694 это оно? |